【发布时间】:2014-02-12 15:59:34
【问题描述】:
我正在尝试在 for 循环中求解四个代数方程。它发出警告“可能是虚假的解决方案”。你能帮我弄清楚如何删除它。附上代码。
a=[1.78E-05 3.39E-04 0.0104 -0.05791 -16.36];
for i=1:R/l0
syms x y l r
[sol_l,sol_r,sol_x,sol_y] = solve(l == (sqrt((x-x0)^2+(y-y0)^2)), r == abs((x+x0)/2),...
poly2sym(a) == y, l*r*t == l0*r0*t0,x,y,l,r, 'Real', true);
for j=1:length(sol_x)
if (sol_x(j)<0)&&(sol_x(j)>x0)
if (sol_y(j)<0)&&(sol_y(j)<y0)
x_req(1,i) = sol_x(j);
y_req(1,i) = sol_y(j);
end
end
end
x0 = x_req(1,i);
y0 = y_req(1,i);
r0 = R-l0*(2*i-1)/2;
end
【问题讨论】:
-
这是什么语言?请相应地标记
-
为什么
solve在for循环内?其中没有任何内容取决于i。您也不需要显示所有代码来演示问题,编辑您的问题以去除所有不相关的部分。 -
对于每个 i,x0、y0 和 r0 的值都在变化。所以每次迭代后解决方案都会改变。
-
我看到并纠正了。您仍然可以在没有所有额外代码的情况下演示该问题,从而简化和澄清您的问题。这些解决方案实际上是虚假的吗?你检查过它们吗?还是您的问题仅仅是如何禁用警告消息?
-
有些解决方案是假的
标签: matlab warnings solution polynomial-math symbolic-math