第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 + y 2 = 13 練習 次の連立方程式を解け。 3y + 3z − 2w x + y + 2z + 3w x + 2y + 3z + 2w x + 3y + 4z + 2w x + 2y + 3z = −4 =2 =1 = −1 , 2x + y + 3z −2x + 3y + z =4 =0 =1 x − y 3x − y + z 2x − y + 2z y − z x + 2y − 2z + s + 3t = −2 = −2 = −1 , =1 =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) sin x = 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 f (f (x)) 2 と関数の合成をすれば良い. これを繰り返して, 足し合わせていくと, その極限関数と して, 連続関数だがすべての点で微分不可能な関数 (高木関数) ができる. 以下の操作 は高木関数を構成している. 命令を解釈してください. 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 年度千葉大学後期問題]
© Copyright 2024 Paperzz