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

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

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

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

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

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

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

۱۷ مطلب با موضوع «کدنویسی» ثبت شده است

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

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

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

برای پیدا کردن 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)
۰ نظر ۱۰ آذر ۹۵ ، ۰۴:۲۲
صادق سلمانی

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


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

مقدمه: ایشان مؤسس یک شرکت در زمینه اکتشاف، تولید و شبیه‌سازی مخزن هست (لینک سایت شرکت)... تخصصشان هم ریاضیات، کد نویسی، شبیه‌سازی و مهندسی مخزن هست...

پروفایل دکتر Andrew Wadsley در لینکدین: این لینک

 

یک روز کاری خودتان رو توصیف کنید؟

اگر زمستان باشد، ابتدا به مزرعه می‌روم و چوب برای اجاق می‌آورم و به گاوها غذا می‌دهم... سپس چند ساعت را به بررسی ایمیل‌ها و ویدئوکنفرانس با مشتری‌های شرکتمان در جاهای مختلف دنیا می‌پردازم...

 

در حال حاضر چکار می‌کنید؟

در حال نهایی کردن دو تا شبیه‌ساز هستیم. البته به کارهای مزرعه هم باید رسیدگی کنم:)

 

به نظرتان بزرگ‌ترین چالش فعلی صنعت نفت و گاز چیست؟

به نظرم شبیه‌سازی مخزن در بحران است... مدیران ارشد شرکت‌ها به نتایج شبیه‌سازی اعتماد نمی‌کنند...

اگر ریاضیات با دقت و به‌درستی به کار برده شوند، پیشرفت زیادی  نسبت به ورژن های قبلی خواهیم داشت...

من همواره داده‌هایم را با معروف‌ترین زمین شناسان و ژئوفیزیست ها کالیبره می‌کنم...

 

چطور می‌توان شبیه‌سازی مخزن را بهبود بخشید؟

افزایش تعداد سلول‌ها در یک مدل شبیه‌سازی به معنای بهتر کردن پیش‌بینی عملکرد آینده مخزن نیست... باید عدم قطعیت را کاهش داده و از فرضیات کمتری استفاده کنیم...

 

لینک کامل منبع: این لینک

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