如何使用MATLAB中的循环求解一系列方程式?

时间:2019-03-29 05:30:17

标签: matlab

我正在尝试求解以下一系列方程,并为每个方程存储正解

这是我使用的代码:

s=zeros(1,100);

for i=1:100
   syms l0 positive
   eqn(i)= .0017777*(l0^.25)/(.05-l0) == i;
   s(i)=solve(eqn(i),l0);
end

但是最后我得到以下错误:

  

发生以下错误,从sym转换为double:无法转换为   将表达式转换为双精度数组。

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

由于方程式中的1/4幂,因此存在复杂的解决方案。

您只需要真正的解决方案,因此请指定...

solve(eqn(i),l0,'Real',true);

这将为您提供所需的结果。

请注意,因为您将solve初始化为双精度数组而不是符号数组,所以MATLAB自动执行从s的符号输出到double的转换。您在这里失去了精度,但是可以像使用其他任何双精度数组一样使用答案。