- uzyteczne komendy MATLABA
whos - jakie zmienne powstaly w trakcie sesji z MATLABEM
help, help "nazwa funkcji" - wyswietla pomoc
wywolanie takiej funkcji w oknie MATLABA: A=macierz(5,5); spowoduje powstanie macierzy A o rozmiarach 5 na 5.
- kazde polecenie (niezakonczone srednikiem) powoduje wyswietlenie odpowiedzi w oknie polecen MATLABA
Rozwiazania:
% tu mozna wpisac komentarz do funkcji ktory bedzie dostepny po napisaniu help "nazwa pliku .m zawierajacego ta funkcje"
rand('uniform');
A=rand(M,N);
A=A*2-1;
end;
2.Z macierzy utworzonej w poprzednim punktcie utworzyc dwa wektory:
a - kolumnowy zawierajacy max z kazdej kolumny
b - wierszowy zawierajacy min z kazdego wiersza.
a=max(A)';
b=min(A');
end;
3.Utworzyc macierze:
MM = AT * BT(T- transponowana); MMM=MM -1(macierz odwrotna).
MM=a'*b';
if det(MM)~=0
else
disp('Macierz odwrotna nie istnieje')
end; % to jest end od if
end;
x=0:pi/n:pi;%zakres x od 0 do pi z krokiem pi/n
y=A*sin(x)+B;
plot(x,y);
[ypmax,xpmax]=max(y);
[ypmin,xpmin]=min(y);
plot(x,y,xpmax*pi/n,ypmax,'o',xpmin*pi/n,ypmin,'*');
end;
Napisac skrypty funkcji realizujacych nastepujace polecenia:
2.Napisac skrypt (jako funkcje) obliczajacy pierwiastki rownania kwadratowego (wspolczynniki rownania sa wczesniej definiowane przez uzytkownika lub wprowadzane z klawiatury).
3.Napisac skrypt, ktory wyznacza silnie liczby naturalnej (iteracyjnie, za pomoca petli for).
4.Utworzyc macierz Q z macierzy A przez dodanie wiersza i kolumny takich, by suma elementow w kazdym wierszu/kolumnie wynosila zero.
5.Utworzyc macierz R z macierz Q przez odrzucenie co drugiego wiersza i kolumny.
6.Rozwiazac rownanie AX=b dwoma sposobami : przez odwrocenie macierzy A i przez dzielenie macierzy.
7.Wyznaczyc sume dwoch macierzy, ich iloczyn, transpozycje jednej z macierzy.
8.Wyznaczyc wszystkie pierwiastki n-tego stopnia (n podawane jako parametr przez uzytkownika) z liczby -1
Przyklady :
Funkcje mozna zdefiniowac w pliku np. funkcja.m
function y=funkcja(x)
y=sin(x)+0.5*cos(x);
dla tak zdefiniowanej funkcji mozna policzyc calke oznaczona w przedziale
<a,b>(dwie
metody:metoda sumowania prostokatow i korzystajac z funkcji MATLAB'a quard)
function [zo,z]=calka(a,b,c);
%a,b granice, c-krok
zo=0;
for i=a:c:b
zo=zo+funkcja(i)*c;
end;
z=quad('funkcja',a,b);
Przyklad: pierwiastki n-tego stopnia z (-1)
function [X]=pierw(n);
%pierwiastki n-tego stopnia z (-1);
v(1)=1;
v(n+1)=1;
for i=2:n
v(i)=0;
end;
X=roots(v);
Przyklad (figury Lissajous)
function [y]=lis(f);
x=-pi:0.1:2*pi;
S=['y' 'm' 'c' 'r' 'g' 'b' 'w'];
i=1;
y=sin(x);
while f<4*pi,
z=sin(x+f);
i=i+1;
if i>7
i=1;
end;
plot(y,z,S(i));
hold
z=sin(x+f+pi);
plot(y,z,S(i));
f=f+pi/32;
pause(0.1);
hold
end;