Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

MOiPP Wykład 7 Matlab cd..

Podobne prezentacje


Prezentacja na temat: "MOiPP Wykład 7 Matlab cd.."— Zapis prezentacji:

1 MOiPP Wykład 7 Matlab cd.

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 = s10 = 150

4 a=const

5 Hamowanie: a=-5 m/s^2 v0=100 km/h
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 3*exp(-1/5*t) s10 =

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= 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= 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-sin t) y=r (1-cos t) x=r (t-c sin t) y=r (1-c cos t)
Można wyprowadzić ogólniejsze wzory: x=r (t-c sin 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

17 Helisa – równania parametryczne
x = r sin t x = r cos 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ść?

18 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)

19 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; while x<d(i) S = S + P(i); % dodaj kolejną siłę if i==n break %przerwanie pętli gdy ostatnia siła end i=i+1 % weź następną siłę

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

21 Podsumowanie wiedzy

22 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

23 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

24 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

25 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)

26 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

27 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) if subs(d2f)<0 disp('Max') else disp('Min') end

28 WYNIKI zera = 3.4812 1.6889 pp x=1.6667 x= minimum x= maksimum Wniosek: pp różne od zera(3) pp jest tam, gdzie d2f=0


Pobierz ppt "MOiPP Wykład 7 Matlab cd.."

Podobne prezentacje


Reklamy Google