plik


ÿþMOiPP WykBad 3 Matlab " PrzykBady prostych metod obliczeniowych 1 Zliczanie warunkowe w tablicy 1-wymiarowej Ile w tablicy jest elementów dodatnich? M=-3:0.1:2 ile=0; %koniecznie inicjujemy zmienn! N=length(M) % funkcja length zwraca liczb kolumn tablicy for i=1:N if M(i)>0 if M(i)>0 ile=ile+1; end end; disp(ile) 2 Zliczanie elementów dodatnich w tablicy dwuwymiarowej clear; clc a=rand(5,5)-0.5 %elementy dodatnie i ujemne iledod= 0; %inicjujemy zmienn for i= 1:1:5, for j = 1:1:5, for j = 1:1:5, if a(i , j)>0 iledod=iledod+1; end end end disp(iledod) 3 3 Sumowanie warunkowe (elementów dodatnich) w tablicy 1-wymiarowej M=-3:0.1:2 suma_d=0; N=length(M) for i=1:N if M(i)>0 suma_d=suma_d+M(i); suma_d=suma_d+M(i); end end; disp(suma_d) 4 Sumowanie warunkowe elementów tablicy 2-wymiarowej clear; clc a=rand(5,5)-0.5 suma_d= 0; suma_u=0; for i= 1:1:5, for j = 1:1:5, if a(i , j)>0 suma_d=suma_d+a(i,j); suma_d=suma_d+a(i,j); else suma_u=suma_u+a(i,j); end end end disp('suma dodatnich:'),disp(suma_d) disp('suma ujemnych:'), disp(suma_u) 5 Obliczenia kinematyczne Ruch jednostajnie przyspieszony(opózniony) v=v0+a*(t-t0) 6 Ruch jednostajnie przyspieszony Wykres v(t)  prdko[ jest funkcj liniow, wic wystarcz dwa punkty dla wykresu t0=0, v0=0, tk=5,vk=20 20 18 %tworzymy dwa wektory 16 t=[t0 tk] t=[t0 tk] 14 14 12 v=[v0 vk] 10 plot(t, v, 'k') 8 6 4 2 0 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 7 Ruch jednostajnie przyspieszony s(t) to parabola, wic potrzebujemy wicej punktów s(t)-czerwony v(t) - czarny 50 45 t0=0, v0=0, tk=5,vk=20 40 a=(vk-v0)/(tk-t0) 35 % "gsta" o[ czasu 30 t=t0 : 0.1 : tk 25 25 s=v0*t+a*t.^2/2 s=v0*t+a*t.^2/2 20 plot(t, s,'r') 15 hold on %zatrzymanie wykresu 10 v=v0+a*(t-t0) 5 plot(t, v, 'k') 0 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 title('s(t)-czerwony v(t) - czarny') 8 Ruch jednostajnie opózniony t0=0, v0=20, tk=4, vk=0 40 a=(vk-v0)/(tk-t0) 30 t=t0 : 0.1 : tk; 20 s=v0*t+a*t.^2/2; 10 subplot(2,1,1),plot(t, s) 0 xlabel('t'),ylabel('s(t)') 0 0.5 1 1.5 2 2.5 3 3.5 4 t t v=v0+a*(t-t0); v=v0+a*(t-t0); 20 subplot(2,1,2),plot(t, v) 15 xlabel('t'),ylabel('v(t)') 10 5 0 0 0.5 1 1.5 2 2.5 3 3.5 4 t 9 s (t ) v (t ) Wykorzystanie macierzy w ruchu zBo|onym  odcinki czasowe - jednostajnie przyspieszony, - jednostajny, - jednostajnie opózniony, t0=0, t1=t0+5, t2=t1+2*60, t3=t2+4 a1=4, a2=0, a3=-5 v0=0 25 v1=a1*(t1-t0)+v0 v2=a2*(t2-t1)+v1 v2=a2*(t2-t1)+v1 20 v3=a3*(t3-t2)+v2 t=[t0 t1 t2 t3] %kolejne punkty czasowe15 v=[v0 v1 v2 v3] %odpowiednie prdko[ci 10 plot(t, v) title('v(t)') 5 axis([0 140 0 25]) 0 0 10 20 30 40 50 60 70 10 & na marginesie & czasem wygodniejsza skala logarytmiczna [x,y] = fplot('1/sqrt(1+2e-7*x^2)',[1,1e6]); figure(1) plot(x,y) grid on figure(2) semilogx(x,y) grid on semilogx semilogx plot plot Wykres w skali logarytmicznej 1 1 0.9 0.9 0.8 0.8 0.7 0.7 0.6 0.6 0.5 0.5 0.4 0.4 0.3 0.3 0.2 0.2 0.1 0.1 0 0 1 2 3 4 5 6 0 10 10 10 10 10 10 10 0 1 2 3 4 5 6 7 8 9 10 5 x 10 11 Troch inaczej tworzymy wykres przyspieszenia t0=0, t1=t0+5, t2=t1+2*60, t3=t2+4 a1=4, a2=0, a3=-5 t=[t0, t0, t1, t1, t2, t2, t3, t3] a=[0, a1, a1, a2, a2, a3, a3, 0] figure(2) plot(t,a), grid 4 3 2 1 0 -1 -2 -3 -4 -5 0 20 40 60 80 100 120 140 12 A jak narysowa wykres s(t) ? Zostawiamy problem do samodzielnego rozwizania rozwizania 13 Zró|nicowanie metod obliczeniowych Zadanie: Obliczy warto[ci drogi wykonanej przez ciaBo dla Zadanie: Obliczy warto[ci drogi wykonanej przez ciaBo dla przyspieszenia a=4 w przedziale czasu t=[0, 5]. Utworzy wykresy. 14 Sposób 1 t=0 : 0.1 : 5 a=4 s=a*t.^2/2 plot(t,s) plot(t,s) 15 Sposób 2 a=0; b=5; n=50; h=(b-a)/n; for i=1:n+1 t(i)=a+(i-1)*h; t(i)=a+(i-1)*h; s(i)=2*t(i)^2; end plot(t,s) 16 Sposób 3 Obliczenia przy pomocy tzw. funkcji anonimowej SkBadnia funkcji anonimowej: nazwa_funkcji=@(lista_argumentów)(wyra|enie) nazwa_funkcji=@(lista_argumentów)(wyra|enie) nazwa_funkcji=@(lista_argumentów)(wyra|enie) nazwa_funkcji=@(lista_argumentów)(wyra|enie) nazwa_funkcji=@(lista_argumentów)(wyra|enie) nazwa_funkcji=@(lista_argumentów)(wyra|enie) nazwa_funkcji=@(lista_argumentów)(wyra|enie) nazwa_funkcji=@(lista_argumentów)(wyra|enie) 17 PrzykBad 1 0.8 0.6 sinusoida=@(t)(sin(t)) 0.4 0.2 fplot(sinusoida,[0,4*pi]) 0 -0.2 -0.4 -0.6 -0.8 -1 -1 0 2 4 6 8 10 12 0 2 4 6 8 10 12 Nasze zadanie Nasze zadanie 50 t=0:0.1:5 45 40 35 f = @(t)(2*t.^2); 30 25 20 s=f(t) 15 10 5 plot(t, s) 0 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 18 Sposób 4 Tworzymy osobny m-plik funkcyjny o nazwie fs.m: function y = fs(t) y=2*t^2; Teraz mo|emy wykorzysta nasz funkcj t=[0:0.5:5]; t=[0:0.5:5]; n=length(t); n=length(t); for i=1:n for i=1:n s (i)=fs(t(i)); end plot(t,s), grid 19 Aby wykorzysta nasz funkcj w poni|szy sposób: t=[0:0.5:5]; s=fs(t); plot(t,s), grid argumentem funkcji jest tutaj wektor funkcja w m-pliku o nazwie fs.m musiaBaby by zdefiniowana nastpujco: function y = fs(t) y=2*t.^2; bo elementowe podnoszenie do kwadratu 20 20 Zapis wielomianu w matematyce: w(x)=a0xn + a1xn-1 + a2xn-2 + ···+ aixn-i + ···+ an-2x2 + an-1x + an Matlab  zmiana indeksowania wspóBczynników Matlab  zmiana indeksowania wspóBczynników poniewa| w Matlabie indeksy macierzy zaczynaj si od 1 21 w(x)=5x4 + 4x2  x + 2 Wektor wspóBczynników: A= [5 0 1 -1 2] Co ju| zauwa|yli[my wykorzystujc funkcj roots() znajdujc pierwiastki wielomianu n-tego stopnia 22

Wyszukiwarka

Podobne podstrony:
MATLAB cw Skrypty
SIMULINK MATLAB to VHDL Route
IMiR NM2 Introduction to MATLAB
matlab skrypty
MATLAB2
statystyka w matlabie
Matlab Kosinska
Slowniczek matlab
pn10 Matlab lab3 Bubak
MATLAB INFORMACJE
MATLAB cw Skorowidz hasel
Cw1 Matlab
W01 Matlab1
W03 Ontologia cz02
wprowadzenie Matlab Simulink
stl w03
Projektowanie regulatorów rozmytych w środowisku Matlab Simulink

więcej podobnych podstron