1 / 28

Matlab cd .

MOiPP. Wykład 7. Matlab cd. Obliczenia kinematyczne - symbolicznie. Znane wzory. Stąd wynika:. Jeśli a=const , ruch jednostajnie przyspieszony. dla przypadku: s0=0, v0=0. clc;clear ; syms a t v= int (a,t,0,t) s= int (v,t,0,t) %lub alternatywnie s2= in t ( int (a,t,0,t),t,0,t)

olympe
Download Presentation

Matlab cd .

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

  2. Obliczenia kinematyczne - symbolicznie Znane wzory Stąd wynika:

  3. Jeśli a=const, ruch jednostajnie przyspieszony dla przypadku: s0=0, v0=0 clc;clear; syms a t v=int(a,t,0,t) s=int(v,t,0,t) %lub alternatywnie s2=int(int(a,t,0,t),t,0,t) a=3; %jednostka [m/s2] v=subs(v) s=subs(s) subplot(2,1,1) ezplot(v,[0 10]); title('prędkość') subplot(2,1,2) ezplot(s,[0 10]); title('droga') t=10; %obliczamy drogę po 10 sek. s10=subs(s) v = a*t s = 1/2*a*t^2 s2 = 1/2*a*t^2 s10 = 150

  4. a=const

  5. Hamowanie: a=-5 m/s^2 v0=100 km/h %hamowanie clc;clear; syms A B t v0 a=-5 %constans – ujemne! v=v0 +int(a,t,0,t) s=int(v,t,0,t) v0=100*10/36 subplot(3,1,1) ezplot(-5+0*t,[0 10]); title('przyspieszenie') disp('predkosc') v=subs(v) s=subs(s); subplot(3,1,2) ezplot(v,[0 10]); title('prędkość') subplot(3,1,3) ezplot(s,[0 10]); title('droga')

  6. Interpretujemy poprawność: Prędkość maleje, gdy ujemna pojazd się cofa czyli droga zaczyna maleć (wracamy do miejsca startu) Obliczenie czasu powrotu do miejsca startowego: … %powrót sp=solve(s) subs(sp(2)) 11.1 s

  7. Jeśli przyspieszenie dane funkcją, np.: a=f(t)=A*e-Bt clc;clear; syms A B t a=A*exp(-B*t) v=int(a,t,0,t) s=int(v,t,0,t) A=3;B=0.2; a=subs(a) subplot(3,1,1) ezplot(a,[0 10]); title('przyspieszenie') v=subs(v); s=subs(s); subplot(3,1,2) ezplot(v,[0 10]); title('prędkość') subplot(3,1,3) ezplot(s,[0 10]); title('droga') t=10; %obliczamy drogę po 10 sek s10=subs(s) a = A*exp(-B*t) v = -A*(-1+exp(-B*t))/B s = A*(-1+B*t+exp(-B*t))/B^2 a = 3*exp(-1/5*t) s10 = 85.1501

  8. Wykresy dla A=3 m/s2 B=0.2 Interpretujemy poprawność: Prędkość rośnie - coraz wolniej, bo przyspieszenie spada, choć nadal jest dodatnie

  9. Zadanie: Prędkość początkowa auta: v0=100 m/s, Przyspieszenie jest funkcją a(t)= -0.2*t Po jakim czasie auto się zatrzyma? Teraz rozwiązujemy równanie różniczkowe: clc, clear syms t %rozw. równania różniczkowego v=dsolve('Dv=-0.2*t','v(0)=100') % szukamy miejsca zerowe dla v tk=subs(solve(v)) ezplot(v, [0 tk(2)]) hold on % oś x ezplot(0*t,[0 tk(2)]) title('v(t)') Rozwiązanie: tk=31.6228 sekund

  10. Zadanie: Prędkość początkowa auta: v0=100 km/h, Przyspieszenie jest funkcją a(t)= -3exp(-2t) Do jakiej prędkości ustalonej zmierza pojazd Teraz rozwiązujemy równanie różniczkowe: %hamowanie clc, clear syms t %rozw. równania różniczkowego v=dsolve('Dv=-3*exp(-2*t)','v(0)=100*10/36') % wykres prędkości ezplot(v, [0 100]) hold on % oś x ezplot(0*t,[0 100]) title('v(t)') vd=subs(limit(v,t,inf)) %granica (limes dla t∞) Rozwiązanie: vd= 26.2778 10

  11. Na marginesie: Lepsza kontrola zakresu osi y dla funkcji symbolicznej clc %Kontrola zakresu osi y dla funkcji symbolicznej syms x f = sin(x) h=ezplot(f,[0 2*pi]); %get X and Y data X = get(h,'XData'); %dostęp do wektora danych (520 punktów) Y = get(h,'YData'); %to samo dla y %teraz używamy plot plot(X,Y) axis( [0 2*pi -3 3])

  12. Cykloida – droga punktu położonego na toczącym się kole

  13. a=wt jeśli w=1 to a=t stąd

  14. x=r (t-sint) y=r (1-cos t) Można wyprowadzić ogólniejsze wzory: x=r (t-csin t) y=r (1-c cos t) gdzie parametr c ilustruje położenie punktu: jeśli c=1 to punkt znajduje się na obwodzie koła jeśli c<1 to punkt znajduje się wewnątrz koła jeśli c>1 to punkt znajduje się poza kołem

  15. clc,clear syms t r c x=r*(t-c*sin(t)) y=r*(1-c*cos(t)) t=0:0.1:4*pi; x=subs(x); y=subs(y); r=1;c=1; %punkt na obwodzie koła x1=subs(x); y1=subs(y); y0=0*t;%oś x r=1;c=0.5; %punkt w połowie obwodu x2=subs(x); y2=subs(y); r=1;c=1.5; %punkt poza kołem x3=subs(x); y3=subs(y); plot(x1,y0,'k',x1,y1,'b',x2,y2,'g',x3,y3,'r')

  16. Helisa – równania parametryczne x = rsin t x = rcos t z = b t r=1,b=1 t=0:0.01:6*pi x=r*sin(t); y=r*cos(t); z=b*t; plot3(x,y,z) .. a jak obliczyć jej długość?

  17. Analogia do poznanego wzoru na długość krzywej płaskiej clc, clear, syms t r b a x=r*sin(t); y=r*cos(t); z=b*t; a=6*pi; L=int(sqrt(diff(x,t)^2+diff(y,t)^2+diff(z,t)^2),t,0,a) r=1;b=1; L=subs(L)

  18. Siła tnąca dla utwierdzonego jednostronnie pręta % Funkcja oblicza wartość siły tnącej w punkcie x pręta % dla sił skupionych podanych w tablicy P % oraz w odległościach umieszczonych w tablicy d % numeracja punktów od odległości największej do najmniejszej function S = silatnaca(x,P,d) S=0; n = length(P); i=1; whilex<d(i) S = S + P(i); % dodaj kolejną siłę ifi==n break%przerwanie pętli gdy ostatnia siła end i=i+1 % weź następną siłę end

  19. Wykorzystanie zdefiniowanej funkcji clc, clear P=[ 1 -1 -2 ] d=[ 3 2 1 ] i=1; for r=0:0.01:4 F(i)=silatnaca(r,P,d); x(i)=r; i=i+1; end plot(x,F)

  20. Podsumowanie wiedzy

  21. Edycja m-plików i ich uruchamianie Inicjacja zmiennych – nadawanie im wartości Proste obliczenia z wykorzystaniem funkcji matematycznych Zmienne zespolone • Macierze • Tworzenie macierzy jedno- i dwuwymiarowych • Operacje macierzowe • macierz odwrotna • mnożenie macierzowo i elementowo • podnoszenie do potęgi macierzowe i elementowe • wyznacznik macierzy • Wykorzystanie macierzy • rozwiązywanie układu równań liniowych • rozwiązywanie równania n-tego stopnia (roots) • wektoryzacja danych dla wykresów

  22. Wykresy funkcji • wykresy 2D – funkcje plot i fplot • wykres funkcji symbolicznej – ezplot • zarządzanie zakresami zmiennej niezależnej i zależnej • Proste obliczenia kinematyczne ruchu jednostajnego i jednostajnie przyspieszonego, • wektoryzacja czasu, • wykresy drogi, prędkości, przyspieszenia. Aproksymacja – przybliżanie danych dyskretnych parabolą n-tego stopnia

  23. Instrukcje strukturalne w Matlabie • Instrukcja warunkowa – cel i struktura, badanie kilku warunków, koniunkcja i alternatywa warunków • Instrukcje iteracyjne – pętle • sterowanie przebiegiem pętli liczonej for • pętle zagnieżdżane (np. dla tablic dwuwymiarowych) • zastosowania pętli w algorytmach wyszukiwania, sumowania i zliczania elementów • pętla warunkowa while

  24. Obliczenia symboliczne • Inicjacja zmiennych symbolicznych (syms) • Rozwiązywanie równań nieliniowych (solve) • Podstawienie danych liczbowych do wyrażeń symbolicznych (subs) • Wykresy funkcji symbolicznych (ezplot) • Symboliczne obliczenia pochodnych (pierwszego i drugiego stopnia, pochodne cząstkowe) • Całkowanie symboliczne (całki oznaczone i nieoznaczone) • Równania różniczkowe (dsolve)

  25. Wykorzystanie operacji symbolicznych • Badanie funkcji f– wykres, miejsca zerowe, minima, maksima, punkty przegięcia • miejsce zerowe (solve(f)) • ekstremum – pochodna 1 rzędu ma miejsce zerowe • minimum –pochodna 2 rzędu dodatnia • maksimum –pochodna 2 rzędu ujemna • punkt przegięcia –pochodna 2 rzędu ma miejsca zerowe • Wykorzystanie równań różniczkowych w zadaniach kinematycznych

  26. clc, clear syms x f=x^3-5*x^2+5*x+1 zera=solve(f); zera=subs(zera) subplot(3,1,1),ezplot(f,[-1,4]) df=diff(f) extrema=solve(df); extrema=subs(extrema) subplot(3,1,2),ezplot(df,[-1,4]) d2f=diff(df) pp=solve(d2f);%punkt przegięcia pp=subs(pp) subplot(3,1,3),ezplot(d2f,[-1,4]) disp('Badamy wartość d2f w punktach ext') disp('Jak dodatnie to minimum, ujemne to maximum') for k=1:length(extrema) x=extrema(k) ifsubs(d2f)<0 disp('Max') elsedisp('Min') end end

  27. WYNIKI zera = 3.4812 -0.1701 1.6889 pp x=1.6667 x=2.7208 minimum x=0.6126 maksimum Wniosek: pp różne od zera(3) pp jest tam, gdzie d2f=0

More Related