Практикум j практическое примщенше численных методов



Download 2,15 Mb.
bet50/83
Sana06.07.2022
Hajmi2,15 Mb.
#750238
TuriПрактикум
1   ...   46   47   48   49   50   51   52   53   ...   83
Bog'liq
python

Пакет символьных вычислений SymPy
Научные вычисления базируются на получении приближенного численного решения задачи. Они могут дополняться символьными вычислениями, кото­рые подразумевают преобразования и работу с математическими равенства­ми и формулами, которые рассматриваются как последовательность симво­лов. Системы аналитических вычислений (системы компьютерной алгебры) используются для символьного интегрирования и дифференцирования, вы­числения пределов, подстановки одних аналитических выражений в другие, упрощения формул и т.д.
Символьные вычисления в Python поддерживаются пакетом SymPy73. Это полнофункциональная и одновременно простая для использования и легко расширяемая система компьютерной алгебры. Пакет SymPy полностью напи­сан на Python и при использовании не требует никаких внешних библиотек.
Для задания одной символьной переменной используется функция Symbol О, нескольких — symbols О или var(). При работе с числами с плавающей за­пятой имеется возможность выбора точности вычислений с использованием функции N() (арифметика произвольной точности). Поддерживаются вычис­ления с комплексными числами (в SymPy \Л-1 = I, е = Е). Для представле­ния дробей используется функция Rationale). Дополнительные возможно­сти при выводе результатов предоставляет функция pprint(). Следующий пример иллюстрирует отмеченные возможности пакета SymPy.
import sympy as sm x, у = sm.symbols (’xy’)
print ’pi:’, sm.N(sm.pi, 50)
print ’complex:’, sm.N(l/(2 + sm.I), 50)
x = sm.Rational(1, 2)
у = sm.Rational(3, 7)
gm.pprint(x + y)





Поддерживаются основные символьные операции с выражениями. Для упро­щения символьного выражения применяется функция simplifyO. Для упро­щения тригонометрических функций используется trigsimpO, для числен­ных упрощений — nsimplifyO.
import sympy as sm
x = sm. Symbol Ox’)
si = (l-2*x)*(3+x) + x**2
print ’simplify:’, sm.simplify(si)
s2 = sm.sin(x)**2 + sm.cos(x)**2
print ’trigsimp:’, sm.trigsimp(s2)
s3 = sm.nsimplify(sm.pi*7, tolerance=0.01)
print ’nsimplify:’, s3
Раскрытие скобок в символьных выражениях обеспечивается функцией expand О (ниже приведен пример для полиномов и тригонометрических функций комплексного переменного). Отметим также функцию apart О для
разложения на простые дроби.
*
import sympy as sm x = sm. Symbol (’x’) у = sm.Symbol(’y’) si = (x+y)**3
print ’expand (basic):’, sm.expand(sl) s2 = sm.sin(x + sm.I*y)
print ’expand (complex):’, sm.expand(s2, complex=True)
s3 = 2/( (x-l)*(x+l) )
print ’apart:’, sm.apart (s3, x)
!!||Щ|§||Д^
expand ; ( complex ). cosh (im (x) + fe (y ))* sin:(-~im(y): • re (x)^ : I*Cps(“im(y) -{- re (x)) * s i n h (liii (x) 4- r e; (у ])
В пакете Sympy поддерживаются основные операции математического анали­за. Для аналитического дифференцирования используется функция diff ()} для интегрирования — integrate().
import sympy as sm x = sm.Symbol(’x’) si = sm.log(l+x) + 1/(1+x) print ’diff:’, sm.diff(sl, x) s2 = sm.log(x**2)
print ’integrate:’, sm.integrate(s2, x) s3 = x / (x**2 + 2*x+l)
print ’integrate (0,1):’, sm.integrate(s3, (x, 0, 1))
Вычисление пределов обеспечивается функцией limit О. Для разложения функции в ряд Тейлора в заданной точке используется series О.
import sympy as sm x = sm.Symbol(’x’) si = x**x
print ’limit (x->0):’, sm.limit(si, x, 0) s2 = sm.cos(x)
print ’series:’, s2.series(x, 0, 8)
Для решения алгебраических уравнений и систем в пакете Sympy исполь­зуется функция solve() (уравнения записываются в виде fi(x0) жт), i = 0,1, Кроме того имеется возможность получения аналитического реше­
ния задачи Коши для обыкновенных дифференциальных уравнений — функ­ция dsolveQ. В примере ищется общее решение уравнения
d2u
Л?+= 0-
import sympy as sm x, у = sm.symbols(’xy’) u = sm.Function(’u’) si = x**4 - 1
print ’solve:’, sm.solve(si, x) s2 = (x**2 + y**2 - 1, x - у + 1) print ’solve (system):’, sm.solve(s2, x, y) eq = sm.Derivative(u(x), x, x) + u(x)
print ’dsolve:’, sm.dsolve(eq, u(x))
s olve. [1, -1, -I, I]

Download 2,15 Mb.

Do'stlaringiz bilan baham:
1   ...   46   47   48   49   50   51   52   53   ...   83




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