solve函数报错的问题
mathematica吧
全部回复
仅看楼主
level 6
衣雪散风 楼主
f = 0.05;
z1 = 0.64;
Solve[f^2/((f^2*z1^2/(z1^2 + (x - f)^2)) + ((z1^2 + (x - f)^2)*(x - f)^2/f^2)) == 69998, x]
虽然能给出结果,但还是会提示:
Solve was unable to solve the system with inexact coefficients. The answer was obtained by solving a corresponding exact system and numericizing the result.
另外,我试了下1/f^2,得到的是一个近似值而不是准确值,这个要怎么解决呢
2022年08月10日 14点08分 1
level 9
手头没法验证我的想法;mma的逻辑是先算方程再带入set过的参数,在解方程时没法解参数带字母的,所以只好直接带入f和z1进行数值近似求解了。
还有那个1/f~2近似值,可以用把小数全都换成分数解决。有一个小数就默认近似了。
2022年08月11日 02点08分 2
(1)说反了,MMA是把系数改成了符号,然后求符号解,再把系数代回数值的。(2)用分数的做法是正确的。
2022年08月11日 06点08分
@asdasd1dsadsa [小乖]抱歉我可能没表达清楚,不过我想表达的意思和您一样[呵呵]
2022年08月11日 06点08分
@asdasd1dsadsa 谢谢解答!
2022年08月11日 06点08分
@asdasd1dsadsa 再打扰您一下,我又随便写了一个进行trace,为什么从这看是先代入数值再进行解方程的? a = 2;Solve[a x + 1 == 0, x] // Trace 而之前的方程我把数值改成分数就不报提示了,想再请教一下
2022年08月11日 08点08分
1