Matlab2.pdf

(446 KB) Pobierz
11532807 UNPDF
Instytut Sterowania i Systemów Informatycznych, Politechnika Zielonogórska
Tryb interpretera
2 * 3
ans =
6
2 * 3;
pi
ans =
3.1416
sin(pi / 2)
ans =
1
[1 4; 6 8]
ans =
1 4
6 8
6: 2: 20
ans =
6 8 10 12 14 16 18 20
Wprowadzenie do Matlaba, folia 1
11532807.038.png 11532807.039.png 11532807.040.png 11532807.041.png 11532807.001.png 11532807.002.png 11532807.003.png 11532807.004.png 11532807.005.png
Instytut Sterowania i Systemów Informatycznych, Politechnika Zielonogórska
b
? Undefined function or variable ’b’
A = [1 4; 6 8]
A =
1 4
6 8
A - 1
ans =
0 3
5 7
A * A
ans =
25 36
54 88
sin(A)
ans =
0.8415 -0.7568
-0.2794 0.9894
Wprowadzenie do Matlaba, folia 2
11532807.006.png 11532807.007.png 11532807.008.png 11532807.009.png
Instytut Sterowania i Systemów Informatycznych, Politechnika Zielonogórska
Programowanie
Zadanie 1. Napisac funkcje znajduj ac a
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: Te funkcje zapisuje sie w pliku rown1.m !
Efekt działania:
rown1(1, 2)
ans =
-2
Wprowadzenie do Matlaba, folia 3
11532807.010.png 11532807.011.png 11532807.012.png 11532807.013.png 11532807.014.png 11532807.015.png 11532807.016.png 11532807.017.png 11532807.018.png 11532807.019.png
Instytut Sterowania i Systemów Informatycznych, Politechnika Zielonogórska
Zadanie 2. Napisac funkcje rozwi azuj ac a
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
11532807.020.png 11532807.021.png 11532807.022.png 11532807.023.png
Instytut Sterowania i Systemów Informatycznych, Politechnika Zielonogórska
Wskazana jest równiez diagnostyka błedów:
if nargin < 2
error(’Za malo parametrow’);
end;
Petla for i wektoryzacja
petla for
wektoryzacja
for i = 1: 100 y = sin(1: 100);
y(i)=sin(i);
end;
Co wybierac?
Zawsze wektoryzacje!
Zadanie. Napisac funkcje obliczaj ac a sume
p -tych poteg n pierwszych liczb naturalnych.
Wersja „klasyczna”:
function s = sump(n, p)
s = 0;
for i = 1: n
s = s + i^p;
end;
Wprowadzenie do Matlaba, folia 5
11532807.024.png 11532807.025.png 11532807.026.png 11532807.027.png 11532807.028.png 11532807.029.png 11532807.030.png 11532807.031.png 11532807.032.png 11532807.033.png 11532807.034.png 11532807.035.png 11532807.036.png 11532807.037.png
Zgłoś jeśli naruszono regulamin