next up previous
Next: 5.19 極限 Up: 5. 簡単な文法 Previous: 5.17 級数

5.18 方程式を解く

Solve[], NSolve[] という二つの手続きがあります。

Solve[左辺==右辺,未知数] は式変形で解きます。

 Solve[x^2+3x+2==0, x]
 Solve[{x+y+z==6, 2x-y+z==5,-3x+y+2z==0},{x,y,z}]

Mathematica は $2$ 次方程式だけでなく、$3$ 次方程式、$4$ 次方程式の根 の公式も覚えていて解くことが出来ますが、 やってみれば分かるように、結果は分かりにくくなることが多いです。 どの程度の値なのか知りたい場合、 つまり近似値でよければ直後に % // N あるいは N[%, 50] のように入力すれば求められます。

  Solve[x^3+2x^2+3x+4==0, x]
  % // N                              直前の結果を小数で
  N[%%, 50]                           二つ前の結果を 50 桁の小数で

文字を係数に含む方程式も解くことが出来ます。
Solve[a x + b ==0, x]
Reduce[a x + b ==0, x] ちゃんと場合わけをする

もっとも、特別簡単なものを除けば、 方程式は式変形のみで解くことは難しいです (できないことが多い)。 そういう場合は、近似値を求めることで我慢することにすれば、 NSolve[], FindRoot[] などの関数が利用できます。
NSolve[x3+2x2+3x+4==0, x, 40]


next up previous
Next: 5.19 極限 Up: 5. 簡単な文法 Previous: 5.17 級数
Masashi Katsurada
平成13年8月1日