Mapleトップページ
サポート・マニュアル

代数方程式

代数方程式の解き方

Maple で代数方程式を解くには solve コマンド、もしくは fsolve コマンドを使用します。
solve, fsolve コマンドは次のように使用します。

> solve(方程式 , 解く変数);

> fsolve(方程式 , 解く変数);

> eq1 := 3*x^2 + 8*x + 4;

eq1 := 3 x2 + 8 x + 4

> solve(eq1, x);

> fsolve(eq1, x);

-2.000000000, -0.6666666667

以上から解るように、solve コマンドは厳密解を求め、fsolve コマンドは近似解を求めます。
しかし次のように式に小数点数が含まれる場合は solve コマンドを使用しても近似解を返します。

> eq2 := 3*x^2 + 8*x + 4.0;

eq2 := 3 x2 + 8 x + 4.0

> solve(eq2, x);

-0.6666666667, -2.

方程式に未知の変数が含まれている場合は、fsolve コマンドで解く事はできませんので、ご注意ください。

> eq3 := a*x^2 + 4*x + 3;

eq3 := a x2 + 4 x + 3

> solve(eq3, x);

> fsolve(eq3, x);

Error, (in fsolve) a is in the equation, and is not solved for

連立方程式の解き方

solve,fsolve コマンドでは連立方程式を解くことも可能です。
連立方程式を解く場合は引数の部分に集合 { } を使用して入力を行います。

> eq4 := 4*x + 2*y = 4;
eq5 := 2*x + 3*y = 3;

eq4 := 4 x + 2 y = 4
eq5 := 2 x + 3 y = 3

> solve({eq4, eq5}, {x,y});

> fsolve({eq4, eq5}, {x,y});

{x=0.7500000000, y=0.5000000000}

方程式の解に複素数が含まれる場合、solve コマンドはそのまま解くことができますが、fsolve コマンドは実数の解を求めるコマンドとなり何も返しません。

> eq6 := 2*x^2 + 1;

eq6 := 2 x2 + 1

> solve(eq6, x);

> fsolve(eq6, x);

このような場合は 3 つ目の引数に complex と指定することで解を求めることができます。

> fsolve(eq6, x, complex);

-0.7071067812 i, 0.7071067812 i

一般的に 5 次以上の代数方程式には明示的な解は存在しないと言われています。
solve コマンドで明示的な解を求めることが出来ない場合は、RootOf という方程式の根を含む形式で解を返します。

> eq7 := 2*x^5+3*x^4-3*x^3-5*x^2+6*x+1;

eq7 := 2 x5 + 3 x4 - 3 x3 - 5 x2 + 6 x + 1

> sol := solve(eq7, x);

sol := RootOf (2 _Z5 + 3 _Z4 - 3 _Z3 - 5 _Z2 + 6 _Z + 1, index=1),
RootOf (2 _Z5 + 3 _Z4 - 3 _Z3 - 5 _Z2 + 6 _Z + 1, index=2),
RootOf (2 _Z5 + 3 _Z4 - 3 _Z3 - 5 _Z2 + 6 _Z + 1, index=3),
RootOf (2 _Z5 + 3 _Z4 - 3 _Z3 - 5 _Z2 + 6 _Z + 1, index=4),
RootOf (2 _Z5 + 3 _Z4 - 3 _Z3 - 5 _Z2 + 6 _Z + 1, index=5)

RootOf で表される解は evalf コマンドを使用して近似解を求めることができます。

> evalf(sol);

0.9202804270 + 0.4821951740 i, -1.595349842 + 0.7387653087 i,
-0.1498611705, -1.595349842 - 0.7387653087 i,
0.9202804270 - 0.4821951740 i



お問い合わせ サイバネットシステム株式会社 システムCAE事業部
TEL: 03-5297-3299 (受付時間 9:00〜12:00 / 13:00〜17:30 ※土日祝及び弊社休業日を除く)
メールでのお問い合わせ  お問い合わせフォーム  お問い合わせ一覧

モデルベース開発