سایت شخصی صادق سلمانی

ولتست، یادگیری ماشین، پایتون، فرازآوری مصنوعی

سایت شخصی صادق سلمانی

ولتست، یادگیری ماشین، پایتون، فرازآوری مصنوعی

سایت شخصی صادق سلمانی

مطالبی که در این سایت نوشته می‌شود به منزله تخصص من در آن‌ها نمی‌باشد، بلکه صرفاً آغازی است در مسیری طولانی برای یادگیری بهتر و عمیق‌تر.

آخرین نظرات

۳ مطلب با کلمه‌ی کلیدی «ریاضیات کاربردی» ثبت شده است

الآن یکی از دوستان بهم ایمیل زده که چرا دکترا نخوندم؟


من نظر شخصیم رو میگم.

حدود یک سال و نیم فقط ولتست کار کردم. رفرنس ها رو خوندم، نرم افزارهاش رو تا حدودی یاد گرفتم و مقاله هم خوندم. ولی بعدش به این نتیجه رسیدم که این رشته سر دراز دارد. حالا حالاها میشه روش تمرکز کرد و ادامه داد. از یه جایی فهمیدم بقیه ماجرا رو باید در یک مقطع دیگه و با تمرکز ویژه ای ادامه داد که فعلا در حوصله من نیست.


متوجه شدم که در ابتدا باید یک دید کلی از رشته مهندسی نفت بدست بیارم. باید مخزن رو بفهمم، چاه رو بفهمم، کوپل کردن این دوتا رو بلد باشم. باید بدونم وقتی میگن داریم فلان فرایند رو شبیه سازی میکنیم، دقیقا چه بلایی سر مخزن میاد. یعنی اول لازمه که به دیدگاه integrate در مهندسی نفت برسم. بتونم مباحث و عملیات نفت رو به هم ربط بدم. تا وقتی ندونم مبحث خواص سیال یعنی چه، چطوری میتونم از اون برای شبیه سازی و پیش بینی تولید استفاده کنم؟!! چطوری وقتی هنوز نمیدونم نقشه UGC زمین شناسی چی هست، میتونم آنالیز عددی در ولتست انجام بدم؟!!


حالا جدیدا فهمیدم که علاوه بر اینها، حتما حتما لازمه مفاهیم و مباحث "فاندامنتال" مهندسی نفت یعنی مکانیک سیالات، انتقال جرم و  حرارت و همچنین ریاضیات رو هم کاملا با پوست و گوشتم درک کنم. کسی به ما نبود بگه آقا اینا مهمن. این درسها باعث میشن که تفکر انتقادی پیدا کنی و به یک آدم متفکر تبدیل بشی که حرفی رو توی هوا نمیزنه و دقیقا برای تمام حرفاش دلیل و علت داره.


دو سال امریه بهترین فرصت برای این چیزهاست. 


چرا دروغ بگم؛ مدتیه از این شاخه به اون شاخه میپرم. نه اینکه سردرگم باشم، بلکه به این خاطره که پی بردم آدم باید مدتی رو اینطوری باشه تا دید خوبی از همه چی بدست بیاره.


اصن در حال حاضر پیشوند "مهندس" رو به "دکتر" ترجیح میدم. با مهندس بودن، آدم دستش خیلی بازتره. بیشتر علمی که الآن تو دکترا تولید میشه مثل یک کالای لوکس برای کشورمونه. ما کالای لوکس نیاز نداریم. ما اقتصاد بهتر و قوی تر میخوایم!


فکر میکنم دوره حالا، یه جورایی دوره "پیوند علوم مختلف به هم" هست. مثل همون دوره ابوعلی سینا و اینا. درسته یه عده دارن به صورت کاملا تخصصی مرزهای علم رو جلو میبرن، ولی شما باید تصمیم بگیرید توی کدوم گروه می خواهید باشید: گروهی که مرزها رو جابجا میکنن، یا گروهی که علم تولید شده توسط دیگران رو کاربردی و عملیاتی میکنن و در حقیقت اونو تبدیل به ارزش میکنن و بومی سازیش میکنن. من فعلا میخام جزو گروه دوم باشم و به همین خاطر نیازی به دکتر بودن هم ندارم. هرچند وجود هر دو گروه لازم و ضروری هست.

تو این دوره اگر بخواهیم جهش کنیم باید مباحث رشته های کامپیوتر و زمین شناسی و ریاضی و برق و ... رو هم وارد نفت کنیم. 


ممنون که خوندن این مطلب رو تحمل کردید.

صادق✋️

۱ نظر ۱۱ آذر ۹۶ ، ۱۳:۳۴
صادق سلمانی

در مسائل مقدار اولیه، مقدار تابع در نقطه شروع داده می‌شود و با استفاده از روش‌های موجود مقدار آن را در سایر نقاط بدست می‌آوریم. در این صورت منحنی تغییرات متغیر تابع بر حسب متغیر مستقل قابل رسم خواهد بود.

