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



Download 2,15 Mb.
bet42/83
Sana06.07.2022
Hajmi2,15 Mb.
#750238
TuriПрактикум
1   ...   38   39   40   41   42   43   44   45   ...   83
Bog'liq
python

Функция

Описание

legendrc(n)

полиномы Лежандра Рп{х) (р{х) = 1, I = [— 1,1])

chebyt (n)

полиномы Чебышева первого рода Тп(х)
(р(.т) = (1-х2Г1/2, / = [-1.1])

chebyu(n)

полиномы Чебышева второго рода Un(x) (р(х) = (1 - х2)1/2, / = [-1,1])

chebyc(n)

полиномы Чебышева первого рода Сп(х) (р(х) = (1 - (.т/2)2)1/2, / = [-2,2])

chebys(n)

полиномы Чебышева второго рода Sn(x) (р(х) = (1-(х/2)2)1/2, / = [-2,2])

jacobi(n,a, (3)

полиномы Якоби Рпф{х) (р(х) = (1 — х)°(1 + х)^, I = [—1,1])

laguerre(n)

полиномы Лагерра Ln(x) {р{х) = ехр(-х), I = [0, оо])

genlaguerre(n,ct)

обобщенные полиномы Лагерра L“(x) (р(,х) = ехр(-х)ха, I = [0, оо])

hermite(n)

полиномы Эрмита Нп{х) {р{х) = ехр(-х2), / = [-оо,оо])

hcrmitenorm(n)

нормированные полиномы Эрмита Неп{х) (р(х) = ехр(—(х/2)2), I = [-оо,оо])

gcgeribaucr(n,a:)

полиномы Гегенбауэра (ультрасферичсские) С%(х) (р(.т) = (1-х2)“-1/2, / = [-1,1])

sh_legendre(n)

смещенные полиномы Лежандра Рп(х) (р(х) = 1, I = [0,1])

sh_chebyt(n)

смещенные полиномы Чебышева первого рода Тг(х) (р(х) = (х - х2)~1/2, I = [0,1])

sh_chebyu(n)

смещенные полиномы Чебышева второго рода Un{x)
(р(х) = (х-х2)1/2, I = [0,1])

sh_jacobi(n,a:, /3)

полиномы Якоби Рп'0{х) (р(,х) = (1 х)а~рхр~1, I = [0,1])




yl = spec.chebyt(l)(х)


pit.plot(x, yl, label="$T_l(x)$")
y2 = spec.chebyt(2)(x)
pit.plot(x, y2, ’ — \ label="$T_2(x)$")
y3 = spec.chebyt(3)(x)
pit.plot(x, y3, >-.\ label="$T_3(x)$")
y4 = spec.chebyt(4)(x)
pit.plot(x, y4, label="$T_4(x)$")
pit .xlabelC’x’)
pit.legend(loc=9)
pit.grid(True)
pit. showO
па рис. 3.26 показаны графики полиномов Чебышева.
Модуль special предоставляет большие возможности по работе с функция­ми Бесселя (цилиндрическими функциями). Имеется возможность не только вычислять значения цилиндрических функций, но и интегралы и производ­ные от них, а также найти корни. Например, функция jn(n,x) (уп(п,х)) вычисляет значение функции Бесселя первого (второго) рода целого поряд­ка п в точке х. В случае нецелого порядка v для комплексного аргумента z


Рис. 3.26 Полиномы Чебышева первого рода



используются функции jv(v,z) (yv(v,z)) соответственно. Для вычисления корней используются функции jn_zeros(n,nt) (yn_zeros(n,nt)), где nt — число корней.
Ниже представлена программа для рисования функций Бесселя первого рода Jn(x),n = 0,1,3 и первых 6 корней функции J0(x) (см. рис. 3.27).
import scipy.special as spec import numpy as np import matplotlib.pyplot as pit x = np.linspace(0., 20., 100) yl = spec.jn(0,x)
plt.plot(x, yl, >->, label="$J_0(x)$") y2 = spec.jn(l,x)
pit.plot(x, y2, ’label="$J_l(x)$") y3 = spec.jn(2,x)
pit.plot(x, y3, label="$J_2(x)$")
zeros = spec.jn_zeros(0, 6) for xz in zeros:
pit.scatter(xz, 0) pit.xlabel(’x’)


Рис. 3.2Т Функции Бесселя первого рода



pit. legendO pit.grid(True) pit.show()
В качестве еще одного примера отметим гамма-функцию





которая определена как для вещественных, так и для комплексных 2. График функции Г(а;) для — 5 < х < 5 приведен на рис. 3.28. Расчет выполнен по следующей программе.
import scipy.special as spec
import numpy as np
import matplotlib.pyplot as pit
x = np.arange(-5,5,0.01)
у = spec.gamma(x)
for i in x:
if у[i] > 1.e20: y[i] = l.e20
if y[i] < -l.e20: y[i] = -l.e20 plt.plot(x, y, label="$\\Gamma(x)$")





pit.axis([-5.,5.,-20.,20.])
pit.xlabel(’x’)
pit.legend(loc=4)
pit.grid(True)
pit. showO
В данном примере для корректной прорисовки слишком большие по модулю значения функции обрезаются.
Быстрое преобразование Фурье
На основе преобразования Фурье решаются многие задачи обработки сигна­лов. Задачи прямого и обратного преобразования Фурье возникают также при применении метода разделения переменных для краевых задач мате­матической физики. Отметим возможности модуля fftpack пакета SciPy но преобразованию Фурье сеточных периодических функций.
Будем считать, что комплексная периодическая функция y^j 0, ±1,... с периодом N определяется но значениям в узлах j = 0,1,...,7V -- 1, так что у:) = yj+tnN. где т любое целое. Функция y^j = 0, dhl,... представляется в
v
(3.1)

s =
Е
где г = yf-\. Здесь ац, /с = 0, 1,..., iV — 1— коэффициенты Фурье, для которых имеет место представление
(
виде

3.2)

Вычисление коэффициентов Фурье по (3.2) есть прямое преобразование Фу­рье функции yj 0,1, ...,7V — 1, а восстановление самой функции по коэф­фициентам хк)к = 0,1, — 1 согласно (3.1) — обратное преобразование
Фурье.
В общем случае прямое и обратное преобразование Фурье требует 0(N2) арифметических действий. Вычислительную работу удается снизить до ве­личины 0(N\ogN), например, при N = 2п алгоритмы быстрого преобра­зования Фурье.
В модуле fftpack для прямого преобразования Фурье используется функция fft (), обязательным аргументом которой является массив значений сеточной функции. Обратное преобразование Фурье обеспечивается функцией if ft О.
Приведенная ниже программа иллюстрирует использование функций fft() и if ft () при Фурье-преобразовании разрывной функции. На рис. 3.29 при­ведены модули коэффициентов Фурье, а на рис. 3.30 представлены точные значения сеточной функции и полученные после применения прямого, а за­тем обратного преобразования Фурье.
import пшпру as пр import matplotlib.pyplot as pit from scipy import fftpack def f (x): f = x
if x > 0.5: f = 0. return f N = 32
У = np.zeros((N), ’float’) t = np.zeros((N), ’float’) for k in range(N):
tk = np.float(k) / N t[k] = tk у[k] = f(tk) x = fftpack.fft(y) z = np.sqrt(x.real**2 + x.imag**2) pit.figure(1)
pit.bar(range(N), z, align=’center’, width=0.5, color=’g’)
p

Download 2,15 Mb.

Do'stlaringiz bilan baham:
1   ...   38   39   40   41   42   43   44   45   ...   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