Question

y=t, y0)=1, solution: y(t)=1+t/2 y = 2(1 +1)y, y(0)=1, solution: y(t) = +24 v=5y, y(0)=1, solution: y(t) = { y=+/yº, y(0)

use Matlab

For the IVPs above, make a log-log plot of the error of Runge-Kutta 4th order at t=1 as a function of h with h=0.1 x 2-k for

0 0
Add a comment Improve this question Transcribed image text
Answer #1

MATLAB Code:

close all
clear
clc

k = 0:1:5;
H = 0.1 * 2.^(-k);

f = @(t,y) t; % Given ODE
y_exact = @(t) 1 + t^2 / 2;
y(1) = 1; % Initial condition
ti = 0; tf = 1; % Interval of t
yf_vec = []; % Vector for storing y(t = 1) for different step sizes
for i = 1:length(H)
h = H(i);
t = ti:h:tf;
for j = 1:length(t)-1
k1 = f(t(j), y(j));
k2 = f(t(j) + 0.5*h, y(j) + 0.5*h*k1);
k3 = f(t(j) + 0.5*h, y(j) + 0.5*h*k2);
k4 = f(t(j) + h, y(j) + k3*h);
y(j + 1) = y(j) + (1/6)*(k1 + 2*k2 + 2*k3 + k4)*h; % RK4 Update
end
yf_vec = [yf_vec, y(end)]; % Store the value of y(t = 1)
end
figure, loglog(H, abs(y_exact(1) - yf_vec), 'o-'), xlabel('h'), ylabel('Error')
title(sprintf('Log-Log plot of Error of RK4 Method at t = 1\nODE: y'' = t'))

f = @(t,y) 2*(t + 1)*y; % Given ODE
y_exact = @(t) exp(t^2 + 2*t);
y(1) = 1; % Initial condition
ti = 0; tf = 1; % Interval of t
yf_vec = []; % Vector for storing y(t = 1) for different step sizes
for i = 1:length(H)
h = H(i);
t = ti:h:tf;
for j = 1:length(t)-1
k1 = f(t(j), y(j));
k2 = f(t(j) + 0.5*h, y(j) + 0.5*h*k1);
k3 = f(t(j) + 0.5*h, y(j) + 0.5*h*k2);
k4 = f(t(j) + h, y(j) + k3*h);
y(j + 1) = y(j) + (1/6)*(k1 + 2*k2 + 2*k3 + k4)*h; % RK4 Update
end
yf_vec = [yf_vec, y(end)]; % Store the value of y(t = 1)
end
figure, loglog(H, abs(y_exact(1) - yf_vec), 'o-'), xlabel('h'), ylabel('Error')
title(sprintf('Log-Log plot of Error of RK4 Method at t = 1\nODE: y'' = 2(t + 1)y'))

f = @(t,y) 5 * t^4 * y; % Given ODE
y_exact = @(t) exp(t^5);
y(1) = 1; % Initial condition
ti = 0; tf = 1; % Interval of t
yf_vec = []; % Vector for storing y(t = 1) for different step sizes
for i = 1:length(H)
h = H(i);
t = ti:h:tf;
for j = 1:length(t)-1
k1 = f(t(j), y(j));
k2 = f(t(j) + 0.5*h, y(j) + 0.5*h*k1);
k3 = f(t(j) + 0.5*h, y(j) + 0.5*h*k2);
k4 = f(t(j) + h, y(j) + k3*h);
y(j + 1) = y(j) + (1/6)*(k1 + 2*k2 + 2*k3 + k4)*h; % RK4 Update
end
yf_vec = [yf_vec, y(end)]; % Store the value of y(t = 1)
end
figure, loglog(H, abs(y_exact(1) - yf_vec), 'o-'), xlabel('h'), ylabel('Error')
title(sprintf('Log-Log plot of Error of RK4 Method at t = 1\nODE: y'' = 5t^4y'))

f = @(t,y) t^3 / y^2; % Given ODE
y_exact = @(t) (3 * t^4 / 4 + 1)^(1/3);
y(1) = 1; % Initial condition
ti = 0; tf = 1; % Interval of t
yf_vec = []; % Vector for storing y(t = 1) for different step sizes
for i = 1:length(H)
h = H(i);
t = ti:h:tf;
for j = 1:length(t)-1
k1 = f(t(j), y(j));
k2 = f(t(j) + 0.5*h, y(j) + 0.5*h*k1);
k3 = f(t(j) + 0.5*h, y(j) + 0.5*h*k2);
k4 = f(t(j) + h, y(j) + k3*h);
y(j + 1) = y(j) + (1/6)*(k1 + 2*k2 + 2*k3 + k4)*h; % RK4 Update
end
yf_vec = [yf_vec, y(end)]; % Store the value of y(t = 1)
end
figure, loglog(H, abs(y_exact(1) - yf_vec), 'o-'), xlabel('h'), ylabel('Error')
title(sprintf('Log-Log plot of Error of RK4 Method at t = 1\nODE: y'' = t^3/y^2'))

Plots:

Log-Log plot of Error of RK4 Method at t = 1 ODE: y=t * 10-16 Error 10-2 10

Log-Log plot of Error of RK4 Method at t = 1 ODE: y = 2(t+1)y Error 10-2 10

Log-Log plot of Error of RK4 Method at t = 1 ODE: y = 5ty Error 10-2 10

Log-Log plot of Error of RK4 Method at t = 1 ODE: y=tly2 0 Error 10-2

Add a comment
Know the answer?
Add Answer to:
use Matlab y'=t, y0)=1, solution: y(t)=1+t/2 y' = 2(1 +1)y, y(0)=1, solution: y(t) = +24 v=5"y,...
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for? Ask your own homework help question. Our experts will answer your question WITHIN MINUTES for Free.
Similar Homework Help Questions
ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT