0

我应该编写一个 MATLAB 函数,它采用 y'(t) = a*y(t) +b 形式的一阶常微分方程,初始点 y(t0)=y0 作为输入,并计算解的前 15 个点. 还绘制前 15 个点的解曲线。我们要求解的方程是 ;y'(t) = 4*y(t)+1,初始点 y(0)=0。

对于这个函数,我写了下面的代码,但这给了我一个关于 y 的错误。我应该如何正确实现欧拉函数?而且我无法确定如何绘制解曲线..

function E=euler(f,y)
%Input - f is the function entered as a string 'f'
% - a and b are the left and right endpoints
% - ya is the initial condition y(a)
% - M is the number of steps
%Output - E=[T' Y'] where T is the vector of abscissas and
% Y is the vector of ordinates
h=0.1;
y(0)=0;
for j=0:15
Y(j+1)=Y(j)+h*feval(4*(y(t)+1));
end
4

1 回答 1

1

修补:

h = 0.1;
y(1) = 0;
for j = 1:16
    Y(j + 1) = Y(j) + h * feval(4 * (y(t - 1) + 1));
end

好吧,我不确定数学部分,但是 - 索引需要从“1”开始。其他然后例如在 C 中,您不能使用“0”作为索引。

于 2012-12-16T23:53:26.750 回答