Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Obliczenia w Matlabie Obliczenia symboliczne

Podobne prezentacje


Prezentacja na temat: "Obliczenia w Matlabie Obliczenia symboliczne"— Zapis prezentacji:

1 Obliczenia w Matlabie Obliczenia symboliczne
Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania

2 Symbolic Math Biblioteka Symbolic Math Toolbox pozwala na wykonywanie obliczeń na zmiennych symbolicznych. Jej możliwości obejmują: obliczenia z możliwością określenia dokładności, całkowanie i różniczkowanie analityczne wzorów matematycznych, upraszczanie i przekształcanie wyrażeń, obliczenia z zakresu algebry liniowej, analityczne rozwiązywanie równań algebraicznych i różniczkowych.

3 Definiowanie zmiennych symbolicznych
x=sym('x'); % syms x f=x^2; Funkcja anonimowa Wyrażenie symboliczne

4 Obliczanie wartości wyrażenia
syms x f=x^2; x=5; eval(f) Zapis f(5) generuje błąd syms x f=x^2; subs(f,5) subs(f,x,5)

5 Obliczanie wartości wyrażenia
syms x a b c f=a*x^2+b*x+c; subs(f,x,3) subs(f,a,3) subs(f,b,3) subs(f,c,3) subs(f,3) subs(f,[a,b,c],[1,2,3]) 9*a + 3*b + c 3*x^2 + b*x + c a*x^2 + 3*x + c a*x^2 + b*x + 3 9*a + 3*b + c Funkcja subs podstawia wartość pod zmienną najbliższą w alfabecie do zmiennej x, czyli: x, y, w, z, v, u, t, …, b, a x^2 + 2*x + 3

6 Upraszczanie wyrażeń 1 log(exp(x)) x x
syms x f=sin(x)^2+cos(x)^2 g=simple(f) f=log(exp(x)) syms x real % x=sym('x','real') g=simple(f,'IgnoreAnalyticConstraints',true) 1 log(exp(x)) x x

7 Faktoryzacja wyrażeń factor(20) factor(sym('20')) syms x f=x^3+6*x^2+11*x+6 factor(f) syms a b factor(a^2-b^2) factor(a^2+2*a*b+b^2) [2,2,5] 2^2*5 (x + 3)*(x + 2)*(x + 1) (a - b)*(a + b) (a + b)^2

8 4*cos(x)*sin(x) + 4*cos(x)^2*sin(x)^2 + 1
Rozwijanie wyrażeń syms x f=factor(x^3+6*x^2+11*x+6) expand(f) f=(sin(2*x)+1)^2 expand(f,'ArithmeticOnly',true) syms x y f=log((x*y)^2) expand(f,'IgnoreAnalyticConstraints',true) (x + 3)*(x + 2)*(x + 1) x^3 + 6*x^2 + 11*x + 6 4*cos(x)*sin(x) + 4*cos(x)^2*sin(x)^2 + 1 2*sin(2*x) + sin(2*x)^2 + 1 log(x^2*y^2) 2*log(x) + 2*log(y)

9 Wielomiany p=[1,6,11,6] f=poly2sym(p) f_a=poly2sym(p,sym('a')) horner(f) sym2poly(f) x^3 + 6*x^2 + 11*x + 6 a^3 + 6*a^2 + 11*a + 6 x*(x*(x + 6) + 11) + 6 [1,6,11,6]

10 Różniczkowanie wyrażeń
syms x f=x^2 diff(f) diff([1,2,4,7]) diff(1) diff(sym('1')) 2*x [1,2,3] []

11 Różniczkowanie wyrażeń
syms x y f=sin(x)+cos(y) diff(f) diff(f,x) diff(f,y) diff(f,2) diff(f,y,2) diff(diff(f,x),y) cos(x) cos(x) -sin(y) -sin(x) -cos(y)

12 Gradient i hesjan Gradient – wektor pochodnych cząstkowych funkcji: Hesjan (macierz Hessego) – macierz drugich pochodnych

13 Gradient i hesjan syms x y f=sin(x)+cos(y) gradient(f) hessian(f) [cos(x); -sin(y)] [-sin(x), 0; 0, -cos(y)]

14 Całkowanie wyrażeń syms x f=x^2 int(f) int(f,0,1) x^3/3 1/3

15 Całkowanie wyrażeń x^3/3 + x*y^2 x^3/3 + x*y^2 y^2 + 1/3 x^2*y + y^3/3
syms x y f=x^2+y^2 int(f) int(f,x) int(f,x,0,1) int(f,y) int(f,x,y) int(int(f,x),y) x^3/3 + x*y^2 x^3/3 + x*y^2 y^2 + 1/3 x^2*y + y^3/3 (4*y^3)/3 - x*(x^2/3 + y^2) (x*y*(x^2 + y^2))/3

16 piecewise([n = -1, log(x)], [n <> -1, x^(n + 1)/(n + 1)])
Całkowanie wyrażeń syms x f=asin(sin(x)) int(f) int(f,'IgnoreAnalyticConstraints',true) syms x n f=x^n int(f,'IgnoreSpecialCases',true) int(asin(sin(x)), x) x^2/2 piecewise([n = -1, log(x)], [n <> -1, x^(n + 1)/(n + 1)]) x^(n + 1)/(n + 1)

