004.pdf

(358 KB) Pobierz
Instytut Sterowania i Systemów Informatycznych, Politechnika Zielonogórska
Tryb interpretera
2 * 3
 
 
 
 
 
 
ans =
6
2 * 3;
pi
ans =
3.1416
sin(pi / 2)
1
[1 4; 6 8]
1
6
6: 2: 20
6
8
10
12
14
16
18
20
4
8
ans =
ans =
ans =
Wprowadzenie do Matlaba, folia 1
Instytut Sterowania i Systemów Informatycznych, Politechnika Zielonogórska
b
 
 
 
 
 
? Undefined function or variable ’b’
A = [1 4; 6 8]
A =
1
6
A - 1
4
8
ans =
0
5
A * A
3
7
ans =
25
54
sin(A)
36
88
ans =
0.8415
-0.2794
-0.7568
0.9894
Wprowadzenie do Matlaba, folia 2
Instytut Sterowania i Systemów Informatycznych, Politechnika Zielonogórska
Programowanie
Zadanie 1.
Napisa´ funkcj˛ znajdujaca
c
e
˛ ˛
pierwiastek równania liniowego.
function x = rown1(a, b)
if a == 0
if b ~= 0
x = [];
else
x = NaN;
end;
else
x = -b / a;
end;
Uwaga:
T˛ funkcj˛ zapisuje si˛ w pliku rown1.m !
e
e
e
Efekt działania:
rown1(1, 2)
ans =
-2
 
Wprowadzenie do Matlaba, folia 3
Instytut Sterowania i Systemów Informatycznych, Politechnika Zielonogórska
Zadanie 2.
Napisa´ funkcj˛ rozwiazujaca
c
e
˛ ˛ ˛
równania liniowe i kwadratowe.
function x = rown21(a, b, c)
if nargin == 2
x = rown1(a, b);
elseif a == 0
x = rown1(b, c);
else
delta = b * b - 4 * a * c;
if delta >= 0
if b > 0
x = (-b-sqrt(delta))/(2*a);
else
x = (-b+sqrt(delta))/(2*a);
end;
if x == 0
x = [x 0];
else
x = [x (c/a)/x];
end;
end;
end;
Wprowadzenie do Matlaba, folia 4
Instytut Sterowania i Systemów Informatycznych, Politechnika Zielonogórska
Wskazana jest równie˙ diagnostyka błedów:
z
if nargin < 2
error(’Za malo parametrow’);
end;
P˛ tla
for
i wektoryzacja
e
p˛ tla
for
e
for i = 1: 100
y(i)=sin(i);
end;
Co wybiera´ ? Zawsze wektoryzacj˛ !
c
e
Zadanie.
Napisa´ funkcj˛ obliczajaca sum˛
c
e
˛ ˛
e
p-tych
pot˛ g
n
pierwszych liczb naturalnych.
e
Wersja „klasyczna”:
function s = sump(n, p)
s = 0;
for i = 1: n
s = s + i^p;
end;
         
¡¡¡¡¡ 
wektoryzacja
y = sin(1: 100);
Wprowadzenie do Matlaba, folia 5
Zgłoś jeśli naruszono regulamin