Юқоридаги (1)- (2) чегаравий масалани даги сонли-тақрибий ечимини топиш учун ушбу оралиқда тўрни киритамиз.
Бу ерда , n - тугун нуқталар сони.
Киритилган тўрнинг тугун нуқталари учун (1) дифференциал тенгламани ёзиб оламиз.
Қуйидаги умумий ҳолдаги белгилашни киритиб,
(1’) ни қайта ёзиб олайлик
оралиқнинг четки нуқталари учун (2) чегаравий шартларни қайтадан ёзиб оламиз ва керакли чекли айирмали формулаларни қўллаймиз.
Ўхшаш ҳадларни ихчамлаймиз:
Керакли белгилашлар киритиб ва (5) тенгламани ҳисобга олиб
уч диагоналли тўлақонли тенгламалар системасига эга бўламиз.
Системани ҳайдаш усули ёрдамида ечилади ва дифференциал
тенгламанинг сонли- тақрибий илдизлари хосил қилинади.
(3) тенгламадаги номаълум функциянинг тугун нуқталардаги
хосилаларини чекли-айирмалар орқали ифодалаймиз.
Ҳосил бўлган тенгламани ҳар иккала томонини га кўпайтирамиз
ва мос ҳадларни группалаймиз. Керакли белгилашлар киритиш натижасида:
қуйидаги тенгламалар системасини ҳосил қиламиз:
Хосил бўлган тенгламалар системаси лардан иборат
n+1 та номаълумли, n-1 та тенгламадан иборат бўлиб, етишмаган иккита
тенгламани чегаравий шартлар ёрдамида хосил қилинади
Алгебраик тенгламалар системасини ечишнинг ҳайдаш усули
B lok- sxema:
Pythonda dasturi:
import math
n = 10
m0 = int(input('m0 = '))
m1 = int(input('m1 = '))
m2 = int(input('m2 = '))
g0 = int(input('g0 = '))
g1 = int(input('g1 = '))
g2 = int(input('g2 = '))
a = 0
b = 1
def px(p):
x = p
return(2*math.sin(6*x))
def qx(q):
x = q
return(0)
def fx(f):
x = f
return(12*x**2+8*x**3*math.sin(6*x))
h=(b-a)/n
A=[0]*n
B=[0]*n
C=[0]*n
D=[0]*n
A[0]=h*m0-m1
B[0]=m1
A[n-1]=h*g0+g1
C[0]=h*m2
B[n-1]=-g1
C[n-1]=h*g2
alfa=[0]*n
betta=[0]*n
alfa[0]=-B[0]/A[0]
betta[0]=C[0]/A[0]
for i in range(n-1):
x=a+i*h
A[i]=1+px(x)*h/2
B[i]=2-h*h*qx(x)
C[i]=1-px(x)*h/2
D[i]=h*h*fx(x)
alfa[i+1]=A[i]/(B[i]-C[i]*alfa[i])
betta[i+1]=(C[i]*B[i]-D[i])/(B[i]-C[i]*alfa[i])
y=[0]*n
y[n-1]=(C[n-1]-B[n-1]*betta[n-1])/(A[n-1]+B[n-1]*alfa[n-1])
for j in range(n):
i=n-1-j
y[i-1]=alfa[i]*y[i]+betta[i]
for i in range(n):
print(y[i])
y''+2sin6xy'=12x2+8x3sin6x
|
y'(0)=0
|
y'(1)= 4
|
N=10
m0 = 0
m1 = 1
m2 = 0
g0 = 0
g1 = 1
g2 = 4
-1.2621659933042186e+16
-1.2621659933042188e+16
-1.262165993304219e+16
-1.2621659933042192e+16
-1.2621659933042194e+16
-1.2621659933042196e+16
-1.2621659933042198e+16
-1.2621659933042198e+16
-1.2621659933042198e+16
-1.2621659933042186e+16
|
|
Do'stlaringiz bilan baham: |