matlab:使用欧拉方法求解微分方程

本文介绍了使用欧拉方法在MATLAB中求解微分方程的过程,并通过比较不同步长的结果,揭示了步长对解的精度的影响。
摘要由CSDN通过智能技术生成

书目:《数值方法(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]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值