Euler's method for solving ODE using MATLAB

MATLAB Program:

% Euler's method
 % Approximate the solution to the initial-value problem
 % dy/dt=y-t^2+1 ; 0<=t<=2 ; y(0)=0.5;

 f = @(t,y) (y-t^2+1);
 a = input('Enter left end ponit, a:  ');
 b = input('Enter right end point, b:  ');
 n = input('Enter no. of subintervals, n: ');               
 alpha = input('Enter the initial condition, alpha:  ');

 h = (b-a)/n;                                               
 t = a;
 w = alpha;
 fprintf('  t         w\n');
 fprintf('%5.4f  %11.8f\n', t, w);

 for i = 1:n
 w = w+h*f(t, w);
 t = a+i*h;
 fprintf('%5.4f  %11.8f\n', t, w);
 plot(t,w,'r*'); grid on;
 xlabel('t values'); ylabel('w values');
 hold on;
 end

OutPut:
>> euler_final
Enter left end ponit, a:  0
Enter right end point, b:  2
Enter no. of subintervals, n: 10
Enter the initial condition, alpha:  0.5
  t         w
0.0000   0.50000000
0.2000   0.80000000
0.4000   1.15200000
0.6000   1.55040000
0.8000   1.98848000
1.0000   2.45817600
1.2000   2.94981120
1.4000   3.45177344
1.6000   3.95012813
1.8000   4.42815375
2.0000   4.86578450

>> 




No comments