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

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

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

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

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

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

آخرین نظرات
  • ۱۶ خرداد ۹۸، ۰۰:۲۳ - محمد
    عالی
  • ۱۴ آذر ۹۷، ۱۸:۰۶ - خ
    عالی
  • ۸ آذر ۹۷، ۲۰:۰۷ - محمد علی
    احسنت

۱۳۳ مطلب با کلمه‌ی کلیدی «مهندسی نفت» ثبت شده است

چند وقت پیش با نموداری به شکل زیر روبرو شدم که نمیدونستم دلیل انحراف داده های اولیه از خط راست با شیب یک چی میتونه باشه؟!


ولی امروز که داشتم یک مطلبی رو میخوندم، به دلیل چنین اثری اشاره شده بود: اگر ما در تخمین زمان بسته شدن چاه (Shut-in Time) دچار خطا شویم، آنگاه نمودار فشار و مشتق فشار مثل شکل های موجود در تصویر خواهند شد.

نتیجه گیری: در تخمین مقادیر فشار ته چاهی نهایی (Pwf) و همچنین زمان بسته شدن چاه (to) دقت بسیار زیادی داشته باشیم؛ زیرا اگر در محاسبه آن ها اشتباه کنیم، نمودارهای فشار و مشتق فشار از شکل طبیعی خود منحرف می شوند.


یک مثال واقعی از میادین ایران:




برای درک بهتر مطالب بیان شده، ویدئوی زیر را حتماً مشاهده کنید:

۰ نظر ۲۷ آذر ۹۵ ، ۱۱:۳۲
صادق سلمانی


چند سالی هست که بازار چاپ مقاله خیلی داغه. به نظرم اگر قرار بود انتشار مقاله سودی برای صنعت نفت کشورمون داشته باشه، الآن وضعیتمون این نبود! البته واضحه که منظورم مقاله‌های کاربردی و صنعتی نیست، بلکه منظورم اون دسته از مقاله‌های غیرکاربردی و چرندی هست که هر دانشجویی با چند ماه مطالعه روی یک موضوع شروع میکنه به صورت کیلویی بنویسه. اکثر مقاله‌هایی که تو ایران چاپ میشه صرفاً برای کسب نمره، اخذ پروژه کسری خدمت، عضویت در بنیاد ملی نخبگان، ترفیع، و موارد دیگه هست. در حقیقت هدف اصلی که رفع یک چالش در صنعت هست، به هیچ وجه مد نظر قرار نمیگیره.

و اما این به این منظور نیست که من از این کار شانه خالی کنم، بلکه دو برنامه متفاوت دارم:

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

دوم: خودم را درگیر پروژه یکی دو نفر کنم تا بتونم به داده‌های میادین مختلف ایران دسترسی پیدا کنم و مطالب جدیدتری یاد بگیرم. حتی میتونم یک سری داده گیر بیارم و خودم به تنهایی کار کنم. هدفم از این کار این هست که یک حس مهندسی نسبت به پارامترهای مخزنی پیدا کنم.

سوم: یک سری جزوات و درسنامه‌های موضوعی برای مباحثی که علاقه دارم تهیه کنم و در آن‌ها از مطالب کاربردی و منطبق بر ویژگی‌های میادین ایران استفاده کنم. مطمئناً در آینده می‌توانم از این جزوات به عنوان هندبوک استفاده کنم و حتی می‌توانم به فکر چاپ کتاب هم باشم.

در این زمانه، اطلاعات (که شامل مقاله های علمی هم میشه) خیلی زیاد و در دسترس هستند ولی نیاز شدیدی هست که اینها طبقه‌بندی و کاربردی بشوند. کافیه که مثلاً در گوگل سرچ کنید: gas condensate، خودتون متوجه میشید که چقدر مقاله تا کنون چاپ شده و خیلی از این‌ها در انبوه مقالات دیگر در حال گم شدن هستند.

۰ نظر ۲۷ آذر ۹۵ ، ۰۱:۰۴
صادق سلمانی

در ریاضیات دنباله فیبوناچی به صورت زیر تعریف می شود:

به غیر از دو عدد اول، اعداد بعدی از مجموع دو عدد قبلی خود بدست می آیند. اولین اعداد این سری عبارتند از:

