# Homework Help: Taylor and Euler Matlab Comparison for Numerical Analysis.

1. Apr 25, 2012

### acampbell

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

2. Relevant equations

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

3. 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: May 5, 2017
2. Apr 25, 2012

### Staff: Mentor

Help us out a bit. Why do you think there is something wrong with your code?

Last edited by a moderator: May 5, 2017
3. Apr 25, 2012

### acampbell

i feel like something is wrong with my Euler and Taylor codes but I'm not so sure.

4. Apr 25, 2012

### Staff: Mentor

5. Apr 25, 2012

### acampbell

??? Error using ==> Euler2
Too many output arguments.

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

THAT IS WHAT I GET!

6. Apr 25, 2012

### Mindscrape

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?

7. Apr 25, 2012

### Mindscrape

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: Apr 25, 2012