Matlab solve函数生成不满足方程的正解,求原因解析
关于Matlab solve函数生成无效正解的疑问
理论上我所求解的方程应仅存在一个正解,其余解均为负解。但使用Matlab的solve函数求解时,得到了两个正解,其中一个代入原方程验证后不满足条件,并非有效解。相关代码及运行结果如下:
n=4 c = 10.3343; theta = [51.7924 ; 4.3564 ; 0.0103 ; 1.3505]; syms x eqn = sum(sqrt(x.^2 + theta)) - n.*x == c; sol = solve(eqn,x); % find pi xdouble = double(sol); xdouble(xdouble<0) = []; cnew1 = sum(sqrt(xdouble(1).^2 + theta)) - n.*xdouble(1) cnew2 = sum(sqrt(xdouble(2).^2 + theta)) - n.*xdouble(2)
运行结果:
cnew1 = 10.5373 cnew2 = 10.3343
其中第二个是有效解,想了解为何Matlab会生成第一个无效的正解?
内容的提问来源于stack exchange,提问作者hafezmg48
相关产品推荐
相关产品推荐

