Mathematica中怎么样直接引用Solve函数的结果?
Solve[x + 1 == 0]
输出
{{x -> -1}
怎样可以直接引用”-1“这个结果?此时如果我输入x,输出还是x,而不是-1。我现在都是Ctrl+c Ctrl+v 来用输出的结果,太麻烦了。怎么把输出结果赋给一个变量?如果输入
y=Solve[x + 1 == 0]是不行的,输出是y={{x -> -1},而不是y=-1。y={{x -> -1}不能直接参加接下来的运算。 展开
由于Mathematica把方程的解表示为嵌套列表,因此不能把它作为其它数学结构的输入,但是有两种方法可以调用其中的值,而不必采用照抄或粘贴的方法.
(a)如果希望利用由Solve得到的解计算表达式的值,可以利用取代运算符/. ,这样Mathematica就会自动带入相应的值.
(b)由于解就是列表,因此可以用Part或[[]]从列表中“提取”解.
在下面两个例子中演示这些方法的使用.
假设要计算下述方程所有根的平方和:
x^6-21x^5+175x^4-735x^3+1624x^2-1764x+720=0
为此,先利用Solve命令求解出方程的所有根.
solutions=Solve[x^6-21x^5+175x^4-735x^3+1624x^2-1764x+720==0]
{{x→1},{x→2},{x→3},{x→4},{x→5},{x→6}}
仔细查看solutions, 可知它是包含子列表的列表. 先看第一部分.
solutions[[1]]
{x→1}
由于这个列表只有一部分, 我们可以提取它的内容.
solutions[[1,1]]
x→1
为了得到这个表达式的第二个部分(箭头后面的数), 我们进一步地提取:
solutions[[1,1,2]]
1
为了理解为什么会这样, 我们查看一下x→1的结构.
FullForm[x→1]
Rule[x,1]
就等价于Rule[x,1], 从而可以用solutions[[1,1,2]]提取出它的第二个参数. 类似地, 其它解也可用solutions[[2,1,2]], solutions[[3,1,2]]等表达式提取出来. 为了得到它们的平方和, 输入
Sum[solutions[[k,1,2]]^2,{k,1,6}]
91