书目:《数值方法(matlab版)》,作者周璐等译
%欧拉方法求解微分方程
function [t,y] = my_euler(f, t0, tf , y0, h)
%f-函数; t0,tf:区间; y0,初值;h 步长
M = floor((tf - t0)/h); % 离散点的个数
t = zeros(M +1, 1);
y = zeros(M +1, 1);
t = [t0 : h :tf]';
y(1) = y0;
for i =1:M
y(i+1) = y(i) + h*feval(f, t(i), y(i));
end
function s = myfun(t,y)
s = 1/2*(t - y);
end
clear all;clc
%调用欧拉方法求解微分方程-
%函数原型 function [t,y] = my_euler(f, t0, tf , y0, h)
t0 = 0;tf = 3;
y0 = 1;
h1 = 1; h2 = 0.5; h3 = 0.25; h4 = 1/8;
[t1,y1] = my_euler(@myfun, t0, tf , y0, h1)
[t2,y2] = my_euler(@myfun, t0, tf , y0, h2)
[t3,y3] = my_euler(@myfun, t0, tf , y0, h3)
[t4,y4]