Интегралҳо ва муодилаҳои дифференсиалӣ
Интегралҳо ва муодилаҳои дифференсиалӣ барои чӣ лозиманд
Агар ҳосила суръати тағйирро тавсиф кунад, интеграл барои барқарор кардани натиҷаи ҷамъшуда ёрӣ медиҳад. Аз суръат ҷойивазкунӣ, аз тавоноӣ энергияи сарфшуда ва аз зичӣ масса ёфта мешавад. Муодилаи дифференсиалӣ робитаи функсияи номаълумро бо ҳосилаҳои он муайян мекунад: афзоиш, хунукшавӣ ва ҳаракатро ҳамин тавр тавсиф мекунанд.
SymPy имкон медиҳад, ки формула гирем, онро бо дифференсиронӣ санҷем ва баъд қимати дақиқ ё тақрибиро ҳисоб кунем. Фарқ кардани функсияи ибтидоӣ, интеграли муайян ва масоҳати геометрӣ муҳим аст: онҳо объектҳои алоқаманд, вале гуногунанд.
1. Функсияи ибтидоӣ
Функсияи ибтидоии f чунин функсияи F аст, ки ҳосилааш ба f баробар мебошад. Даъвати integrate(f, x) як функсияи ибтидоиро нисбат ба x меҷӯяд. Ҳамаи функсияҳои ибтидоӣ дар як фосила бо доимии ихтиёрӣ фарқ мекунанд, ки дар математика одатан C номида мешавад.
from sympy import symbols, integrate, diff, simplify
x = symbols('x')
f = 2*x**3 + 3
F = integrate(f, x)
print(F)
print(simplify(diff(F, x) - f))
Натиҷа:
x**4/2 + 3*x
0
Фарқи diff(F, x) - f то сифр сода шуд, бинобар ин формула аз санҷиш гузашт. SymPy як функсияи ибтидоиро бе илова кардани C бармегардонад. Агар навишти умумӣ лозим бошад, доимиро алоҳида илова кардан мумкин аст.
Интегралгирӣ ба функсияҳои мураккаб низ татбиқ мешавад. На ҳар ҷавобро бо бисёраъзогиҳо, синусҳо ва экспонентаҳо навиштан мумкин аст: функсияҳои махсус пайдо шуда метавонанд, ки дар китобхона номҳои алоҳида доранд.
from sympy import symbols, integrate, sin, exp
x = symbols('x')
print(integrate(sin(2*x), x))
print(integrate(x*exp(x), x))
print(integrate(exp(-x**2), x))
Натиҷа:
-cos(2*x)/2
(x - 1)*exp(x)
sqrt(pi)*erf(x)/2
Натиҷаи охир erf, функсияи хатогиҳоро дар бар мегирад. Ин формулаи пурраи функсияи ибтидоӣ аст, на паёми нокомӣ. Набудани функсияи ибтидоии элементарӣ ҳанӯз маънои онро надорад, ки китобхона ҷавобро навишта наметавонад.
2. Интеграли муайян
Интеграли муайян саҳми функсияро дар фосила ҷамъ мекунад. Кортежи (x, a, b) тағйирёбанда, ҳудуди поёнӣ ва ҳудуди болоиро муайян мекунад. Барои функсияи бефосила бо функсияи ибтидоии маълум натиҷа ба F(b) - F(a) баробар аст.
from sympy import symbols, integrate, Rational, exp, oo
x = symbols('x')
print(integrate(2*x, (x, 0, Rational(3, 2))))
print(integrate(2*x, (x, Rational(3, 2), 0)))
print(integrate(exp(-2*x), (x, 0, oo)))
Натиҷа:
9/4
-9/4
1/2
Ҳудуди Rational(3, 2) касри дақиқро дар ҷавоб нигоҳ дошт. Ҳангоми иваз кардани ҷойи ҳудудҳо аломат тағйир ёфт. Рамзи oo ҳудуди беохирро ифода мекунад: чунин интеграл ғайрихос номида мешавад ва ҳамгароии онро омӯхтан лозим аст. Дар мисол экспонентаи камшаванда натиҷаи охирнок медиҳад.
Агар дар маълумоти ибтидоӣ ададҳои монанди 0.5 бошанд, натиҷа метавонад ададҳои тақрибӣ дошта бошад. Барои ҷавоби дақиқ коэффитсиентҳо ва ҳудудҳоро бо ададҳои бутун ё Rational диҳед.
3. Интеграл ва масоҳат
Интеграли муайян аломати функсияро ба назар мегирад: қисмҳои зери тир саҳми манфӣ медиҳанд. Масоҳати геометрӣ ғайриманфӣ аст, бинобар ин ҳангоми муқоисаи графикҳо қимати мутлақи фарқи онҳо лозим мешавад. Дар SymPy модули ифода бо функсияи Abs дода мешавад.
from sympy import symbols, integrate, Abs
x = symbols('x', real=True)
d = x - 1
print(integrate(d, (x, 0, 2)))
print(integrate(Abs(d), (x, 0, 2)))
Натиҷа:
0
1
Дар нимаи аввали порча x - 1 манфӣ ва дар нимаи дуюм мусбат аст. Дар интеграл саҳмҳо ҳамдигарро барҳам доданд, аммо масоҳат ба як баробар аст. Барои графикҳои мураккабтар ёфтани нуқтаҳои буриш, фаҳмидани аломати фарқ байни онҳо ва алоҳида баррасӣ кардани қисмҳо фоиданок аст. Агар аломат тағйир ёбад, модули сумма ҷойи суммаи модулҳои саҳмҳоро намегирад.
4. Интеграли навишташуда ва ҳисобшуда
Integral объекти интегралро бе ҳисоби фаврӣ месозад. Методи doit() мекӯшад онро ҳисоб кунад ва evalf(n) қимати тақрибии ададиро бо дақиқии додашуда мегирад. Ин вақте қулай аст, ки аввал навишти математикиро сохта, баъдтар ҳисоб кардан лозим бошад.
from sympy import symbols, Integral
x = symbols('x')
I = Integral(x**2, (x, 0, 2))
print(I)
print(I.doit())
print(I.evalf(8))
Натиҷа:
Integral(x**2, (x, 0, 2))
8/3
2.6666667
Агар integrate ҷавоби рамзиро ёфта натавонад, он ҳам метавонад Integral-и ҳисобнашударо баргардонад. Ин None нест ва ҳатман хато ҳам нест. Ҳисоби ададӣ вақте мувофиқ аст, ки қиматҳои зарурӣ дода шудаанд, интеграл ҳамгаро аст ва алгоритми ададӣ онро дастгирӣ мекунад.
5. Функсияи номаълум ва dsolve
Дар муодилаи одӣ адад номаълум аст, дар муодилаи дифференсиалӣ бошад, тамоми функсия. Function("y") номи функсияи номаълумро месозад; y(t) қимати онро дар аргументи t ифода мекунад. Ҳосиларо бо y(t).diff(t) менависанд.
from sympy import symbols, Function, Eq, dsolve
t = symbols('t')
y = Function('y')
eq = Eq(y(t).diff(t), 3*y(t))
print(dsolve(eq, y(t)))
sol = dsolve(eq, y(t), ics={y(0): 2})
print(sol)
print(sol.rhs.subs(t, 0))
Натиҷа:
Eq(y(t), C1*exp(3*t))
Eq(y(t), 2*exp(3*t))
2
dsolve баробарии Eq-ро бармегардонад. Формулаи аввал доимии ихтиёрии C1 дорад: ин оилаи ҳалҳост. Шарти ибтидоии y(0) = 2 бо луғати ics дода шуда, ҳамин доимиро муайян мекунад. Тарафи рости баробарӣ ҳамчун sol.rhs дастрас аст; вақтро маҳз ба он ҷойгузин кардан қулай аст.
Муодилаи тартиби дуюм одатан ду шарти мустақилро талаб мекунад: қимати ибтидоӣ ва ҳосилаи ибтидоӣ. Ҳосила дар сифр бо y(t).diff(t).subs(t, 0) дода мешавад.
from sympy import symbols, Function, Eq, dsolve
t = symbols('t')
y = Function('y')
eq = Eq(y(t).diff(t, 2), 6)
sol = dsolve(eq, y(t), ics={y(0): 1, y(t).diff(t).subs(t, 0): 2})
print(sol.rhs)
Натиҷа:
3*t**2 + 2*t + 1
Функсияи ҳосилшуда қимати ибтидоии 1, суръати ибтидоии 2 ва ҳосилаи дуюми доимии 6 дорад. Ин шартҳо хосиятҳои алоҳидаи як функсияро муайян мекунанд, на ду функсияи гуногунро.
Ин дар дохил чӣ гуна кор мекунад
Интегралгирӣ як формулаи ягонаи умумӣ надорад. SymPy сохтори ифодаро таҳлил карда, усулҳоро барои бисёраъзогиҳо, функсияҳои ратсионалӣ ва дигар функсияҳо интихоб мекунад. Баъзан ҷавоб функсияҳои махсус дорад ва баъзан объекти ҳисобнашуда мемонад. Санҷиш бо дифференсиронӣ барои фаҳмидани функсияи ибтидоии ёфташуда ёрӣ медиҳад.
Ҳангоми ҳалли муодилаи дифференсиалӣ китобхона навъи онро мешиносад, ҳалли умумиро месозад ва шартҳои ибтидоиро барои муайян кардани доимиҳо истифода мебарад. Ҳам муодила ва ҳам шартҳои ибтидоиро санҷидан лозим аст: формулаи дурусти оилаи умумӣ ҳанӯз ҳалли хусусии дурустро кафолат намедиҳад.
Хатоҳои маъмул ва ислоҳи онҳо
1. Гирифтани танҳо қимати функсияи ибтидоӣ дар ҳудуди болоӣ. Дар ин ҳолат саҳми ҳудуди поёнӣ гум мешавад. Барои порчаи аз 1 то 3 ҳисобҳои нодуруст ва дурустро муқоиса мекунем.
from sympy import symbols, integrate
x = symbols('x')
F = integrate(x, x)
print(F.subs(x, 3))
print(F.subs(x, 3) - F.subs(x, 1))
Натиҷа:
9/2
4
Метавон бевосита integrate(f, (x, a, b))-ро истифода бурд, то ҳар ду ҳудуд ошкоро дода шаванд.
2. Гумон кардан, ки набудани C ҷавобро нодуруст мекунад. integrate як функсияи ибтидоиро бармегардонад. Иловаи доимии мустақил ҳосиларо тағйир намедиҳад.
from sympy import symbols, integrate, diff
x, C = symbols('x C')
F = integrate(2*x, x)
print(F)
print(diff(F + C, x))
Натиҷа:
x**2
2*x
3. Гирифтани модул танҳо баъди интегралгирӣ. Дар мисоли масоҳат интеграл сифр аст ва модули он ҳам сифр, ҳарчанд масоҳат мусбат аст. Модули фарқи функсияҳо ё ҷудокуниро ба қисмҳои дорои аломати доимӣ истифода баред.
4. Ҷойгузинии вақт ба тарафи чапи натиҷаи dsolve. Дар он ҷо навишти функсияи номаълум мемонад. Формулаи ҳисобшаванда дар тарафи рост аст; ба .rhs муроҷиат кунед.
from sympy import symbols, Function, Eq, dsolve
t = symbols('t')
y = Function('y')
sol = dsolve(Eq(y(t).diff(t), 0), y(t), ics={y(0): 7})
print(sol.lhs)
print(sol.rhs)
Натиҷа:
y(t)
7
Ҳамаи шартҳои ибтидоии заруриро диҳед: бе онҳо дар ҷавоб C1, C2 монда метавонанд ва қимати ададӣ муайян намешавад.
Ёдномаи кӯтоҳ
| Ҳадаф | Даъват |
|---|---|
| Як функсияи ибтидоӣ | integrate(f, x) |
| Интеграл дар фосила | integrate(f, (x, a, b)) |
| Ҳудуди беохир | oo ё -oo |
| Модули ифода | Abs(f) |
| Ҳисоби ба таъхир гузошташуда | Integral(f, (x, a, b)).doit() |
| Функсияи номаълум | y = Function("y"), баъд y(t) |
| Ҳал бо шартҳо | dsolve(eq, y(t), ics=conditions) |
| Формула аз баробарӣ | sol.rhs |
Аввал бузургии математикиро аниқ кунед, баъд маълумоти дақиқ ва шартҳоро диҳед. Пеш аз барориши ададӣ боварӣ ҳосил кунед, ки дар формула доимиҳои озод намондаанд.