【问题标题】:Please Help: In an assignment A(I) = B, the number of elements in B and I must be the same. MATLAB请帮助:在作业 A(I) = B 中,B 和 I 中的元素数必须相同。 MATLAB
【发布时间】:2015-02-05 06:13:11
【问题描述】:

我被要求使用欧拉方法从 t=0:1000 确定 t 和 y 的值。我有所有的基本代码和参数,但是当我把我的欧拉方程放进去时,我得到了错误代码

在作业 A(I) = B 中, B 和 I 中的元素必须相同。

Project1 中的错误(第 24 行) Ay(i+1) = Ay(i) + (dAy)*x;

如何在向量和标量之间更改这些变量以允许方程运行?我的完整代码可以在下面找到:

dt=x;
Ay=zeros(1,1001);
Ay0=1250;
Ay(1) = Ay0;
t=0;
y=0;
t=0:dt:1000;
for i=1:1000
    if y > 10
        Qout=3*(y-10).^1.5;
    else
        Qout=0;
    end
    Qin=1350*sin(t).^2;
    dAy=Qin-Qout;
    Ay(i+1) = Ay(i) + dAy*dt;
end
plot(t,y);

【问题讨论】:

    标签: matlab


    【解决方案1】:

    问题是你的变量“Qin”不是一个数字,它是一个包含整个向量 t 的 sin 值的向量。同样,您的“一天”也是一个向量。因此它不能存储在变量 Ay 中。
    如果您的 dt =x = 1,只需将 sin(t) 替换为 sin(i),即 替换

    秦=1350*sin(t).^2; 经过 秦=1350*sin(i).^2;

    【讨论】:

    • 甚至Qin=1350*sin(t(i)).^2;。虽然结果在数值上是相同的,但它使代码更容易阅读和理解。
    【解决方案2】:

    问题在于你的代码行:

    Ay(i+1) = Ay(i) + dAy*dt;
    

    dAy*dt 返回一个向量。

    当你将它添加到 Ay(i) 时,你仍然会得到一个向量。

    Ay(i+1) 是向量中的单个元素。

    您不能将向量数量分配给向量中的元素。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-27
      • 2016-04-26
      相关资源
      最近更新 更多