5-amaliy ish Berilgan differensial tenglamani yechish usullari asosida kutubxona yarating va dasturini tuzing. Dastur kodi



Download 229,06 Kb.
Sana13.01.2022
Hajmi229,06 Kb.
#357280

5-amaliy ish

Berilgan differensial tenglamani yechish usullari asosida kutubxona yarating va dasturini tuzing.



Dastur kodi:

ODEINT dan foydalanishga misol k=0,3 parametrli, boshlang‘ich sharti y0=5 va quyidagi differensial tenglama bilan quyidagi differensial tenglama bilan misol bo‘la oladi. Python kodi birinchi navbatda kerakli Numpy, Scipy va Matplotlib paketlarini import qiladi. Model, dastlabki shartlar va vaqt nuqtalari y(t) ni raqamli hisoblash uchun ODEINT ga kirishlar sifatida aniqlanadi.

import numpy as np
from scipy.integrate import odeint
import matplotlib.pyplot as plt

# function that returns dy/dt


def model(y,t):
k = 0.3
dydt = -k * y
return dydt
y0 = 5
t = np.linspace(0,20)
y = odeint(model,y0,t)

# plot results


plt.plot(t,y)
plt.xlabel('time')
plt.ylabel('y(t)')
plt.show()

Ixtiyoriy to'rtinchi kirish args bo'lib, qo'shimcha ma'lumotni model funksiyasiga o'tkazish imkonini beradi. args kiritish qiymatlar qatoridir. Endi k argumenti qo‘shimcha argumentni kiritish orqali model funksiyasiga kirish hisoblanadi.

import numpy as np
from scipy.integrate import odeint
import matplotlib.pyplot as plt

# function that returns dy/dt


def model(y,t,k):
dydt = -k * y
return dydt

y0 = 5
t = np.linspace(0,20)


k = 0.1
y1 = odeint(model,y0,t,args=(k,))
k = 0.2
y2 = odeint(model,y0,t,args=(k,))
k = 0.5
y3 = odeint(model,y0,t,args=(k,))

plt.plot(t,y1,'r-',linewidth=2,label='k=0.1')


plt.plot(t,y2,'b--',linewidth=2,label='k=0.2')
plt.plot(t,y3,'g:',linewidth=2,label='k=0.5')
plt.xlabel('time')
plt.ylabel('y(t)')
plt.legend()
plt.show()

import numpy as np


from scipy.integrate import odeint
import matplotlib.pyplot as plt

# function that returns dy/dt


def model(y,t):
# u steps from 0 to 2 at t=10
if t<10.0:
u = 0
else:
u = 2
dydt = (-y + u)/5.0
return dydt

# initial condition


y0 = 1

# time points


t = np.linspace(0,40,1000)

# solve ODE


y = odeint(model,y0,t)

# plot results


plt.plot(t,y,'r-',label='Output (y(t))')
plt.plot([0,10,10,40],[0,0,2,2],'b-',label='Input (u(t))')
plt.ylabel('values')
plt.xlabel('time')
plt.legend(loc='best')
plt.show()

import numpy as np


from scipy.integrate import odeint
import matplotlib.pyplot as plt

# function that returns dz/dt


def model(z,t):
dxdt = 3.0 * np.exp(-t)
dydt = -z[1] + 3
dzdt = [dxdt,dydt]
return dzdt

# initial condition


z0 = [0,0]

# time points


t = np.linspace(0,5)

# solve ODE


z = odeint(model,z0,t)

# plot results


plt.plot(t,z[:,0],'b-',label=r'$\frac{dx}{dt}=3 \; \exp(-t)$')
plt.plot(t,z[:,1],'r--',label=r'$\frac{dy}{dt}=-y+3$')
plt.ylabel('response')
plt.xlabel('time')
plt.legend(loc='best')
plt.show()

import numpy as np


from scipy.integrate import odeint
import matplotlib.pyplot as plt

# function that returns dz/dt


def model(z,t,u):
x = z[0]
y = z[1]
dxdt = (-x + u)/2.0
dydt = (-y + x)/5.0
dzdt = [dxdt,dydt]
return dzdt

# initial condition


z0 = [0,0]

# number of time points


n = 401

# time points


t = np.linspace(0,40,n)

# step input


u = np.zeros(n)
# change to 2.0 at time = 5.0
u[51:] = 2.0

# store solution


x = np.empty_like(t)
y = np.empty_like(t)
# record initial conditions
x[0] = z0[0]
y[0] = z0[1]

# solve ODE


for i in range(1,n):
# span for next time step
tspan = [t[i-1],t[i]]
# solve for next step
z = odeint(model,z0,tspan,args=(u[i],))
# store solution for plotting
x[i] = z[1][0]
y[i] = z[1][1]
# next initial condition
z0 = z[1]

# plot results


plt.plot(t,u,'g:',label='u(t)')
plt.plot(t,x,'b-',label='x(t)')
plt.plot(t,y,'r--',label='y(t)')
plt.ylabel('values')
plt.xlabel('time')
plt.legend(loc='best')
plt.show()




Download 229,06 Kb.

Do'stlaringiz bilan baham:




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish