level 2
Solve[{-1.17*10^-4*(202.2 - a + 3.52/1.17*(a - w)) ==
0.7887*0.517*10^-7*w + ((1 - 0.7887)*0.517*a)/(
101.3 + a), -0.37*10^-4*(202.2 - a + 1.11/0.37*(a - w)) == ((1 -
0.7887)*0.517*a)/(101.3 + a)}]
Solve[{-1.17*10^-4*(202.2 - a + 3.52/1.17*(a - w)) ==
0.7887*0.517*10^-7*w + ((1 - 0.7887)*0.517*a)/(
101.3 + a), -0.37*10^-4*(202.2 - a + 1.11/0.37*(a - w)) == ((1 -
0.7887)*0.517*a)/(101.3 + a)}, {w, a}]
2017年04月13日 07点04分
4
吧务
level 15
……有意思。第一段代码的输出是错的,这个回代检验一下就能明白。这个行为算是意料之外情理之中吧。
其实,Solve/NSolve的这个单变量语法(即不在末尾明确指定未知变量的语法),在自带帮助里面是没有提的,它的存在可能是为了容错,也可能是某种尚未公开的让Solve/NSolve变得更强劲的尝试,总之,一个文档里没写的用法,会出问题并不算太意外。(虽然对于本例,确实有点意外,直觉上就算解不出来,也不该给出错误的结果。)
要让Solve在不指定变量的情况下找到正确答案,可以Rationalize:
Solve[Rationalize[{-((1.17 (202.2 - a + (3.52 (a - w))/1.17))/10^4) == (0.7887 0.517 w)/
10^7 + ((1 - 0.7887) 0.517 a)/(101.3 + a), -((
0.37 (202.2 - a + (1.11 (a - w))/0.37))/10^4) == ((1 - 0.7887) 0.517 a)/(
101.3 + a)}, 0]] // N
最后,Solve/NSolve的这个单变量语法你们是从哪里学来的?这个月使用了这个隐藏语法的帖子的数目已经达到了一个诡异的程度,还有那满世界的For……感觉像是有一批人被同一本教材给带歪了。
2017年05月06日 08点05分
5
那那本教材可是害人不浅
2017年05月06日 14点05分
@Alexander0620 单变量语法是我无意中(弄丢了)情况下得到的,有时候会和指定变量得出一样的结果,有时候不是,还有时候是指定变量会解出一个带有虚部的结果(很小的虚部0.....),然而单变量却没有虚部。谢谢吧主大神的解答
2017年06月05日 12点06分
@xzcyr 既然文档里有这个用法,楼主的情况是怎么回事
2017年07月01日 09点07分