MATLAB Program for Midpoint method
% Midpoint method
% Example 1: Approximate the solution to the initial-value
problem
% dy/dt=e^t ; 0<=t<=2
; y(0)=1;
% Example 2: Approximate the solution to the initial-value
problem
% dy/dt=y-t^2+1 ;
0<=t<=2 ; y(0)=0.5;
%f = @(t,y)
(0*y+exp(t)); %Example 1
f = @(t,y)
(y-t^2+1); %Example 2
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
zeros(1,n)];
w=[alpha
zeros(1,n)];
for i = 1:n+1
t(i+1)=t(i)+h;
wprime=w(i)+(h/2)*f(t(i),w(i));
%w(i+1)=w(i)+(h/2)*f( t(i),
w(i)+ f(t(i+1),wprime) );
w(i+1)=w(i)+h*f( t(i)+(h/2), wprime );
fprintf('%5.4f %11.8f\n', t(i), w(i));
plot(t(i),w(i),'r*'); grid on;
xlabel('t values'); ylabel('w values');
hold on;
end
>> midpoint_method
Enter left end ponit, a: 0
Enter right end point, b: 2
Enter no. of subintervals, n: 10
Enter the initial condition, alpha: .5
0.0000 0.50000000
0.2000 0.82800000
0.4000 1.21136000
0.6000 1.64465920
0.8000 2.12128422
1.0000 2.63316675
1.2000 3.17046344
1.4000 3.72116540
1.6000 4.27062178
1.8000 4.80095857
2.0000 5.29036946
>>
No comments