在matlab下。用多种方法求解常微分方程

回答得好追加分数啊。

常微分方程为

y'=-2xy 0<x<3
y(0)=1

要求使用

欧拉法

梯形迭代法

线性多部法

要求提供详细的代码和M文件代码。

运行成功就给分。

简单明了好用的。我再追加50分
不能调用MABLAB已有的函数。

我目前只编出来了欧拉法,但是有Forward Euler和Backward Euler。不知道你要哪个?

另外两个我还需要时间才能编出来。。。。我手上还有RK-4的程序。都是自己编的可以吗。。。。

我只有欧拉法可以吗。我有前欧拉法和后欧拉法。你要哪个呢?

先给你前欧拉法

unction [tF,yF] = ForwardEuler(f,a,b,h,y0)
N = fix((b - a)/h);
t=a %set initial values
y=y0
tF = zeros(N+1,1); % initialize tF and yF with zero arrays
yF = zeros(N+1,length(y));
tF(1) = t; % store initial values in arrays tF, yF
yF(1,:) = y.'; % Note: y values are stored as ROW of array yF

for i=1:N
y = y + h*feval(f,t,y); % evaluate slope= feval(f,t,y);
t = t + h;
tF(i+1,:) = t; % store new values in arrays tF, yF
yF(i+1,:) = y.'; % Note: y values are stored as ROW of array yF
end

运行之后调入你的函数就ok了。【a,b】是范围,h是步长,y0是初值
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-06-19
你想做matlab程序的底层开发人员啊?
呵呵
不能调用已有函数的话,只有自己编写M文件了,或者用s函数。
看来首先得先把你说的那几个数学方法的原理搞明白了。
第2个回答  2008-06-20
这个必须明白

欧拉法

梯形迭代法

线性多部法

的计算原理和过程,然后根据原理用公式带入求数据,难度很高的哦