next up previous
Next: 極限 Up: 簡単な文法 電卓的な使用のために Previous: 級数

方程式を解く

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[x^3+2x^2+3x+4==0, x, 40]



Masashi Katsurada 平成11年7月8日