از جمله روش‌های حل مسائل مقدار اولیه می‌توان به روش‌های تیلور، اویلر و رانگ کاتا مرتبه دوم، سوم و چهارم اشاره نمود. در کلیه این روش‌ها مختصات هر نقطه با استفاده از مختصات نقطه ماقبلش بدست می‌آید. اساس کلیه این روش‌ها، استفاده از سری تیلور است.

تذکر: برای مطالعه توضیحات بیشتر به کتاب «کاربرد ریاضیات در مهندسی شیمی - روش‌های عددی» نوشته دکتر خراط مراجعه کنید.

خلاصه روش رانگ کاتا مرتبه سوم:


در اینجا قصد دارم به بررسی یک مثال به روش رانگ کاتا - 3 بپردازم. قبلاً این مثال را به روش‌های اویلر، رانگ کاتا-2 و رانگ کاتا-4 نیز حل کرده‌ام (+ و + و +)


مثال:

معادله دیفرانسیل زیر را با استفاده از روش رانگ کاتا مرتبه سوم و برای حالت h = 0.5 حل کنید و مقدار تابع را تا x = 3.5 محاسبه کنید.


حل با استفاده از زبان برنامه نویسی پایتون (کدنویسی در محیط Spyder):
import numpy as np
from matplotlib import pyplot as plt
x0=1
y0=1
xf=3.5
n=6
h=(xf-x0)/(n-1)
x=np.linspace(x0,xf,n)
y=np.zeros([n])
y[0]=y0
for in range(1,n):
    k1=h*x[i-1]*y[i-1]**(1/3)
    k2=h*(x[i-1]+0.5*h)*(y[i-1]+0.5*k1)**(1/3)
    k3=h*(x[i-1]+h)*(y[i-1]+2*k2-k1)**(1/3)
    y[i]=y[i-1]+(1/6)*(k1+4*k2+k3)
for in range(n):
    print(x[i],y[i])
plt.plot(x,y,'o')
plt.xlabel('value of x')
plt.ylabel('value of y')
plt.title('Approximate Solution with RK-3 Method')
plt.show()
نتایج:

1.0                          1.0
1.5           1.6855277908
2.0            2.826623146
2.5           4.5570242827
3.0           7.0160178606
3.5           10.345325211


۰ نظر ۰۳ ارديبهشت ۹۶ ، ۱۵:۲۶
صادق سلمانی

در مسائل مقدار اولیه، مقدار تابع در نقطه شروع داده می‌شود و با استفاده از روش‌های موجود مقدار آن را در سایر نقاط بدست می‌آوریم. در این صورت منحنی تغییرات متغیر تابع بر حسب متغیر مستقل قابل رسم خواهد بود.

از جمله روش‌های حل مسائل مقدار اولیه می‌توان به روش‌های تیلور، اویلر و رانگ کاتا مرتبه دوم، سوم و چهارم اشاره نمود. در کلیه این روش‌ها مختصات هر نقطه با استفاده از مختصات نقطه ماقبلش بدست می‌آید. اساس کلیه این روش‌ها، استفاده از سری تیلور است.

تذکر: برای مطالعه توضیحات بیشتر به کتاب «کاربرد ریاضیات در مهندسی شیمی - روش‌های عددی» نوشته دکتر خراط مراجعه کنید.

خلاصه روش رانگ کاتا مرتبه چهارم:


در اینجا قصد دارم به بررسی یک مثال به روش رانگ کاتا - 4 بپردازم. قبلاً این مثال را به روش‌های اویلر و رانگ کاتا-2 نیز حل کرده‌ام (+ و +)

مثال:

معادله دیفرانسیل زیر را با استفاده از روش رانگ کاتا مرتبه چهارم و برای حالت h = 0.5 حل کنید و مقدار تابع را تا x = 3.5 محاسبه کنید.


حل با استفاده از زبان برنامه نویسی پایتون (کدنویسی در محیط Spyder):
import numpy as np
from matplotlib import pyplot as plt
x0=1
y0=1
xf=3.5
n=6
h=(xf-x0)/(n-1)
x=np.linspace(x0,xf,n)
y=np.zeros([n])
y[0]=y0
for i in range(1,n):
    k1=h*x[i-1]*y[i-1]**(1/3)
    k2=h*(x[i-1]+0.5*h)*(y[i-1]+0.5*k1)**(1/3)
    k3=h*(x[i-1]+0.5*h)*(y[i-1]+0.5*k2)**(1/3)
    k4=h*(x[i-1]+h)*(y[i-1]+k3)**(1/3)
    y[i]=y[i-1]+(1/6)*(k1+2*k2+2*k3+k4)
for i in range(n):
    print(x[i],y[i])
plt.plot(x,y,'o')
plt.xlabel('value of x')
plt.ylabel('value of y')
plt.title('Approximate Solution with RK-4 Method')
plt.show()
نتایج:

1.0      1.0
1.5       1.6860902679
2.0     2.82824535285
2.5     4.56006327111
3.0     7.02071665246
3.5     10.3518481736


۰ نظر ۰۱ ارديبهشت ۹۶ ، ۰۱:۲۲
صادق سلمانی