LABORATORIUM Z
METOD NUMERYCZNYCH
TEMAT: ODE23 ODE45
Łukasz Kudelski
Grupa 7
Cel ćwiczenia
Celem ćwiczenia jest zapoznanie się z funkcjami ODE23 i ODE45 rozwiązującymi równania różniczkowe.
Wykonanie
Wybieramy równanie różniczkowe w postaci:
Równanie to można zastąpić układem dwóch równań rzędu pierwszego
x1=x
Zapisujemy układ w postaci macierzowej
Zapisujemy układ równań w postaci m-pliku funkcyjnego
function [dx]=fun(t,x)
global m k b F w
dx=[0,1;-k/m,-b/m]*x+[0;(F*sin(w*t))/m]
Program wywołujący funkcję ode23
m=26; %Masa
k=17; %Wspolczynnik sprezystosci
b=3; %Wspolczynnik tlumienia
F=2350; %Siła
w=260; %Predkosc katowa
global m b k F w
t0=input('Czas rozpoczęcia próby t0= ');
tk=input('Czas zakończenia próby tk= ');
x10=1;
x20=0;
WP=[x10;x20];
[T,x]=ode23('fun',t0,tk,WP);
[t1,x1]=ode45('fun',t0,tk,WP);
hold on
title('niebieski ode23 ; czerwony ode45')
plot (T,x(:,1),'b')
plot (t1,x1(:,1),'r')
xlabel('Czas')
ylabel('Przemieszczenie')
hold off
Wnioski
Funkcja ode23 implementuje metodę Rungego i Kutty rzędu 2 z adaptacją czasową, natomiast ode45 Rungego i Kutty rzędu 4 z adaptacją czasową. Dzięki temu funkcja ode45 jest dokładniejsze od funkcji ode23. Obie funkcje zwracają dwie wartości: wektor (kolumnowy) punktów czasowych i wektor kolumnowy wartości rozwiązania w tych punktach.
3