我正在尝试求解以下一系列方程,并为每个方程存储正解
这是我使用的代码:
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:无法转换为 将表达式转换为双精度数组。
有人可以帮我解决这个问题吗?
答案 0 :(得分:2)
由于方程式中的1/4
幂,因此存在复杂的解决方案。
您只需要真正的解决方案,因此请指定...
solve(eqn(i),l0,'Real',true);
这将为您提供所需的结果。
请注意,因为您将solve
初始化为双精度数组而不是符号数组,所以MATLAB自动执行从s
的符号输出到double的转换。您在这里失去了精度,但是可以像使用其他任何双精度数组一样使用答案。