۰٬ ۱٬ ۱٬ ۲٬ ۳٬ ۵٬ ۸٬ ۱۳٬ ۲۱٬ ۳۴٬ ۵۵٬ ۸۹٬ ۱۴۴٬ ۲۳۳٬ ۳۷۷٬ ۶۱۰٬ ۹۸۷٬ ۱۵۹۷٬ ۲۵۸۴٬ ۴۱۸۱٬ ۶۷۶۵٬ ۱۰۹۴۶٬ ۱۷۷۱۱

برای پیدا کردن 10 جمله اول دنباله اعداد فیبوناچی توسط پایتون از کد زیر استفاده می کنیم:

def F(n):

    if n == 0: 

        return 0

    elif n == 1: 

        return 1

    else: 

        return F(n-1)+F(n-2)

for i in range(0,10):

    print (F(i))


جواب:

0

1

1

2

3

5

8

13

21

34

تدکر: اگر در دستور بالا n را تغییر دهیم، می توانیم به هر تعداد جمله از دنباله فیبوناچی دسترسی داشته باشیم.

۲ نظر ۱۶ آذر ۹۵ ، ۰۳:۱۸
صادق سلمانی

برای پیدا کردن اعداد اول در یک بازه مشخص از کد زیر استفاده می کنیم:

from sympy import*

list1=[]

for i in primerange(7, 18):

    list1.append(i)

print(list1)

[7, 11, 13, 17] :جواب

برای اینکه تشخیص دهیم که یک عدد اول هست یا نه از کد زیر استفاده می کنیم:

>>> from sympy import*

>>> isprime(13)

 True


تجزیه یک عدد به عوامل اول:

from sympy import*

print(S(45).factors())

{3: 2, 5: 1} :جواب

۰ نظر ۱۰ آذر ۹۵ ، ۲۰:۳۳
صادق سلمانی

برای محاسبه فاکتوریل یک عدد (مثلاً !5) از دو روش زیر استفاده می کنیم:

روش اول:

x=1

num=int(input("enter a positive number:"))

for i in range(1,num+1):

    x=x*i

print("the factorial of",num,"is",x)

جواب: the factorial of 5 is 120

روش دوم:
from math import factorial
print (factorial(10))
جواب: 120
۳ نظر ۱۰ آذر ۹۵ ، ۲۰:۰۴
صادق سلمانی

در این بخش قصد داریم که یک دستگاه معادلات غیر خطی جبری را با استفاده از کتابخانه sympy حل کنیم. به مثال زیر دقت کنید:

from sympy import*

f1=x**2+y**2-3

f2=x*y-1

ans=solvers.solve((f1,f2),(x,y))

print(ans)

جواب: 

[(-(-3 + (-1/2 + sqrt(5)/2)**2)*(-1/2 + sqrt(5)/2), -1/2 + sqrt(5)/2), (-(-3 + (1/2 + sqrt(5)/2)**2)*(1/2 + sqrt(5)/2), 1/2 + sqrt(5)/2), (-(-3 + (-sqrt(5)/2 - 1/2)**2)*(-sqrt(5)/2 - 1/2), -sqrt(5)/2 - 1/2), (-(-3 + (-sqrt(5)/2 + 1/2)**2)*(-sqrt(5)/2 + 1/2), -sqrt(5)/2 + 1/2)]

یا:


sympy: symbolic mthematics in python
۰ نظر ۱۰ آذر ۹۵ ، ۱۴:۴۵
صادق سلمانی

ما دو نوع معادلات را تا به حال یاد گرفته ایم: 1- معادلات جبری 2- معادلات دیفرانسیلی

در معادلات جبری، جواب ها به صورت نقاط و اعداد هستند اما در معادلات دیفرانسیلی، مجهول به صورت یک تابع است.

تذکر: یک معادله جبری به صورت زیر نمایش داده می شود:

f(x,y,z,...)=0

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

روش اول:

from numpy import*

A=array([[1,-2,-1],[2,2,-1],[-1,-1,2]])   ماتریس ضرایب

b=array([6,1,1])   ماتریس معلومات

M=linalg.solve(A,b)    ماتریس مجهولات

print("M=",M)

جواب: M=[3 , -2 , 1]

روش دوم:

from sympy import*

var('z')

ans=solve((x-2*y-z-6,2*x+2*y-z-1,-x-y+2*z-1),(x,y,z))

