我正在尝试解决方程中的变量(syms x),我已经简化了方程式。我试图将值存储在P_9,1x1000矩阵,通过从符号转换为double,我得到下面的错误。它给我一个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)= double(solx);
答案 0 :(得分:1)
你当然有一个等式,x
无法隔离。
例如,在tan(x) + x == 1
中隔离x是不可能的。因此,如果你尝试解析这个方程,matlab会告诉你x
不能被隔离,因此没有明确的解析解。
因此,您不需要使用分析方法来解决方程式,而是需要使用数值方法,而不是“性感”和#34;但这次你将能够解决你的等式。
生活做得很好,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