トップ 差分 一覧 ソース 検索 ヘルプ RSS ログイン

tips-maxima-ren

  Maxima(Tips-maxima)で連立方程式を解く

連立1次方程式(2点間の直線)を求める

2x+y=3
x+3y=4
 
に対しては

solve( [2*x+y=3, x+3*y=4], [x,y] );

より解

x=1,y=1

例 (7.3,35),(21.3,105)を通る直線を求める

(%i6) solve( [7.3*a+b=35,21.3*a+b=105],[a,b]);
rat: replaced 7.3 by 73/10 = 7.3
rat: replaced 21.3 by 213/10 = 21.3
                                             3
(%o6)                         [[a = 5, b = - -]]
                                             2

連立方程式

多変数の連立方程式についても

solve( [/*方程式1*/, /*方程式2*/, ...] , [/*変数1*/, /*変数2*/, ...] ])

として解くことができます。
例えば、
放物線 y=ax2+bx+c
と
直線  y=gx+h
の交点は連立方程式
y=ax2+bx+cy=gx+h
の解として求めることができますが、これをMaximaで解くには

solve( [y=a*x^2+b*x+c, y=g*x+h], [x,y] );

と入力します。

同様に、
円周 x^2+y^2=c^2
と
直線 y=ax+b
の交点は

solve( [x^2+y^2=c^2, y=a*x+b], [x,y] );

からその答えを求めることができる。

平面を求める

一直線上にない3点 (a,b,c) (d,e,f) (g,h,i) を通る平面の方程式を求める

まず求める平面の方程式を
    Ax + By + Cz + D = 0 …(1)
と置きます。

この方程式は上の3点を通るので
    Aa + Bb + Cc + D = 0 …(2)
    Ad + Be + Cf + D = 0 …(3)
    Ag + Bh + Ci + D = 0 …(4)
の3条件を満たす条件を求める

3点を通る円を求める

中心(a,b)(a,b),半径rの円は
(x−a)^2 + (y−b)^2 = r^2
という方程式を満たす(x,y)で与えられます.

3つの未知数(パラメータ)

a(中心のx座標)
b(中心のy座標)
r(円の半径r)
3つの方程式が必要です.したがって,円の通る3点
A(x1,y1), B(x2,y2), C(x3,y3)
の3つを与えれば円の方程式を決定することができます.
半径
r^2 = (x0-x1)^2 +(y0-y1)^2
    = (x0-x2)^2 +(y0-y2)^2 
    = (x0-x3)^2 +(y0-y3)^2 ・・・・(1)式
これを連立方程式として扱って解くと、
y0 =(x1-x2)*x0/(y2-y1)+(x2^2-x1^2)/(2*(y2-y1))+(y2+y1)/2
   =(x2-x3)*x0/(y3-y2)+(x3^2-x2^2)/(2*(y3-y2))+(y3+y2)/2
   =(x3-x1)*x0/(y1-y3)+(x1^2-x3^2)/(2*(y1-y3))+(y1+y3)/2 ・・・・(2)式
更に解くと、
x0=((x3^2-x1^2)*(y3-y2)+(x2^2-x3^2)*(y3-y1)+(y1-y2)*(y3-y1)*(y3-y2))/(((x2-x3)*(y3-y1)+(x3-x1)*(y3-y2))*2)
となります。

Tips