第2回 方程式を解く
• solve コマンド
solve( {式}, {未知数} ) が基本形です。方程式の数式解を出力します。
複数の式、複数の未知数によって連立方程式も解けます。例題および ?solve も 参考にしてください。
• evalコマンド
eval は評価する式と評価する点の二つのパラメータを持ちます。検算、条件下 での値の評価などに使います。
soln:=solve({x+2*y=3, y+1/x=1}, {x, y});
eval(x+2*y, soln[1]);
eval({x+2*y, y+1/x}, soln[2]);
• unapply コマンド
unapply コマンドによって、式を関数に変えることができます。
x+3*y;
f:=unapply(%,x,y);
f(1,3);
練習次の方程式の解を求め、かつそれが解であることを確かめよ。
(1) x3+ 4x2−3x−1 = 0
(2) x+ 2y= 3, 3x2−2xy+y2 = 13 練習次の連立方程式を解け。
3y+ 3z−2w =−4 x+y+ 2z+ 3w = 2 x+ 2y+ 3z+ 2w = 1 x+ 3y+ 4z+ 2w =−1
,
x+ 2y+ 3z = 4 2x+y+ 3z = 0
−2x+ 3y+z = 1
x−y =−2
3x−y+z =−2 2x−y+ 2z =−1
y−z = 1
,
x+ 2y−2z+s+ 3t = 2 2x+y+ 2z+t = 3
−2x−3y+ 2z−s+ 2t = 1
• RootOf
solve を用いて5次方程式などを解くと RootOf の表示が現れます。これは、
その方程式の解であると、言っているだけで、実際の数値は、近似的にしか求 められません。
solve({x^5-2*x+3=0}, {x});
allvalues(%);
• fsolveコマンド
solve コマンドと異なり、数値解を求めます。基本的には、一つの実数解を返
します。多項式については、すべての実数解を返します。
• isolve コマンド
整数解を求める命令です。
• msolveコマンド
mod n の意味での整数解を求める命令です。nの指定が必要です。
• modの計算
msolve コマンドに関連して、剰余類の計算は mod を用います。 ?mod も参
考にしてください。
mod(12,7);
12 mod 7;
練習
(1) sinx= 0.7の解を5個求めよ.
(2) 13x+ 7y= 1 となる整数解を求めよ.
(3) 17を法として 5,52,53,· · · ,520 を求めよ.
(4) 17を法として 5x= 1 となる整数xを求めよ.
補充問題 尖がった一山の関数を
f(x) =
(2x 0≤x≤1/2
2−2x 1/2≤x≤1 と定義する. 山の真ん中を削って二山の関数にするには
1
2f(f(x))
と関数の合成をすれば良い. これを繰り返して,足し合わせていくと,その極限関数と して, 連続関数だがすべての点で微分不可能な関数(高木関数)ができる. 以下の操作 は高木関数を構成している. 命令を解釈してください.
restart:
f := x -> 1 - abs(2*x-1):
fns := [ seq(f@@n / 2^n, n=1..10) ]:
plot( fns[1..4], 0..1, scaling=constrained);
plot( add(a, a=fns), 0..1, scaling=constrained);
以下の問題についてMaple を用いて考察して見よ.
多項式 f1 を f1(x) = x2−2 と定め
fn+1(x) =fn(x2−2) (n= 1,2,3, . . .)
によって f2, f3, . . . を順次定めていく. 実数aが −2 < a <2 をみたすとき, 方程式 fn(x) =a は相異なる実数解をちょうど 2n 個もち, いずれの解も −2< x < 2 の範 囲にあることを示せ.
[2004年度千葉大学後期問題]