print(ans)

{z: 1, y: -2, x: 3}


linalg.solve(A,b) :  Solve a linear matrix equation, or system of linear scalar equations (Linear algebra)
۰ نظر ۱۰ آذر ۹۵ ، ۰۴:۲۲
صادق سلمانی

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


۰ نظر ۲۹ آبان ۹۵ ، ۲۱:۴۲
صادق سلمانی


چند وقت پیش یکی از دوستان در اینستاگرام سوال پرسیده بود که چطوری اکلیپس رو یاد بگیرم؟

هرچند من خودم هم مسلط نیستم و تجربه کمی دارم ولی چند تا راهکار:


1- کتاب بالا را تهیه کنید... این کتاب مطالب مهم و کلی رو گفته و زیاد وارد حاشیه نشده و به خوبی میتونید با خوندن این کتاب یک دیتافایل اکلیپس رو متوجه بشید که چی به چیه... برخی از کتاب های بازار اومدن و کل منیوال اکلیپس رو ترجمه کردند و این کتاب ها زیاد به درد بخور نیستند...


2- حتماً از یک نفر که به این نرم افزار مسلط هست بخواهید تا در حد 4 یا 5 ساعت ریزه کاری ها، نکات و آپشن های مختلف اون رو به شما یاد بده... این کار رو یا میتونید با کلاس خصوصی، یا کلاس های عمومی و یا دوستانتون انجام بدهید... من خودم به شخصه کلاس خصوصی و دوستان رو ترجیح میدم... با یک نفر باتجربه کلاس بگیرید و ازش بحواهید که به صورت کاربردی به شما آموزش بدهد نه اینکه فقط کلیات و تئوری ها رو یاد بده... تئوری ها رو خودتون هم میتونید بخونید و در همه جا پیدا میشه...


3- یک پروژه برای خودتون تعریف کنید (وقتی نرم افزار رو نصب میکنید مثال های متعددی داخلش هست) و با سعی و خطا و خروجی گرفتن از پارامترهای مختلف اون، تسلطتون رو بیشتر کنید...


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


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


با این چند راهکار هر نرم افزاری رو میتونید به راحتی یاد بگیرید...

البته این رو هم بگم که خیلی از بچه ها (از جمله بچه های دانشکده نفت)، وقتی در یک کلاس شرکت می کنند، از دسکتاپ لپ تاپ خودشون فیلم برداری می کنند و همه چیز ثبت میشه و به عنوان یک منبع آموزشی بسیار مفید میتونه باشه:)

۰ نظر ۲۸ آبان ۹۵ ، ۰۰:۲۰
صادق سلمانی

 

یکی از سوالاتی که تا به حال چند بار پرسیده شده بود این هست که چطوری میتوانیم چاه های مجازی (یا تصویری) را برای حالات زیر رسم کنیم؟ (دقت کنید که محاسبه تعداد چاه ها بسیار راحته و شما از فرمول استفاده می کنید ولی رسم چاه های مجازی یک مقدار دشوارتر هست)

1- نوع مرزها متفاوت باشه: مرز نفوذناپذیر (گسل)، مرز فشار ثابت

2- زاویه بین مرزها متفاوت باشه: 30، 45، 60، 90 یا 180

 

من 10 حالت مختلف را در یک فایل ویدئویی توضیح داده ام و شما روش کلی حل اینگونه مسائل را به خوبی فرا خواهید گرفت.

یک نکته مهم: من این روش ها را برای حالت کلی توضیح داده ام و مثلاً اگر صورت سوال به گونه ای بود که r زیاد بود، بالتبع مقدار Ei صفر خواهد شد و شما می توانید از آن چاه های مجازی صرف نظر کنید:

x>10.9 : Ei(-x)=0


عنوان محصول: روش محاسبه و رسم چاه های مجازی 

تهیه کننده: صادق سلمانی
مشخصات فایل: 43 دقیقه فایل ویدئویی + 11 صفحه فایل PDF
سال: آبان 95
کاربرد: درس های ولتست و مخزن یک

قیمت این محصول: 6500 تومان

 

مشاهده قسمتی از این فایل آموزشی در آپارات
 
۰ نظر ۲۶ آبان ۹۵ ، ۰۲:۵۱
صادق سلمانی