a)
clear all; clf f=inline('t.^2-y','t','y') % AV teht. 5 a=0;b=2;n=10;h=(b-a)/n;x=a:h:b; y0=1; y(1)=y0; for i=1:length(x)-1 y(i+1)=y(i)+h*f(x(i),y(i)); end xya=[x' y'] plot(x,y,'r');grid hold on clear y a=0;b=2;n=20;h=(b-a)/n;x=a:h:b; y0=1; y(1)=y0; for i=1:length(x)-1 y(i+1)=y(i)+h*f(x(i),y(i)); end xyb=[x' y'] plot(x,y,'b') clear y a=0;b=2;n=40;h=(b-a)/n;x=a:h:b; y0=1; y(1)=y0; for i=1:length(x)-1 y(i+1)=y(i)+h*f(x(i),y(i)); end xyc=[x' y'] plot(x,y,'g') grid plot(xya(:,1),xya(:,2),'o')
h=0.25;a=0;b=3;c=-2;d=3; % Muutettavat parametrit t=a:h:b;x=c:h:d; f=inline('3*t.^2./(3*y.^2-4)','t','y')Riittää suorittaa nämä ja hakea vain suuntakentta.m polun varrelle (vaikka omaan matlab-hakemistoon).
Sitten suoritetaan suuntakdata.m:n komennot ja komennetaan
suuntakentta axis squaremeuler-tyylillä Ota meuler, jos tarvitset.
t=1:0.1:1.8;m=length(t)-1; [T,Y]=meuler(f,1,1.8,0,m);plot(T,Y) t=1:0.05:1.8;m=length(t)-1; [T,Y]=meuler(f,1,1.8,0,m);plot(T,Y,'r') t=1:0.01:1.8;m=length(t)-1; [T,Y]=meuler(f,1,1.8,0,m);plot(T,Y,'g') [T,Y]=ode45(f,[1,1.8],0);plot(T,Y,'c')
%%%%%%%%%%%%%%%%%% fh2t5.m %%%%%%%%%%%%%%%%%%%%% function ypilkku=fh2t5(t,y) a=0.03; b=1.610E-4; ypilkku=a*y-b*y.^2; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Tässä USA-data: 1800 1830 1860 1890 1920 1950 1980 5.3 13 31 63 106 150 230 t=0:10:180;m=length(t)-1; [T,Y]=meuler('fh2t5',0,180,5.3,m);plot(T,Y,'g') [T,Y]=ode45('fh2t5',[0 180],5.3);plot(T,Y,'r') td=0:30:180 yd=[5.3 13 31 63 106 150 230]; Yd=spline(T,Y,td) [1800+td', yd' Yd']'