17 Obliczanie granic syms n limit((1+1/n)^n,Inf) syms x limit(x/abs(x),0) limit(x/abs(x),x,0,'left') limit(x/abs(x),x,0,'right') exp(1) NaN -1 1

18 Obliczenia na macierzach
syms a b c d A=[a,b;c,d] det(A) inv(A) eig(A) a*d - b*c [d/(a*d - b*c), -b/(a*d - b*c); -c/(a*d - b*c), a/(a*d - b*c)] [a/2 + d/2 - (a^2 - 2*a*d + d^2 + 4*b*c)^(1/2)/2; a/2 + d/2 + (a^2 - 2*a*d + d^2 + 4*b*c)^(1/2)/2]

19 Rozwiązywanie równań p=[1,0,-1] fs=poly2sym(p) fh=matlabFunction(fs) roots(p) solve(fs) fzero(fh,0.5) fzero(fh,[-1.5,-0.5]) [-1; 1] [1; -1] 1 -1

20 [1; -1] Rozwiązywanie równań [1; -1]
solve('x^2-1') solve('x^2=1') solve('x^2+1') solve('x*(x^2+1)') solve('x*(x^2+1)','Real',true) syms x positive solve(x^2-1) [i; -i] [0; i; -i] 1 1

21 syms x y f=x^2-y^2 solve(f) solve(f,y) solve('a*x^2+b*x+c=0')
Rozwiązywanie równań [y; -y] syms x y f=x^2-y^2 solve(f) solve(f,y) solve('a*x^2+b*x+c=0') [x; -x] [-(b + (b^2 - 4*a*c)^(1/2))/(2*a); -(b - (b^2 - 4*a*c)^(1/2))/(2*a)]

22 Rozwiązywanie równań exp(log(y) + 5)/y exp(5)
syms x y solve(log(x*y)-log(y)-5) solve(log(x*y)-log(y)-5,'IgnoreAnalyticConstraints',true) exp(5)

23 Rozwiązywanie układów równań
syms x y z f1=4*x-z f2=x-y f3=x^2+y^2-z [x,y,z]=solve(f1,f2,f3) [x,y,z]=solve('z=4*x','x=y','z=x^2+y^2') [0; 2] [0; 2] [0; 8]

24 solve i różne wersje Matlaba
Ver 2011b Ver 2017b solve(2*x-5) OK solve('2*x-5') WARNING solve(2*x=5) ERROR solve('2*x=5') solve(2*x==5) solve('2*x==5') Użycie solve bez apostrofu musi być poprzedzone definicją zmiennej symbolicznej x: syms x

25 Rozwiązywanie równań i układów równań różniczkowych
C2/exp(t) + 1 y=dsolve('Dy+y=1') y=dsolve('Dy+y=1','y(0)=2') y=dsolve('D2y-2*Dy+y=1+t','Dy(0)=0','y(0)=0') [y1,y2]=dsolve('Dy1=y1*log(y2)','Dy2=-y2','y1(0)=exp(-2)','y2(0)=exp(2)') y=dsolve('Dy+2*y=0','y(0.5)=1/exp(1)') 1/exp(t) + 1 t - 3*exp(t) + 2*t*exp(t) + 3 1/(exp(2)*exp((t*(t - 4))/2)) exp(2)/exp(t) 1/exp(2*t)

26 dsolve i różne wersje Matlaba
Ver 2011b Ver 2017b dsolve(diff(y)+y-1) [ empty sym ] OK dsolve('Dy+y-1') WARNING dsolve(diff(y)+y=1) ERROR dsolve('Dy+y=1') dsolve(diff(y)+y==1) dsolve('Dy+y==1') Użycie dsolve bez apostrofu musi być poprzedzone definicją (2017b) funkcji symbolicznej y(t): syms y(t) lub (2011b) zmiennej symbolicznej y: syms y

27 Równanie różniczkowe II rzędu z warunkami początkowymi – ver 2017b
syms y(t); Dy=diff(y); dsolve(diff(y,2)-2*diff(y)+y==1+t, Dy(0)==0, y(0)==0)

28 Rysowanie wykresów syms x f=x^2 ezplot(f) figure ezplot(f,[-1,1])

29 Rysowanie wykresów syms x y f=x^2+y^2 ezsurf(f) figure ezcontourf(f)

30 Prezentacja udostępniona na licencji Creative Commons: Uznanie autorstwa, Na tych samych warunkach 3.0. Pewne prawa zastrzeżone na rzecz autorów. Zezwala się na dowolne wykorzystywanie treści pod warunkiem wskazania autorów jako właścicieli praw do prezentacji oraz zachowania niniejszej informacji licencyjnej tak długo, jak tylko na utwory zależne będzie udzielana taka sama licencja. Tekst licencji dostępny jest na stronie:


Pobierz ppt "Obliczenia w Matlabie Obliczenia symboliczne"

Podobne prezentacje


Reklamy Google