MOiPP Matlab Przykłady metod obliczeniowych Obliczenia symboliczne

Slides:



Advertisements
Podobne prezentacje
Funkcje matematyczne Microsoft Office 2003 Exel.
Advertisements

OBLICZENIA NUMERYCZNE
Opracowała: Iwona Bieniek
Modelowanie i symulacja
Metody badania stabilności Lapunowa
Język C/C++ Funkcje.
Równanie różniczkowe zupełne i równania do niego sprowadzalne
Dany jest układ różniczkowych
Język ANSI C Funkcje Wykład: Programowanie komputerów
Metoda węzłowa w SPICE.
Modelowanie i symulacja
ZŁOŻONOŚĆ OBLICZENIOWA
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 8: Wykorzystanie procedur i funkcji © Jan Kaczmarek.
Metody numeryczne © Jacek Śmietański, Kraków 2005.
Tablice Informatyka Cele lekcji: Wiadomości: Uczeń potrafi:
Systemy dynamiczneOdpowiedzi systemów – modele różniczkowe i różnicowe Kazimierz Duzinkiewicz, dr hab. inż.Katedra Inżynierii Systemów Sterowania 1 Systemy.
Analiza matematyczna - Funkcje jednej zmiennej wykład II
6. Pochodne cząstkowe funkcji n zmiennych
Równania i Nierówności czyli:
Metody matematyczne w Inżynierii Chemicznej
ETO w Inżynierii Chemicznej
Grupa 1 Sposoby rozwiązywania układów równań stopnia I z dwiema i z trzema niewiadomymi. Wykresy funkcji w szkole ponadgimnazjalnej.
Matematyka.
Podstawy programowania
obliczeNIA symbolicznE w MATLAB’ie
Informatyka I Wykład 5 OPERATORY Priorytety i kolejność obliczeń
Informatyka i programowanie
Dane do obliczeń.
Granica funkcji.
Metody matematyczne w inżynierii chemicznej
Podstawy analizy matematycznej III
ETO w Inżynierii Chemicznej
Metody Lapunowa badania stabilności
ETO w Inżynierii Chemicznej MathCAD wykład 4.. Analiza danych Aproksymacja danych.
Podstawy analizy matematycznej II
AUTOMATYKA i ROBOTYKA (wykład 5)
MECHANIKA 2 Wykład Nr 11 Praca, moc, energia.
przygotował: mgr inż. Bartłomiej Krawczyk
Andrzej Repak Nr albumu
EXCEL Wykład 4.
Wprowadzenie do ODEs w MATLAB-ie
MOiPP Matlab Sortowanie Obliczenia symboliczne - Symbolic ToolBox
MOiPP Wykład 3 Matlab Przykłady prostych metod obliczeniowych.
Rachunek różniczkowy funkcji jednej i wielu zmiennych
MOiPP Wykład 7 Matlab cd..
Informatyka 2 MPDI Wykład 9 Delphi tablice, rekordy.
MOiPP Matlab Aproksymacja Interpolacja Inne metody obliczeniowe
MOiPP Wykład 5 Matlab Przykłady praktyczne Równania różniczkowe.
Metody matematyczne w Inżynierii Chemicznej
Obliczenia symboliczne
PWSW Mechatronika Wykład 7 Matlab cd.
EXCEL Wstęp do lab. 4. Szukaj wyniku Prosta procedura iteracyjnego znajdowania niewiadomej spełniającej warunek będący jej funkcją Metoda: –Wstążka Dane:
Tematyka zajęć LITERATURA
Metody matematyczne w inżynierii chemicznej
Prezentacja dla klasy II gimnazjum
GRANICE FUNKCJI I CIĄGŁOŚĆ
Informatyka PWSW Wykład 6.
Wykład 6 Dr Aneta Polewko-Klim
SciLab.
Informatyka Transport Matlab c.d. Macierze cd. Wykresy graficzne
Wykład 1 Informatyka II MPZI2 sem.letni. Tablice Tablice deklarujemy array [ lista typów indeksów ] of typ bazowy (składowych) np. var t1,t2:array [1..5,
Matematyka I. Definicja funkcji jednej zmiennej Niech X i Y oznaczają dowolne niepuste zbiory. Jeżeli każdemu elementowi x ze zbioru X przyporządkowujemy.
© Prof. Antoni Kozioł, Wydział Chemiczny Politechniki Wrocławskiej MATEMATYCZNE MODELOWANIE PROCESÓW BIOTECHNOLOGICZNYCH Temat – 5 Modelowanie różniczkowe.
Wykład 2 MATLAB cd INFORMATYKA 2 MPZI2 sem.4. 2x + 3y – 4z = 5 x + y – z = 3,5 –2,5y – z = 2 Rozwiązanie w Matlabie (m-plik): A = [ ; ; 0.
Metody matematyczne w Inżynierii Chemicznej
Analiza numeryczna i symulacja systemów
ETO w Inżynierii Chemicznej
Haskell Składnia funkcji.
Obliczenia w Matlabie Obliczenia symboliczne
Zapis prezentacji:

MOiPP Matlab Przykłady metod obliczeniowych Obliczenia symboliczne Wykład 4 Matlab Przykłady metod obliczeniowych Obliczenia symboliczne

Sortowanie bąbelkowe Sortowanie bąbelkowe skrócone Porównywanie kolejnych par elementów sąsiadujących i zamiana miejscami w przypadku niewłaściwej kolejności 1 2 3 4 ..... N N-1 porównań Wykonujemy N przebiegów Sortowanie bąbelkowe skrócone Przebiegów wykonujemy N-1 W każdym kolejnym przebiegu liczba analizowanych par jest zmniejszana o 1, a

1 PRZEBIEG 96 12 22 76 64 23 74 11 2 PRZEBIEG 12 22 76 64 23 74 11 96

M-plik - sortowanie "bąbelkowe" clc clear N=5; G=rand(1,N) %stadardowa funkcja sortująca G1=sort(G) %sortowanie bąbelkowe for k=1:N-1 for m=1:N-k if G(m)>G(m+1) pom=G(m); G(m)=G(m+1); G(m+1)=pom; end disp(G) %pokazuje kolejne wypływające "bąbelki" %ostatecznie po posortowaniu disp(G) zamiana miejscami gdy elementy w niewłaściwej kolejności

Obliczenia symboliczne w Matlabie Niezbędny jest tu dodatkowy (komercyjny) tzw. toolbox o nazwie Symbolic Tool

syms zmienna1 zmienna2 itd Obliczenia symboliczne wymagają zadeklarowania zmiennych symbolicznych – abstrakcyjnych zmiennych, które nie posiadają wartości liczbowej Służy do tego polecenie syms: syms zmienna1 zmienna2 itd

Przykład: Symboliczne rozwiązywanie równań – funkcja solve() syms x a f=a - x^2; z =solve (f, x) z = a^(1/2) -a^(1/2)

Symboliczne operacje macierzowe syms a b c d e f g h A=[a b; c d] B=[e f ; g h] il_m=A*B il_e=A.*B A = [ a, b] [ c, d] B = [ e, f] [ g, h] il_m = [ a*e+b*g, a*f+b*h] [ c*e+d*g, c*f+d*h] il_e = [ a*e, b*f] [ c*g, d*h] iloczyn macierzowy Cauchy'ego iloczyn elementowy Hadamarda (po współrzędnych) ilustracja iloczynów macierzy kwadratowych

Wstawienie danych do wyrażeń symbolicznych - funkcja subs( ) Przykład: syms a b c x % definicja 4 zmiennych symbolicznych y = solve(a*x^2+b*x+c) % rozwiązanie równania względem x a=3; b=4; c=1; % Przypisanie wartości liczbowych a b c w = subs(y) % Obliczenie wartości liczbowej dla y Rezultat: y = -1/2*(b-(b^2-4*a*c)^(1/2))/a -1/2*(b+(b^2-4*a*c)^(1/2))/a w = -0.3333 -1.0000

limit (F,[zmienna],[b]) Obliczenia granic ciągów i funkcji - funkcja limit( ) Do obliczania granic na podstawie wyrażenia symbolicznego służy funkcja limit. Jej składnia może być następująca: limit (F,[zmienna],[b]) wyznaczenie granicy dla wyrażenia symbolicznego F, względem wskazanej zmiennej, granica dla zmiennejb,

Uwagi: zmienna jest opcjonalna, jeśli wyrażenie zawiera jedną zmienną. b opcjonalne, jego pominięcie oznacza granicę dla zmienna0. wyznaczenie granicy lewostronnej dla wyrażenia symbolicznego F, w punkcie b, limit(F, zmienna, b, 'left') wyznaczenie granicy prawostronnej dla wyrażenia symbolicznego F, w punkcie b. limit(F, zmienna, b, 'right')

Przykład Obliczenie granicy ciągu: syms n w= limit((1-3*n)/(1+n), inf) Rezultat: w = -3 Uwaga: inf jest symbolem ∞ (nieskończoność)

Przykład syms x a=limit(tan(x),x, pi/2,'left') Obliczenie granicy lewo i prawostronnej funkcji tg(x) w punkcie pi/2 syms x a=limit(tan(x),x, pi/2,'left') b=limit(tan(x),x, pi/2,'right') a= Inf b= -Inf

diff (F,[zmienna],[N]) Obliczanie pochodnych funkcji - funkcja diff( ) Argumentami funkcji są: funkcja, względem której pochodna będzie liczona, zmienna, względem której pochodna jest liczona (opcjonalnie) rząd pochodnej (opcjonalnie) diff (F,[zmienna],[N])

syms x a=diff(x^2) Przykład: Obliczenie pochodnej funkcji f(x)=x2 a = Rezultat a = 2*x

Przykład: Obliczenie pochodnej funkcji f(x, y, z) według każdej zmiennej (pochodne cząstkowe):

f=(x*y*z)^x+(1/(x*y))^2 diff(f) diff(f,x) diff(f,y) diff(f,z) syms x y z f=(x*y*z)^x+(1/(x*y))^2 diff(f) diff(f,x) diff(f,y) diff(f,z) ans = (x*y*z)^x*(log(x*y*z)+1)-2/x^3/y^2 (x*y*z)^x*x/y-2/x^2/y^3 (x*y*z)^x*x/z

syms x diff(f,x,2) Przykład: Obliczenie pochodnej funkcji f (x, y, z ) syms x diff(f,x,2) ans = (x*y*z)^x*(log(x*y*z)+1)^2+(x*y*z)^x/x+6/x^4/y^2

int(F,[zmienna], [a , b]) Całkowanie funkcji - funkcja int( ) Jej argumentem jest funkcja symboliczna opcjonalnie także zmienna całkowania oraz granice całkowania (dla całek oznaczonych). int(F,[zmienna], [a , b]) Uwaga: domyślnie zmienną symboliczną jest x

Przykład: Obliczenie całki nieoznaczonej funkcji f(a,b)=a+b syms a x int(a+x) int(a+x, a) %Sprawdzenie diff(f) ans = a*x+1/2*x^2 1/2*a^2+a*x a+x Rezultat:

Obliczenie całki oznaczonej: syms x int(x^2,1,3) ans = 26/3 Obliczenie całki oznaczonej funkcji sin x w przedziale (0, π) int(sin(x),0,pi) ans = 2

Rozwiązywanie równań różniczkowych funkcja dsolve() . Funkcja oblicza symbolicznie rozwiązania równań różniczkowych zwyczajnych. Równania są określane przez symboliczne wyrażenia zawierające literę D do oznaczenia stopnia. Symbole D2, D3... DN, odnoszą się do drugiej, trzeciej,..., n-tej pochodnej. D2y jest zatem odpowiednikiem symbolicznym Zmienna niezależna domyślna t.

Nazwy zmiennych symbolicznych nie powinny zatem zawierać D Nazwy zmiennych symbolicznych nie powinny zatem zawierać D. Zmienną niezależną można zmienić i podać jako ostatni argument. Warunki początkowe mogą być określone przez dodatkowe równania. Jeśli nie określono warunków początkowych, rozwiązania zawierają stałe całkowania: C1, C2, itp. Rozwiązanie dsolve jest podobne do solve. Oznacza to, że można wywołać dsolve z liczbą zmiennych wyjściowych równą liczbie zmiennych zależnych od lub umieścić w strukturze, której pola zawierają rozwiązania równań różniczkowych.

Przykład dsolve('Dy=1+y^2') dsolve('Dy=1+y^2','x') dsolve('Dx = -a*x') Rozwiązać równanie: dsolve('Dy=1+y^2') zmienna t domyślna ans = tan(t+C1) dsolve('Dy=1+y^2','x') zmienna x ustalona ans = tan(x+C1) dsolve('Dx = -a*x') ans = C1*exp(-a*t)

Po wstawieniu warunków początkowych: y = dsolve('Dy=1+y^2','y(0)=1') y = tan(t+1/4*pi) Uwaga: y jest w obszarze roboczym MATLAB, ale t nie jest, a zatem polecenie diff(y,t) zwraca błąd. Aby umieścić t w obszarze roboczym należy: syms t pochodna=diff(y,t) pochodna= 1+tan(t+1/4*pi)^2

x = dsolve('(Dx)^2+x^2=1','x(0)=0') Przykład 2 Równania nieliniowe mogą mieć wiele rozwiązań, nawet wtedy, gdy podane są warunki początkowe: x = dsolve('(Dx)^2+x^2=1','x(0)=0') x = [ sin(t)] [ -sin(t)]

Równanie różniczkowe drugiego stopnia z dwoma warunkami początkowymi: Przykład 3 Równanie różniczkowe drugiego stopnia z dwoma warunkami początkowymi: y = dsolve('D2y=cos(2*x)-y','y(0)=1','Dy(0)=0', 'x') simplify(y) %uproszczenie y = 4/3*cos(x)-1/3*cos(2*x) ans = 4/3*cos(x)-2/3*cos(x)^2+1/3

u = dsolve('D3u=u','u(0)=1','Du(0)=-1','D2u(0) = pi','x') Przykład 4 warunki początkowe u = dsolve('D3u=u','u(0)=1','Du(0)=-1','D2u(0) = pi','x') D3u reprezentuje d3u/dx3 D2u(0) odpowiada u"(0) u = 1/3*pi*exp(x)-1/3*(pi+1)*3^(1/2)*exp(-1/2*x)*sin(1/2*3^(1/2)*x)+ (1-1/3*pi)*exp(-1/2*x)*cos(1/2*3^(1/2)*x)

Układ równań różniczkowych Funkcja dsolve rozwiązuje także układ równań różniczkowych zwyczajnych kilku zmiennych, z warunkami początkowymi lub bez

Przykład f = S.f g = S.g Dwa równania liniowe, pierwszego rzędu: S = dsolve('Df = 3*f+4*g', 'Dg = -4*f+3*g') S = f: [1x1 sym] g: [1x1 sym] Rozwiązania obliczane są zwracane w strukturze S. Można określić wartości f i g, wpisując: f = S.f g = S.g f = exp(3*t)*(C1*sin(4*t)+C2*cos(4*t)) g = exp(3*t)*(C1*cos(4*t)-C2*sin(4*t))

Jeśli chcemy uzyskać f i g bezpośrednio, oraz uwzględnić także warunki początkowe, wpisujemy: [f,g] = dsolve('Df=3*f+4*g, Dg =-4*f+3*g', 'f(0) = 0, g(0) = 1') f = exp(3*t)*sin(4*t) g = exp(3*t)*cos(4*t)

Jeszcze jeden przykład składni w Symbolic Math Toolbox. y = dsolve('Dy+4*y = exp(-t)', 'y(0) =1') spr=diff(y,t)+4*y %sprawdzenie rozwiązania spr = simplify(spr) t=0 %sprawdzenie warunku początkowego wp=subs(y) y = (1/3*exp(3*t)+2/3)*exp(-4*t) spr = exp(-4*t)*exp(3*t) exp(-t) t = wp = 1