Microsoft Word - Cz III MATLAB_PROGRAMOWANIE PRZYKL_PROGRAMOw.pdf

(2199 KB) Pobierz
Programowanie w Matlabie
Materiaÿy Cz. II
Zagadnienia
¦ Obliczenia symboliczne
¦ Instrukcje wejļcia/wyjļcia
¦ Instrukcje sterujģce if
¦ Instrukcje sterujģce switch
¦ Uruchamianie programw z konsoli
¦ Wielokrotne powtarzanie wykonania programu
¦ Wyļwietlanie wynikw- operacje na tekstach
¦ PĨtle. PĨtla for. Instrukcje break i continue
¦ PĨtla while
¦ Obliczenia wektoryzowane
¦ Funkcje. Realizacja iteracyjna i rekurencyjna
¦ Podfunkcje
¦ Metoda âdziel i zwyciĨňaj Ò i jej zastosowanie
¦ Przykÿady programw w Matlabie
1025377014.006.png
Obliczenia symboliczne w Matlabie
Obliczenia symboliczne sĢ czasami wygodnĢ formĢ analizy. Np. w analizie szeregw
przy znajdowaniu sumy n wyrazw szeregu:
Przykþad: ZnaleŅę sumħ wyrazw szeregu: S=1 3 +2 3 + 3 3 +È+n 3
>> syms r n
>> symsum(r^3,1,n)
ans =
1/4*(n+1)^4-1/2*(n+1)^3+1/4*(n+1)^2
Poleceniem factor moŇna uproĻcię wzr a pretty zapisze wzr w innej formie :
>> factor(ans)
ans =
1/4*n^2*(n+1)^2
>> pretty(ans)
2 2
1/4 n (n + 1)
JeĻli zadeklarowaę konkretne n np. 100 to otrzymamy:
>> symsum(r^3,1,100)
ans =
25502500
MoŇna teŇ wyznaczaę sumħ wyrazw ciĢgu przy zaþoŇeniu +/- nieskoıczonoĻci. W
Matlabie symbole nieskoıczonoĻci to +/- inf .
Np. dla szeregu
WartoĻę jego wyrazw w granicy gdy r ã nieskoıczonoĻci obliczy polecenie:
>> symsum(1/(r^2),1,inf)
Wynikiem jest poniŇsza wartoĻę :
ans =
1/6*pi^2
InnĢ operacjĢ moŇe byę rŇniczkowanie symboliczne. MoŇna r rwnieŇ wykonywaę
caþkowanie symboliczne np.:
>> syms x
>> f=x^2 *cos(x)
f =
x^2*cos(x)
>> df=diff(f)
df =
2*x*cos(x)-x^2*sin(x)
PowyŇej funkcja diff(f) oblicza pochodnĢ funkcji f. MajĢc zaleŇnoĻę symbolicznĢ
mozna obliczyc konkretnĢ wartoĻę dla x rzeczywistego np. x=0.5:
>> subs(df,x,0.5)
ans = 0.7577
S
=
+
+
+
+
1025377014.007.png 1025377014.008.png
Matlab Ï skrypt programu
NiŇej przedstawiony skrypt programu Pierwiastki.m okreĻlajĢcego
liczbħ pierwiastkw rwnania kwadratowego dla zadanych wartoĻci
a, b, c np. :
a=-2; b=4; c=3 - sĢ 2 pierwiastki
a=0; b=4; c=2- jest rwnanie liniowe
a=-1; b=2; c=-2- delta ujemna - brak pierwiastkw rzeczywistych
a=2; b=4; c=2- sĢ 2 pierwiastki identyczne (jeden podwjny).
Aby uruchomię program zapisany w pliku, o nazwie : Pierwiastki.m
wpisujemy w oknie konsoli po znaku zachħty >> nazwħ Pierwiastki
i naciskamy Enter.
PoniŇej na rys. 1 przedstawiono:
Û Skrypt programu Pierwiastki.m
Û wprowadzane przez operatora w oknie konsoli:
o polecenia (tu: >> Pierwiastki +enter),
o sposb wprowadzania dane wejĻciowych a,b,c
Û wyĻwietlane wyniki obliczeı (tu w formie komunikatu);
Rys. 1. Okno edytora z tekstem programu oraz konsoli z poleceniami
uruchomienia programu, wprowadzenia wartoĻci a, b i c oraz wynikami
obliczeı w postaci komunikatu o liczbie pierwiastkw.
>> Pierwiastki
Podaj a: -2
Podaj b: 4
Podaj c: 3
SĢ 2 pierwiastki
>> Pierwiastki
Podaj a: 0
Podaj b: 4
Podaj c: 2
To nie jest rwnanie kwadratowe
>> Pierwiastki
Podaj a: 2
Podaj b: 4
Podaj c: 2
Jest jeden pierwiastek
>> Pierwiastki
Podaj a: -1
Podaj b: 2
Podaj c: -2
Brak pierwiastkw rzeczywistych
>>
Uwaga:
Zwrę uwagħ, Ňe na poczĢtku skryptu nie uŇyto np. instrukcji clc, gdyŇ jej
uŇycie nie pozwoliþoby na uzyskanie w oknie konsoli (Command Window)
wynikw w powyŇszej formie.
1025377014.009.png 1025377014.001.png
Matlab- programowanie, przykÿady uňycia instrukcji we/wy
W poniňszym materiale sģ przedstawione przykÿady prostych programw
w Matlabie. Do niektrych z nich doÿģczono przykÿadowe dane wejļciowe
wprowadzane przez uňytkownika za pomocģ klawiatury i okna Command Window.
Przedstawiono teň przykÿady wynikw obliczeIJ wyļwietlanych w tym oknie.
Poniňej przedstawiono przykÿadowy skrypt (program) w Matlabie.
Program oblicza i wyļwietla wartoļĚ funkcji f(x)=a*x 2 +bx +c dla zadanej wartoļci
x. Oczywiļcie niezbĨdnym jest teň znajomoļĚ wspÿczynnikw a,b,c ktre sģ
parametrami.
Po wykonaniu tej instrukcji tu
naleňy wpisaĚ wektor zÿoňony z 3
liczb reprezentujģcych [a, b, c ]
np. jak niňej:
Podaj x= [1, 2, 3]
Rys. 1. Skrypt programu w oknie edytora
Aby uruchomiĚ ten skrypt naleňy w oknie Command wpisaĚ polecenie zawierajģce
nazwĨ skryptu i nacisnģĚ enter:
<< Oblicz_fun_kwad
Moňna teň:
¦ wybraĚ z menu opcjĨ Debug
¦ w ramach wybranej opcji wybraĚ Run
1025377014.002.png
Efekty przykÿadowego wykonania, jeļli podamy wektor 3 liczb ktre sģ
wspÿczynnikami a,b,c rwnania i punkt x (pojedynczģ liczbĨ), przedstawia
poniňsza tabela:
Obliczanie wartoļci funkcji kwadratowej
a*x^2 + b*x + c
Podaj w nawiasie wektor wspÿcz. : [a,b,c] = [1, 2, 3]
Podaj x=2.57
-----Wyļwietlanie wynikw instrukcjģ: disp-----------
Dla x=
2.5700
WartoļĚ f(x)=
14.7449
-----Wyļwietlanie wynikw instrukcjģ: sprintf------------
WartoļĚ f( 2.570 ) = 14.744900
>>
W poniňszej tabeli pokazano efekt wykonania skryptu jeļli jako wartoļĚ x
zostanie podany wektor zawierajģcy 3 liczby.
Obliczanie wartoļci funkcji kwadratowej
a*x^2 + b*x + c
Podaj w nawiasie wektor wspÿcz. : [a,b,c] = [1, 2.3 3]
Podaj x=[1.78 2.34, 3.12 ]
-----Wyļwietlanie wynikw instrukcjģ: disp-----------
Dla x=
1.7800 2.3400 3.1200
WartoļĚ f(x)=
10.2624 13.8576 19.9104
x- to wektor!- Nie moňna wyļwietliĚ wynikw jednģ instr.
sprintf
>>
Skrypty w Matlabie powinny byĚ pisane z przestrzeganiem zasad:
1. Na poczģtku umieszczamy komentarz opisujģcy :
a. przeznaczenie programu np.,
b. dane wejļciowe,
c. dane wyjļciowe (wyniki obliczeIJ).
2. NastĨpnie stosownie do potrzeb uňywamy poleceIJ przygotowujģcych
ļrodowisko Matlaba do pracy np.:
clc clear all close all format compact itp
1025377014.003.png 1025377014.004.png 1025377014.005.png
Zgłoś jeśli naruszono regulamin