Taylor and Euler Matlab Comparison for Numerical Analysis.

acampbell
Messages
3
Reaction score
0
1. Solve y'=3t^2y^2 on [0, 3] , y0 = −1, using Euler method and Taylor method of
order 3. Compare your solutions to the exact solution. y(t)=(-1/((t^3)+1))


I DONT KNOW WHAT IS WRONG WITH MY PROGRAM! PLEASE HELP =D

Homework Equations



http://en.wikipedia.org/wiki/Euler_method
http://math.fullerton.edu/mathews/n2003/TaylorDEMod.html

The Attempt at a Solution


function Euler2(a,b,h,y0)
t0=a;
t(1)=t0;
y(1)=y0;
N=(b-a)/h;

for i=1:N
y(i+1)=y(i)+h*(func(t(i),y(i)));
t(i+1)=t(i)+h;
end
-----------------------------------------
function deriv=func(t,y)
deriv=3*t^2*y^2;
-----------------------------------------
function w=Taylor1(a,b,h)
t0=a;
y0=1;
t(1)=t0;
y(1)=y0;
N=(b-a)/h;
w(1)=1;

%2nd Order Taylor Method%
for i=2:N+1
w(i)= w(i-1)+h*(1-h+(h^2)/2);
t(i)= a+i*h;
end

%3rd Order Taylor Method%
for i=2:N+1
w(i)= w(i-1)*(1-h+(h^2)/2-(h^3)/6);
t(i)= a+i*h;
end
------------------------------------------------
a=0;
b=3;
y0=-1;
h=0.1;
t=a:h:b;

w1=Euler2(a,b,h);
w2=Taylor2(a,b,h);

plot(t,w1,'r')
hold on
plot(t,w2,'b')
hold on
plot(t,-1/(t^3+1),'g')
--------------------------------------
 
Last edited by a moderator:
Physics news on Phys.org
acampbell said:
1. Solve y'=3t^2y^2 on [0, 3] , y0 = −1, using Euler method and Taylor method of
order 3. Compare your solutions to the exact solution. y(t)=(-1/((t^3)+1))


I DONT KNOW WHAT IS WRONG WITH MY PROGRAM! PLEASE HELP =D

Homework Equations



http://en.wikipedia.org/wiki/Euler_method
http://math.fullerton.edu/mathews/n2003/TaylorDEMod.html

The Attempt at a Solution


function Euler2(a,b,h,y0)
t0=a;
t(1)=t0;
y(1)=y0;
N=(b-a)/h;

for i=1:N
y(i+1)=y(i)+h*(func(t(i),y(i)));
t(i+1)=t(i)+h;
end
-----------------------------------------
function deriv=func(t,y)
deriv=3*t^2*y^2;
-----------------------------------------
function w=Taylor1(a,b,h)
t0=a;
y0=1;
t(1)=t0;
y(1)=y0;
N=(b-a)/h;
w(1)=1;

%2nd Order Taylor Method%
for i=2:N+1
w(i)= w(i-1)+h*(1-h+(h^2)/2);
t(i)= a+i*h;
end

%3rd Order Taylor Method%
for i=2:N+1
w(i)= w(i-1)*(1-h+(h^2)/2-(h^3)/6);
t(i)= a+i*h;
end
------------------------------------------------
a=0;
b=3;
y0=-1;
h=0.1;
t=a:h:b;

w1=Euler2(a,b,h);
w2=Taylor2(a,b,h);

plot(t,w1,'r')
hold on
plot(t,w2,'b')
hold on
plot(t,-1/(t^3+1),'g')
--------------------------------------

Help us out a bit. Why do you think there is something wrong with your code?
 
Last edited by a moderator:
i feel like something is wrong with my Euler and Taylor codes but I'm not so sure.
 
"Feeling" is not helpful. Does your code produce an incorrect result?
 
? Error using ==> Euler2
Too many output arguments.

Error in ==> Problem3_Homework3 at 7
w1=Euler2(a,b,h);


THAT IS WHAT I GET!
 
Umm, just looking at your euler's I can tell you either didn't give us the right code or it's wrong (or terrible coding practice). You have a t(1)=t0; definition, but t0 is not an input to your function. Other than that, it looks fine. I don't really want to look at the Taylor without in an indication of whether it's wrong or not.

The two methods should be pretty close to the exact solution.

Edit: my bad, didn't see that you made a = t0, but still, why the extra step?
 
Your function call should really look like

function y = Euler2(a,b,h,y0)

Maybe you should make it look just like the ode45 would take
function [t y]=euler(odefun,tvalues,y0,h);
 
Last edited:
Back
Top