无法识别的函数或变量"x"。在 MATLAB 中



试图编写Matlab代码来实现欧拉方法,以求解初始条件y(0(=1下的微分方程y'=2+2x-x2。请使用步长0.1,并估计x=1和x=2时的值。

当我运行代码时,我得到了无法识别的函数或变量"x">

dy =(2+2*x-2^2);
x0 = 1;

xn = 2;

y = 1;
h = 0.1;
fprintf ('x tt y (Euler)t y (analytical)n') %data table header 
fprintf ('%f t %ft %fn' ,x0,y,(x0));

for x = x0 : h : xn-hypot
y= y + 2+2*x-2^2 * h;

x = x + h;

fprintf ('%f t %ft %fn',x,y,(x));
end

问题出现在代码的第一行:

dy =(2+2*x-2^2);

由于这是代码的第一条语句,变量x尚未声明,Matlab将返回您提供的错误。

我还想补充两条意见:

  1. 因为在for循环中,您已经键入了导数y= y + 2+2*x-2^2 * h;,所以不需要在代码开头说明导数。要么注释,要么删除第一行。

  2. 但是,使Euler方法更通用的更好方法是使用函数句柄。然后你可以输入代码的第一行

    dy = @(x) (2+2*x-2^2);

并且在for循环中使用此函数:

for x = x0 : h : xn-hypot
y = y + dy(x) * h;
x = x + h;
end

这样,您就不需要使用Euler方法更改for循环,而且它实际上适用于任何一阶微分方程(只需更改dy函数(。

相关内容

  • 没有找到相关文章

最新更新