1 / 22

Matlab Przykłady prostych metod obliczeniowych

MOiPP. Wykład 3. Matlab Przykłady prostych metod obliczeniowych. 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

Download Presentation

Matlab Przykłady prostych metod obliczeniowych

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. MOiPP Wykład 3 • Matlab • Przykłady prostych metod obliczeniowych

  2. 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 fori=1:N if M(i)>0 ile=ile+1; end end; disp(ile)

  3. 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, if a(i , j)>0 iledod=iledod+1; end end end disp(iledod) 3

  4. Sumowanie warunkowe (elementów dodatnich) w tablicy 1-wymiarowej M=-3:0.1:2 suma_d=0; N=length(M) fori=1:N if M(i)>0 suma_d=suma_d+M(i); end end; disp(suma_d)

  5. 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); else suma_u=suma_u+a(i,j); end end end disp('suma dodatnich:'),disp(suma_d) disp('suma ujemnych:'), disp(suma_u)

  6. Obliczenia kinematyczne Ruch jednostajnie przyspieszony(opóźniony) v=v0+a*(t-t0)

  7. Ruch jednostajnie przyspieszony Wykres v(t) – prędkość jest funkcją liniową, więc wystarczą dwa punkty dla wykresu t0=0, v0=0, tk=5,vk=20 %tworzymy dwa wektory t=[t0 tk] v=[v0 vk] plot(t, v, 'k')

  8. Ruch jednostajnie przyspieszony s(t) to parabola, więc potrzebujemy więcej punktów t0=0, v0=0, tk=5,vk=20 a=(vk-v0)/(tk-t0) % "gęsta" oś czasu t=t0 : 0.1 : tk s=v0*t+a*t.^2/2 plot(t, s,'r') hold on %zatrzymanie wykresu v=v0+a*(t-t0) plot(t, v, 'k') title('s(t)-czerwony v(t) - czarny')

  9. Ruch jednostajnie opóźniony t0=0, v0=20, tk=4, vk=0 a=(vk-v0)/(tk-t0) t=t0 : 0.1 : tk; s=v0*t+a*t.^2/2; subplot(2,1,1),plot(t, s) xlabel('t'),ylabel('s(t)') v=v0+a*(t-t0); subplot(2,1,2),plot(t, v) xlabel('t'),ylabel('v(t)')

  10. Wykorzystanie macierzy w ruchu złożonym – odcinki czasowe - jednostajnie przyspieszony, - jednostajny, - jednostajnie opóźniony, t0=0, t1=t0+5, t2=t1+2*60, t3=t2+4 a1=4, a2=0, a3=-5 v0=0 v1=a1*(t1-t0)+v0 v2=a2*(t2-t1)+v1 v3=a3*(t3-t2)+v2 t=[t0 t1 t2 t3] %kolejne punkty czasowe v=[v0 v1 v2 v3] %odpowiednie prędkości plot(t, v) title('v(t)') axis([0 140 0 25])

  11. … 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 plot Wykres w skali logarytmicznej

  12. 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

  13. A jak narysować wykres s(t) ? Zostawiamy problem do samodzielnego rozwiązania

  14. Zróżnicowanie metod obliczeniowych Zadanie: Obliczyć wartości drogi wykonanej przez ciało dla przyspieszenia a=4 w przedziale czasu t=[0, 5]. Utworzyć wykresy.

  15. Sposób 1 t=0 : 0.1 : 5 a=4 s=a*t.^2/2 plot(t,s)

  16. Sposób 2 a=0; b=5; n=50; h=(b-a)/n; fori=1:n+1 t(i)=a+(i-1)*h; s(i)=2*t(i)^2; end plot(t,s)

  17. Sposób3 Obliczenia przy pomocy tzw. funkcji anonimowej Składnia funkcji anonimowej: nazwa_funkcji=@(lista_argumentów)(wyrażenie)

  18. Przykład sinusoida=@(t)(sin(t)) fplot(sinusoida,[0,4*pi]) Nasze zadanie t=0:0.1:5 f = @(t)(2*t.^2); s=f(t) plot(t, s)

  19. Sposób4 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]; n=length(t); for i=1:n s (i)=fs(t(i)); end plot(t,s), grid

  20. 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 musiałaby być zdefiniowana następująco: function y = fs(t) y=2*t.^2; bo elementowe podnoszenie do kwadratu 20

  21. Zapis wielomianu w matematyce: w(x)=a0xn + a1xn-1 + a2xn-2 + ∙∙∙+ aixn-i + ∙∙∙+ an-2x2 + an-1x + an Matlab – zmiana indeksowania współczynników ponieważ w Matlabie indeksy macierzy zaczynają się od 1

  22. w(x)=5x4 + 4x2– x + 2 Wektor współczynników: A= [5 0 1 -1 2] Co już zauważyliśmy wykorzystując funkcję roots() znajdującą pierwiastki wielomianu n-tego stopnia

More Related