式に含まれる変数に一時的に値を代入して式の値を求めたい場合は、 置換演算子 /. (スラッシュ・ドットと読む) を用いて、
具体的には、例えば
一時的な代入 (1) | ||||||||||
|
一時的な代入 (2) | ||||||
|
方程式の解を代入してチェックする | ||||||||||||
|
(なお、Mathematica は細かい部分でバージョンにより動作が異なり、 以前は sol のような置き換え規則に ComplexExpand[] を施しても何もしてくれませんでした。)
一方、 の解を x1, x2 とおくには、
sol=Solve[x^2-3x+2==0,x] {x1,x2}=x /. sol |
もう少し複雑な 3 次方程式の根 (結果はかなり複雑) のチェックをしてみましょう。
3次方程式を解いて、解であるか確かめる |
f[x_]:=x^3+2x^2+3x+4 sol=Solve[f[x]==0,x] f[x] /. sol → すごいことになるが Simplify[%] → 納得するはず ComplexExpand[sol] または ComplexExpand[x /. sol] → うーん… (訳が分からない!?) N[sol] → 近似値を見ると複素平面上で大体どの辺にあるか分かります Remove[x,f,sol] |
解けたらしいけれど、簡単な答を教えてくれない…どうしてでしょう??
(2019/11/2 追記: Mathematica 11.x では、3次方程式を Solve[] で解くと、 Cardano の公式を適用した結果を表示してくれたのですが、 Mathematica 12 ではそれはやらなくなりました。 ちょっと残念。 Solve[f[x]==0,x,Cubics->True] とするのかな。)