Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

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

  1. Apr 25, 2012 #1
    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
    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. jcsd
  3. Apr 25, 2012 #2

    Mark44

    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
  4. Apr 25, 2012 #3
    i feel like something is wrong with my Euler and Taylor codes but I'm not so sure.
     
  5. Apr 25, 2012 #4

    Mark44

    Staff: Mentor

    "Feeling" is not helpful. Does your code produce an incorrect result?
     
  6. Apr 25, 2012 #5
    ??? Error using ==> Euler2
    Too many output arguments.

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


    THAT IS WHAT I GET!
     
  7. Apr 25, 2012 #6
    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?
     
  8. Apr 25, 2012 #7
    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
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook