Matlab - przykłady obliczeń.pdf

(212 KB) Pobierz
68237230 UNPDF
Adam Szustalewicz
Modelowanie zjawisk przyrodniczych 2001/2002 w.2, 27.02.2002
Wyk“ad 2. Interakcyjne –rodowisko do prowadzenia oblicze«
MATLAB
1. Literatura, internet:
1. P. Drozdowski, Wprowadzenie do MATLAB-a, (skrypt) Politechnika Krakowska, Krak ó w, 1995
(jest w bibliotece instytutu),
2. Brz ó zka, Dorobczy«ski, Programowanie w MATLAB, NIKOM, Warszawa 1998,
3. B. Mrozek, Z. Mrozek, Matlab 5.x ... poradnik u»ytkownika, PLJ, Warszawa 1998,
4. materia“y internetowe zwi¡zane z MATLABem:
(a) http://www.mathworks.co.uk/access/helpdesk/help/techdoc/
demo_example.shtml#development_environment
(b) http://www.indiana.edu/ statmath/math/matlab/gettingstarted/
(c) http://bass.gmu.edu/matlab/
(d) http://www.mathworks.co.uk/support/
(e) http://www.mathworks.com/company/digest/index.shtml
(f) http://www.mathworks.com/matlabcentral/ leexchange/index.jsp
(g) ftp://ftp.mathworks.com/pub/books/
5. wesole:
(a) http://www.tcs.uni.wroc.pl/eciepecie/etapy.html
(b) http://rutcor.rutgers.edu/ bisrael/
2. Dwa przyk“ady oblicze« w MATLABie
%echo off;
% test linequ
clc; format long e; clear
echo on;
%
test linequ
% This program solves linear systems Ax = B.
% Remark. linequ.m is used.
% Solve the system Ax = B where:
A = [1 5 4 -3;
4 8 4 0;
1 3 0 -2;
1 4 7 2];
A
b = [-4; 8; -4; 10]
pause % dane
x = linequ(A,b);
disp(x);
res = b - A*x; disp(res);
pause % rozwiazanie i residuum
x = inv(A)*b
res = b - A*x
pause % odwracanie macierzy: inv
x = A\b;
disp(x’);
1
Adam Szustalewicz
Modelowanie zjawisk przyrodniczych 2001/2002 w.2, 27.02.2002
res = b - A*x; disp(res’);
pause % "lewe dzielenie": A\b
fprintf(’\n\n przyklad nastepny z macierza Hilberta:’)
pause
n=8;
A = hilb(n)
%disp(A);
pause % A
x=ones(n,1)
%disp(x);
pause % x
b = A*x
pause % b = prawa strona
x = linequ(A,b)
res = b - A*x
pause % linequ
x = inv(A)*b
res = b - A*x
pause % odwracanie macierzy: inv
x = A\b
res = b - A*x
pause % "lewe dzielenie": A\b
================= 2 =========================
clear, clc, echo off
I=1000;
disp(’ for i=1:I x=x+1.0/(i*i); ’);
x=0.0;
for i=1:I
r=1.0/(i);
x=x+r;
end
fprintf(’ x = %f\n’,x);
fprintf(’ x = %20.12e\n’,x);
disp(’ for i=I:-1:1 y=y+1.0/(i*i); ’);
y=0.0;
for i=I:-1:1
r=1.0/(i);
y=y+r;
end
fprintf(’ y = %f\n’,y);
fprintf(’ y = %20.12e\n’,y);
disp(’ roznica:’);
fprintf(’ x-y = %20.12e\n’,x-y);
if 1
disp(’ eps maszynowe:’);
e=1.0;
x=1.0; r=x+e; j=0;
while r~=x
e=e/2.0;
r=x+e;
j=j+1;
2
Adam Szustalewicz
Modelowanie zjawisk przyrodniczych 2001/2002 w.2, 27.02.2002
end
e=e+e;
j=j-1;
fprintf(’ xmin = %20.12e j = %i\n’,e,j);
end % if 1
3. Rzeczy wa»ne w Matlabie
1. Nazwy zmiennych
Nazwa zmiennej w Matlabie sk“ada siƒ z liter lub cyfr lub znaku podkre–lenia i musi rozpoczyna¢ siƒ od
litery.
2. Instrukcja podstawienia nie zako«czona –rednikiem powoduje wydrukowanie warto–ci podstawianej.
3. Stosowanie ma“ych lub du»ych liter w nazwach.
Litery du»e i ma“e s¡ przez Matlab rozr ó »niane. Mo»emy wy“¡czy¢ rozr ó »nianie du»ych i ma“ych liter.
Polecenia: ???
(a) casesen o wy“¡cza rozr ó »nianie du»ych i ma“ych liter.
(b) casesen on w“¡cza rozr ó »nianie du»ych i ma“ych liter.
4. Pierwsze«stwo operator ó w arytmetycznych
(1) podnoszenie do potƒgi (, .),
(2) mno»enia, dzielenia (* , .*, / ,./ , n ,. n ),
(3) dodawanie, odejmowanie (+, ¡ ).
Nawiasy okr¡g“e pozwalaj¡ na ustalenie wybranej kolejno–ci dzia“a«, a argumenty musz¡ pasowa¢ do
operatora dzia“ania.
5. Instrukcje warunkowe if
(1) if < warunek > , < instr1 > ; < instr2 > ; .. . < instr n> ; end
(zamiast –rednik ó w mog¡ by¢ przecinki.)
(2) if < warunek >
< instrukcjeA >
else
< instrukcjeB >
end
(3) if < warunek1 >
< instrukcjeA >
elseif < warunek2 >
< instrukcjeB >
elseif < warunek3 >
< instrukcjeC >
.. .
else
< instrukcjeE >
end
6. < warunki > , wyra»enia logiczne
W miejscu < warunku > mo»e by¢
(1) wyra»enie arytmetyczne: warto–ci¡ warunku jest prawda dla r ó »nej od zera warto–ci wyra»enia
arytmetycznego i fa“sz w wypadku zera,
(2) wyra»enie logiczne zbudowane za pomoc¡ operator ó w logicznych, podanych w kolejno–ci pierwsze«-
stwa:
relacje: < , < =,==,=, > , > =,
negacja: ,
koniunkcja:&,
alternatywa: j .
3
Adam Szustalewicz
Modelowanie zjawisk przyrodniczych 2001/2002 w.2, 27.02.2002
Przyk“ad z r ó wnania kwadratowego:
if b2-4*a*c==0&a=0, x=-b/(2*a), end
Wida¢, »e warto u»ywa¢ nawias ó w i rozstrzeli¢ tekst w kilku wierszach.
4. Zadania
1. Uruchomi¢ MATLABa. Wyda¢ komendƒ demo i obejrze¢ mo»liwo–ci programu. Wyda¢ komendƒ peaks
gra ka tr ó jwymiarowa.
2. Zapozna¢ siƒ z komendami help, clc, who, whos, clear, echo, diary, delete.
3. Wyznaczy¢ warto–ci wyra»e« bez u»ycia Matlaba:
(a) 2 3 2
(b) -4 2
(c) dla a = [2 -1 5 0]; r = 0.9; b = [3 2 -1 4]; policzy¢
i. a * (1 + r) 10
ii. a .* (1 + r) 10
iii. a(1 + r) 10
iv. c = b + a - 3
v. c = 2 * a + a . b
vi. c = b ./ a
vii. c = b . n a
viii. c = a . b
ix. c = (2) . b + a
x. c = 2*b/3.0.*a
xi. c = b*2.*a
(d) Fraktal. Opracowa¢ procedurƒ znajduj¡c¡ pierwiastki r ó wnania
z 4 =1
w zbiorze liczb zespolonych, metod¡ Newtona. Wyprowadzi¢ odpowiednie wzory. Wybieraj¡c teraz
prostok¡t na p“aszczy»nie zespolonej mo»emy uruchamia¢ metodƒ Newtona przyjmuj¡c jako punkty
startowe punkty p“aszczyzny odpowiadaj¡ce kolejnym pikslom ekranu, znajduj¡cym sie w wybranym
prostok¡cie. Teraz, po przydzieleniu poszczeg ó lnym pierwiastkom r ó »nych kolor ó w, nale»y startowe
piksle za–wieca¢ w kolorze otrzymanego rozwi¡zania. Pi¡ty kolor oznacza¢ bƒdzie brak rozwi¡zania.
*
*
*
4
Zgłoś jeśli naruszono regulamin