Pakiety Matematyczne

Transkrypt

Pakiety Matematyczne
Pakiety matematyczne
Matematyka Stosowana
dr inż. Krzysztof Burnecki
10.04.2013
Wykład 8
 Rachunek różniczkowy i całkowy
 Operacje symboliczne w Matlabie
Slajdy powstały na podstawie prezentacji „Informatyka” otrzymanej od
dr hab. Małgorzaty Kotulskiej
Całkowanie. Funkcje „quad”, „quadl”
 Funkcja
quad wykorzystuje
regułę
Simpson’a
(3-punktowa reguła Newton-Cotes’a), dokładna dla
wielomianów do 3 stopnia.
 Funkcja quadl 4-punktową regułę
dokładna dla wielomianów do 5 stopnia.
Gauss-Lobatto,
 Obie metody sa metodami adaptacyjnymi. Dzielą
przedział całkowania na podprzedziały o zmiennej długości
tak, aby najkrótszy przedział wypadał w miejscu największej
zmienności funkcji podcałkowej.
Funkcje „quad”, „quadl”
quad (@oblicz, początek_x, koniec_x, tolerancja)
quadl (@oblicz, początek_x, koniec_x, tolerancja)
tolerancja (jak duży błąd) – opcjonalnie
Całkowanie. Przykład
5
x ln(x) dx
1
function wynik = oblicz(x)
wynik = x.*log(x);
>> quad (@oblicz, 1,5)
ans = 14.1180
>> quadl (@oblicz, 1,5)
ans=14.1180
Tolerancja w całkowaniu
>> quadl(@oblicz, 1,5,1e-1)
ans =
14.1180
>> quadl(@oblicz, 1,5,1e-25)
Warning: Maximum function count exceeded; singularity likely.
(Type "warning off MATLAB:quadl:MaxFcnCount" to suppress this
warning.)
> In C:\MATLAB6P5\toolbox\matlab\funfun\quadl.m at line 94
ans =
14.1872
Całkowanie za pomocą „trapz”
Z = trapz(Y)
Z = trapz(X,Y)
%Y-wektor wyznaczający przedział dziedziny
Metoda NIEADAPTACYJNA
Całkowanie za pomocą „trapz”
>> x = linspace(1,5,5)
>> f = x.*log(x);
>> trapz(x,f)
ans =14.2509
>>x = linspace(1,5,15)
>> trapz(x,f)
ans =14.1289
Całkowanie za pomocą „trapz”
sin( x)dx
0
>> X = 0:pi/100:pi;
>> Y = sin(X);
>> Z = trapz(X,Y)
Z = 1.9998
Całkowanie podwójne. Funkcja
„dblquad”
q = dblquad(fun,xmin,xmax,ymin,ymax)
q = dblquad(fun,xmin,xmax,ymin,ymax,tol)
q = dblquad(fun,xmin,xmax,ymin,ymax,tol,method)
function out=fxy(x,y)
out=y^2*exp(x)+x*cos(y);
>> dblquad(@fxy,0,1,4,6)
ans=87.2983
Różniczkowanie. Funkcja „diff”
diff(y) - oblicza różnicę pomiędzy kolejnymi
elementami wektora
diff(y,n) – różnica obliczana n razy
Przykład:
>> x = [1, 3, 5, 3, 4, 8]
>> diff(x)
ans = 2
2
-2
1
3
3
>> diff(x,2)
ans = 0 -4
4
Różniczkowanie. Funkcja „diff”
f ' ( x)
lim
x
f (x
0
x)
x
f ( x)
diff(y)./diff(x) – aproksymacja różniczkowania
Przykład
>> x=[0:0.1:2*pi];
>> funkcja=sin(x);
>> pochodna=diff(funkcja)./diff(x);
>> plot(x, funkcja, x(2:end),pochodna,':')
>> legend(' funkcja ', ' pochodna '); axis equal
ans = 0 -4
3
3
Operacje symboliczne. Symbolic Math
Toolbox
 Toolbox symboliczny pochodzi od programu MuPAD –
komercyjnego programu algebry komputerowej (CAS)
opracowanego przez grupę badawczą MuPAD z
Uniwersytetu w Paderborn pod kierunkiem profesora
Benno Fuchssteiner we współpracy z SciFace Software
GmbH.
 Składnia MuPAD jest wzorowana na Pascalu i jest
podobna do tej w pakiecie Maple. Różnica pomiędzy
tymi programami polega na tym, że MuPAD umożliwia
programowanie obiektowe.
Różniczkowanie symboliczne
>> syms x
>> f = sin(5*x)
f=
sin(5*x)
>> diff(f)
ans =
5*cos(5*x)
Różniczkowanie symboliczne – pochodne
cząstkowe
>> syms s t
>> f = sin(s*t)
>> diff(f,t)
ans =
cos(s*t)*s
Wybrane operacje symboliczne
Całkowanie:
Suma szeregu:
R = int(S)
r = symsum(s)
R = int(S,v)
r = symsum(s,v)
Obliczanie granicy:
Rozwiązywanie równań
limit(F,x,a)
g = solve(eq,var)
limit(F,x,a,'right')
F-wyrażenie, x-zmienna,
a- granica
Przykłady. Całkowanie
>> syms x y n;
>> f = x^n + y^n;
>> int(f, y)
>> syms x y n;
>> f = x^n + y^n;
>> int(f, n)

Podobne dokumenty