Ćw.6
Transkrypt
Ćw.6
Ćwiczenie 6. Metody obliczeniowe cd. Zastosowania obliczeń symbolicznych W Symbolic Math Toolbox do całkowania wyrażeń symbolicznych wykorzystuje się następujące funkcje: int(S) – oblicza całkę nieoznaczoną wyrażenia symbolicznego S, int(S,v) - oblicza całkę nieoznaczoną dla S , ze względu na zmienną v, int(S,a,b) – zwraca całkę oznaczoną dla S, w granicach od a do b, int(S,v,a,b) – jw.., dla ustalonej zmiennej v. Ćwiczenie Znaleźć wzór na prędkość w ruchu jednostajnie przyspieszonym w przedziale [t0, t] z przyspieszeniem a oraz warunkiem początkowym v(t0)=v0. Zadanie to możemy rozwiązać na 2 sposoby: Sposób 1. Wykorzystanie funkcji int Korzystamy z tego, że przyspieszenie jest pochodną prędkości v względem czasu t. = , = Po scałkowaniu otrzymujemy: = + Metoda obliczeń symbolicznych w Matlab-ie: symsav0t0t syms v=v0+int int a,t,t0,t Wynik obliczeń symbolicznych: v=v0+a* t-t0 Sposób 2. Wykorzystanie funkcji dsolve Funkcja dsolve rozwiązuje symbolicznie zwykłe równania różniczkowe. dsolve 'równanie1','równanie2',…'zmienna1','zmienna2',… Warunki początkowe są określane przez równania podobne do 'y(a)=b' lub 'Dy(a)=b' gdzie y jest zmienną zależną, zaś a i b są stałymi. Przyspieszenie jest pochodną prędkości v względem czasu t. = , = Określenie zmiennych symbolicznych: symsat0tv0v syms Wywołanie funkcji dsolve zapis równania różniczkowego w postaci symbolicznej . dsolve 'Dv=a','v t0 =v0','t' Metoda obliczeń symbolicznych w Matlab-ie: %programrozwiązaniarównaniaróżniczkowegodv/dt=a,v t0 =v0 symsat0tv0v syms v=dsolve dsolve 'Dv=a','v t0 =v0' %zmiennatjestdomyślna Ćwiczenie Obliczyć symbolicznie wzór na drogę w ruchu jednostajnie przyspieszonym z przyspieszeniem a oraz warunkiem początkowym s(t0)=s0 przy wykorzystaniu wzoru symbolicznego na prędkość. v=v0+a* t–t0 Metoda obliczeń: 1 Prędkość jest pochodną drogi s względem czasu t. 2 = ,2 =2 Po scałkowaniu otrzymujemy: 2=2 + Metoda 1. Obliczenia symbolicznego wzoru na drogę, z wykorzystaniem wzoru symbolicznego na prędkość v oraz funkcji całkującej int: symsav0t0ts0 syms v=v0+a* t-t0 s=s0+int int v,t,t0,t Wynik obliczeń symbolicznych: s= s0+½*a* t^2–t0^2 –a*t0* t–t0 +v0* t-t0 Podstawianie do wzoru wartości liczbowych: Wartości liczbowe znajdujemy korzystając z funkcji subs, mającej składnię: subs(wyrażenie,{lista zmiennych},{lista_wartości}) Pierwszy sposób: Podstawiamy za zmienne symboliczne wartości liczbowe: t0=0,v0=0,s0=0 Korzystamy z funkcji subs, która podstawia do wzoru symbolicznego wartości liczbowe: s1=subs s otrzymujemy znany wzór na drogę w ruchu jednostajnie przyspieszonym: s1=1/2*a*t^2 Drugi sposób: s2=subs s,{a,t0,v0,s0},{4,0,0,0} Otrzymujemy wzór na drogę: s2=2*t^2 Metoda 2: Obliczenia symboliczne z dwukrotnym wykorzystaniem funkcji całkowania int: %Obliczeniedrogi symsav0t0ts0 syms v=v0+int int a,t,t0,t s=s0+int int v,t,t0,t Zadanie Po podstawieniu dowolnych konkretnych wartości t0, s0, v0 i a narysować wykresy v(t) i s(t) korzystając z poznanej funkcji ezplot o postaci: ezplot(f) - zakres zmiennej niezależnej domyślny, ezplot f,[min,max] –zustalonymprzedziałemzmiennejniezależnej. Symboliczne rozwiązywanie równania (układu równań) przy użyciu funkcji solve Funkcja solve ma następującą składnię: solve 'równanie1','równanie2',…,'rownanieN','zmienna1','zmienna2',…,'zmiennaN' Ćwiczenie Obliczyć symbolicznie przyspieszenie z równania: v=v0+a*(t-t0) Metoda obliczeń w Matlab-ie: symsat0v0tv syms 2 % obliczenie wzoru symbolicznego na niewiadomą a a = solve('v solve = a*(t-t0)+v0','a') % podstawienie danych liczbowych pod zmienne symboliczne v0=0; t0=0; t=5; v=20; % podstawienie danych liczbowych do wzoru a1=subs subs(a) subs Wynik obliczeń: a= (-v+v0)/(-t+t0) a1 = 4 Zadanie 2 2 Znaleźć rozwiązania układu równań: x -y=4; y -x=0. Zilustrować rozwiązania na wykresach. Ćwiczenie Znaleźć symboliczne równanie paraboli przechodzącej przez 3 punkty, która ma miejsca zerowe na końcach przedziału (0,a), zaś w połowie przedziału przyjmuje wartość 1. Korzystamy z tego, że parabola jest wykresem równania kwadratowego i z rozkładu równania kwadratowego na czynniki: Ax2+Bx+C=A(x-x1)(x-x2) gdzie x1,x2 są pierwiastkami równania Ponieważ x1=0, x2=a (pierwiastki naszego równania kwadratowego) w naszym przypadku równanie paraboli przyjmie postać: f (x)=A*x*(x-a) W połowie przedziału x=a/2 Z warunków zadania wynika, że f (a/2)=1, czyli otrzymujemy równanie z jedną niewiadomą A: A*a/2*(a/2-a)=1 Rozwiązujemy go symbolicznie przy pomocy funkcji solve A=solve solve('A*a/2*(a/2-a)=1', 'A') solve Metoda obliczeń w Matlab-ie: syms A a x A=solve solve('A*a/2*(a/2-a)=1', 'A') solve Zadanie a) Utworzyć wykres powyższej paraboli. b) Założyć a=6. Rozwiązać powyższe zadanie przy pomocy funkcji aproksymacji polyfit, wielomianem 2-go stopnia. Ćwiczenie 1. Obliczyć symbolicznie tor punktu materialnego poruszającego z prędkością początkową v0 pod kątem ∝ do poziomu pod wpływem siły ciężkości mg bez uwzględnienia oporu powietrza oraz prędkość i przyspieszenie punktu materialnego. Tor punktu jest określony równaniami: I J J (0) = = 0, cos ∝ , J(0) = 0 I I K I = −M, K (0) = sin ∝ , K(0) = 0 3 Droga punktu materialnego jest określona wzorem : prędkość wzorem : I I QR QT 2 = N OP S + P S QU Q Q , = Q , zaś przyspieszenie wzorem: Rozwiązanie w Matlabie: QV = Q . clear,clc symsat0tv0vgalfa0 x1=dsolve 'D2x=0','Dx 0 =v0*cos alfa0 ','x 0 =0','t' y1=dsolve 'D2y=-g','Dy 0 =v0*sin alfa0 ','y 0 =0','t' alfa0=pi/4; v0=60; g=9.81; %-------------------------położeniey x %wstawieniedanychdowzorow xu1=subs x1 yu1=subs y1 %-----------------------wektorydlapunktowczasu t=0:0.1:10; xp1=subs xu1 ; yp1=subs yu1 ; subplot 3,1,1 plot xp1,yp1,xp1,0*xp1 %dorysowanaośx,poziomziemi title 'Położeniey x ' %---------------------------składoweprędkościvx t vy t symst%wracamydoczasusymbolicznego vx=diff xu1 ; vy=diff yu1 ; t=0:0.1:10;%wektorpunktowczasu vx=subs vx ;%wstawieniedanych vx1=ones 1,length t *vx; %vx1jeststałewczasie-onestomacierzjedynekodługościtakiejjaktt vy1=subs vy ;%wektorvydlapunktowczasu subplot 3,1,2 plot t,vx1,t,vy1 title 'Składoweprędkoscivx t vy t ' %----------------------------------wyznaczenies t symst%wracamydoczasusymbolicznego st=int sqrt diff x1,t ^2+diff y1,t ^2 ,t,0,t ; s=subs st %wstawieniedanychalfa0iv0dowzoru t=0:0.1:10; st=subs s ; subplot 3,1,3 plot t,st title 's t ' 4 Poniżej otrzymane wykresy: Położenie y(x) 100 50 0 -50 -100 0 100 200 300 400 500 6 8 10 6 8 10 Składowe prędkosci vx(t) vy(t) 50 0 -50 -100 0 2 4 s(t) 600 400 200 0 0 2 4 Zadania do rozwiązania dla powyższego przykładu: 1. Jak zmienią się wykresy gdy wysokość początkowa będzie 20 m. 2. Jaki wówczas będzie zasięg (wartość końcowego x) po zderzeniu ciała z ziemią (y=0). 3. Jaki będzie czas do osiągnięcia ziemi. 4. Jaka będzie droga przebyta do osiągnięcia ziemi. Zadanie Korzystając ze wzoru ` = i j ab + c de h g df df obliczyć długość krzywej funkcji sin(x) w przedziale [0, π] Zadania dodatkowe do samodzielnej analizy Obliczyć masę zaspy śniegu na dachu o powierzchni prostokątnej o wymiarach 10m×20m, która w środku dachu ma wysokość h=0,5 m. Przyjąć, że przekroje poprzeczne i podłużne zaspy mają kształt paraboliczny. Masa właściwa śniegu waha się od 0,2 do 0,9 masy właściwej wody. Przyjąć, że powierzchnia zaspy wyraża się wzorem: z x,y =h*p x *q y gdzie p(x), q(y) są parabolami o wartościach 0 na brzegu dachu i wartości 1 w środku przekroju., zaś h jest wysokością zaspy na środku dachu. Rozwiązanie: clear %dwieparabole figure 1 fplot '4* 5+x .* 5-x /10^2',[-55] 5 hold on fplot('4*(10+x).*(10-x)/20^2',[-10 10]) a=10 b=20 h=0.5 figure(2) [x,y]=meshgrid(-a/2:0.5:a/2, -b/2:0.5:b/2); z = 16*h.*(a/2+x).*(a/2-x)/a^2.*(b/2+y).*(b/2-y)/b^2; mesh(x,y,z) %wykres 3D zaspy syms y x h a b z = 16*h.*x.*(a-x)/a^2.*y.*(b-y)/b^2; p=int(int(z,x,0,a),y,0,b) %całka podwójna Mmax=0.9*p % masa w tonach!!! 6