Matlab,不能将sym变成双精度



我正在尝试求解方程(syms x(中的一个变量,我已经简化了方程。我正在尝试通过将符号转换为双精度值来将值存储在 1x1000 矩阵P_9中,并得到以下错误。它给了我一个0x0的象征,这就是我认为我的错误所在。

请帮我解决我的代码问题。非常感谢!

number = 1000;
P_9 = zeros(1,number);
A_t=0.67;
A_e = linspace(0,10,number);

for n=1:number
    %% find p9
    syms x
    eqn = x + 5 == A_t/A_e(n);
    solx = solve(eqn,x);
    P_9(n) = double(solx);
end 

警告:找不到显式解决方案。

在求解中 179 在 HW4 中,74 在作业 A(I( = B 中,B 和 I 中的元素数必须相同。

HW4 中的错误(第 76 行( P_9(n( = 双精度(索克斯(;

你当然有一个方程,x不能被隔离。

例如,不可能在tan(x) + x == 1中隔离 x。因此,如果您尝试解析求解此方程,matlab 会告诉您x无法隔离,因此没有明确的解析解。

因此,与其使用分析方法来解决方程,不如使用数值方法,它不那么"性感",但这次您将能够解决您的方程。

生活做得很好,matlab 已经集成了一个数值求解器:vpasolve .

因此,您的代码将如下所示:

for n=1:number
    %% find p9
    syms x
    eqn = x + 5 == A_t/A_e(n); 
    solx = vpasolve(eqn,x);
    P_9(n) = double(solx);
end 

最新更新