|
3.4.4 連立方程式
Solveを使い連立方程式が解ける.方程式はリスト形式で与える. Solveは,非常に多くの連立多項方程式について明示的な解を見出すことができる.
未知数を2つ持つ簡単な線形連立方程式を解いてみる.
In[1]:= Solve[ { a x + b y == 1, x - y == 2 } , {x, y} ]
Out[1]= 
もっと複雑な式を解いてみる.得られる解は複数あり,リスト形式で出力され る.それぞれの解は,変数についての変換規則として与えられる.
In[2]:= Solve[{x^2 + y^2 == 1, x + y == a}, {x, y}]
Out[2]= 
解のリストに置換記号 /.を使うこともできる.
In[3]:= x^3 + y^4 /. % /. a -> 0.7
Out[3]= 
Solveで明示的な解が求まらないときでも,多くの場合,連立方程式を「ほどく」ことは可能であり, Rootを使いシンボル的に解を表せる.
In[4]:= First[ Solve[{x^2 + y^3 == x y, x + y + x y == 1}, {x, y}] ]
Out[4]= 
Nを適用し,数値近似的な解を得る.
In[5]:= N[ % ]
Out[5]= 
Solveの対象にする式の指定で,使う変数は単一の代数記号である必要はない.例えば,連立方程式をたくさん設けるとき,便宜のため, a[i]のような変数を使ってもよい.
a[i]を変数とした方程式を3つ作っておく.
In[6]:= Table[ 2 a[i] + a[i-1] == a[i+1], {i, 3} ]
Out[6]= 
a[i]のうちのいくつかを未知数として,この連立方程式を解かせる.
In[7]:= Solve[ % , {a[1], a[2], a[3]} ]
Out[7]= 

連立方程式の解法
何について解くのか Solveに指定しないと,方程式に含まれるすべての変数について解法が試される.
In[8]:= Solve[ { x + y == 1, x - 3 y == 2 } ]
Out[8]= 

Solveへの連立方程式の与え方
行列とベクトルで連立方程式を構成したければ,リスト形式を使う.
In[9]:= {{3,1},{2,-5}}.{x,y}=={7,8}
Out[9]= 
Solveはリストで表現された方程式を解のリスト,つまり等式のリストで返す.
In[10]:= Solve[%, {x, y}]
Out[10]= 
LogicalExpandを使い,リストで表現された方程式を明示的な方程式のリストに変換できる.
In[11]:= LogicalExpand[%%]
Out[11]= 
計算の種類によっては明示的な式の代りに係数の配列を使うとよいことがある.そのような配列はCoefficientArraysを使って方程式から構築できる.
|