Materiały pomocnicze 8 - Wydział Elektrotechniki i Automatyki

Transkrypt

Materiały pomocnicze 8 - Wydział Elektrotechniki i Automatyki
Politechnika Gdańska
Wydział Elektrotechniki i Automatyki
Katedra Inżynierii Systemów Sterowania
Teoria sterowania
Obliczenia symboliczne w środowisku MATLAB
Materiały pomocnicze do ćwiczeń laboratoryjnych 1 – Część 8
Opracowanie:
Michał Grochowski, dr inż.
Robert Piotrowski, dr inż.
Tomasz Karol Nowak, mgr inż.
Gdańsk
1
1. Czym jest Symbolic MATLAB Toolbox?
Symbolic MATLAB Toolbox jest jednym z przyborników do wykorzystania w środowisku
MATLAB, który zapewnia narzędzia do rozwiązywania symbolicznych wyrażeń
matematycznych i dokonywania arytmetyki zmiennopozycyjnej. Zawiera on setki funkcji
symbolicznych, które można wykorzystać do wielu typów obliczeń, łącznie
z przetwarzaniem i rozwiązywaniem równań.
2. Definiowanie zmiennej i stałej symbolicznej
W celu zdefiniowania zmiennej x można napisać:
syms x
Jeśli chcemy zdefiniować większą liczbę zmiennych, należy je wpisać oddzielając
spacjami, tzn.:
syms x y z
Do zdefiniowania stałej należy posłużyć się wyrażeniem:
a = sym('4')
Stała a przyjmie wówczas wartość równą 4.
3. Wartości liczbowe w wyrażeniach symbolicznych
Wynik liczbowy zapisany w postaci symbolicznej może zostać obliczony dzięki
poleceniu subs(). Przykładowo:
syms a b
y = a+b;
a = 1;
b = 2;
w = subs(y)
Otrzyma się wówczas wynik 3 w zmiennej w.
4. Rozwiązywanie układów równań liniowych
W celu rozwiązania układu równań należy – po zadeklarowaniu zmiennej symbolicznej użyć funcji solve(), jak na poniższym przykładzie:
syms x y
S = solve('x + y = 5', '2*x – y = 0')
Spowoduje to rozwiązanie układu równań:
x+ y= 5
2x – y= 0
2
5. Rozwiązywanie układów równań różniczkowych
Ażeby rozwiązać układ równań różniczkowych należy wpisać:
y = dsolve('Dx = x + 2*y', 'Dy = y', 'x(0) = 0', 'y(0) =
1')
Spowoduje to rozwiązanie układu równań:
dx
= x+ 2y
dt
dy
=y
dt
Z warunkami początkowymi:
x (0)= 0
y (0)= 1
6. Znajdowanie miejsc zerowych
Można znaleźć miejsce zerowe podanej funkcji, wpisując np.:
syms x
S = solve('2*x^2 + 5*x – 7 = 0')
Spowoduje to rozwiąznanie funkcji kwadratowej danej funkcją:
2x2+ 5x – 7= 0
7. Zmiana postaci wyrażenia symbolicznego
Do zmiany postaci wyrażenia symboliczego można stosować funkcję simplify(), która
spowoduje uproszczenie wyniku. Przykładowo:
syms x
f = x^2 – 1;
g = x – 1;
simplify(f/g)
Jak da się zauważyć, zadeklarowaliśmy tu dwie funkcje – f i g. Wpisanie powyższych
wyrażeń spowoduje wyświetlenie wyniku:
x-1
nie zaś
(x^2 – 1)/(x – 1)
które miałoby miejsce przy:
3
syms x
f = x^2 – 1;
g = x – 1;
f/g
Do grupowania zmiennych potrzebna jest funkcja collect(). Przykładowo:
syms x
f = x + 1;
g = x + 3;
collect(f*g)
wyświetli:
x^2 + 4*x + 3
zamiast
(x+3)(x-1)
w przypadku napisania:
syms x
f = x + 1;
g = x + 3;
f*g
8. Różniczkowanie i całkowanie symboliczne
Do różniczkowania symbolicznego służy funkcja diff(). W celu zróżniczkowania funkcji
po zmiennej x:
y= x 2+ 3x – 1
należy wpisać:
syms x
y = x^2 + 3*x – 1;
diff(y, x)
Jeśli zaś chcemy obliczyć całkę nieoznaczoną po zmiennej x powyższej funkcji, należy
posłużyć się funkcją int() jak poniżej:
syms x
y = x^2 + 3*x – 1;
int(y, x)
W celu obliczenia całki oznaczonej od 0 do 5 należy wpisać:
syms x
4
y = x^2 + 3*x – 1;
int(y, 0, 5)
9. Wyświetlanie funkcji
Wyświetlanie funkcji następuje po użyciu polecenia ezplot(), jak w poniższym
przykładzie:
syms x
f = x^3 * cos(x) – log(x+1);
ezplot(f)
Spowoduje to wyświetlenie funkcji:
f (x)= x 3 cos( x) – log(x+ 1)
9. Obliczenie sumy szeregu
Symbolic MATLAB Toolbox umożliwia wiele funkcji. Jedną z nich jest obliczenie sumy
podanego szeregu. Służy do tego funkcja symsum(). Jeśli chcemy obliczyć sumę
szeregu po k od 1 do 10, tzn:
10
∑k
i= 1
należy wpisać:
syms k
symsum(k, 1, 10)
10.
Obliczenie granicy
W celu obliczenia granicy należy skorzystać z polecenia limit(). Przykładowo:
syms x
limit(tan(x), x, 0, 'left')
limit(tan(x), x, 0, 'right')
limit(tan(x), x, inf)
limit(tan(x), x, -inf)
%
%
%
%
%
%
%
%
%
obliczenie
dążącym do
obliczenie
dążącym do
strony
obliczenie
dążącym do
obliczenie
dążącym do
granicy przy x
0 z lewej strony
granicy przy x
0 z prawej
granicy przy x
nieskończoności
granicy przy x
-nieskończoności
Bibliografia
Brian Hahn, Daniel T. Valentine, Essential MATLAB for engineers and scientists, Third
edition, 2007, ISBN 13: 9-78-0-75-068417-0,
5
Steven T. Karris, Signals and systems with MATLAB applications, Second Edition,
ISBN 0-9709511-8-3,
6

Podobne dokumenty