複素数 編集

まず、問題文の定義を入力する。

(%i1) declare([a,b,r],real,z,complex);
(%o1)                                done
(%i2) z[1]:5+6*%i;
(%o2)                              6 %i + 5
(%i3) z[2]:3+2*%i;
(%o3)                              2 %i + 3
(%i4) alpha:a+b*%i;
(%o4)                              %i b + a
(%i5) eq1(z):=abs(z-alpha)=r;
(%o5)                    eq1(z) := abs(z - alpha) = r

まず、eq1はabsが面倒なのでまず両辺自乗する。

(%i6) eq2(z):=eq1(z)^2;
                                            2
(%o6)                          eq2(z) := eq1 (z)

複素数zの集合は円周にである。通る3点で円は一意に決まるので、3点を代入して、

(%i7) eq3:eq2(z[1]);
                                  2          2    2
(%o7)                      (6 - b)  + (5 - a)  = r
(%i8) eq4:eq2(z[2]);
                                  2          2    2
(%o8)                      (2 - b)  + (3 - a)  = r
(%i9) eq5:eq2(%i);
                                     2    2    2
(%o9)                         (1 - b)  + a  = r

a,b,rの解を求めれば良い。

(%i10) solve([eq3,eq4,eq5],[a,b,r]);
(%o10)         [[a = 0, b = 6, r = 5], [a = 0, b = 6, r = - 5]]

r>0のはずなので解は、

(%i11) %o10[1];
(%o11)                       [a = 0, b = 6, r = 5]

である。とあっさり方程式を解かれては面白くないので、検算がてらに、自分で方程式を解いてみる。eq3,4,5式からr^2を消して2変数にする。

(%i12) eq6:rat(eq3-eq5);
(%o12)/R/                   - 10 b - 10 a + 60 = 0
(%i13) eq7:rat(eq4-eq5);
(%o13)/R/                    - 2 b - 6 a + 12 = 0

さらに、bを消して

(%i14) rat(eq6-5*eq7);
(%o14)/R/                          20 a = 0
(%i15) %/20;
(%o15)/R/                            a = 0

eq7にこれを代入する。

(%i16) ratsubst(0,a,eq7);
(%o16)                           12 - 2 b = 0
(%i17) rat((%-12)/(-2));
(%o17)/R/                            b = 6
(%i18) subst([a=0,b=6],eq5);
                                          2
(%o18)                              25 = r
(%i19) sqrt(%);
(%o19)                               5 = r

よって、Maximaの解いた答えは正しかった。

解答 α=6i, r=5

注意:(%i5),(%i6)で関数に方程式を代入するという変な事をしているのは、初めにeq1:abs(z-alpha)=r;で定義すると、zを代入した後、realpart(5+4*%i)などが計算されないという変なバグにぶちあたってしまったがためである。うまい宣言があると言う方は是非、この解答を書き換えて欲しい。

三角関数・双曲線関数 編集

まず問題文の関数を代入する。簡略表機のため の代りにxを用いている。

(%i1) f1:sin(%pi/2-x)*sin(x)/(sin(%pi/2-x+alpha)*sin(alpha));
				 cos(x) sin(x)
(%o1) 			   -------------------------
			   sin(alpha) cos(x - alpha)

すでに、かなり簡略化が行われ見やすくなっている。最高値を探すため、微分して0となる点を求める事にする。その前に展開を行った方が後で方程式が解きやすくなる。

(%i2) trigexpand(%);
				cos(x) sin(x)
(%o2) 	      --------------------------------------------------
	      sin(alpha) (sin(alpha) sin(x) + cos(alpha) cos(x))

(%i3) diff(%,x);
				2
			     sin (x)
(%o3) - --------------------------------------------------
	sin(alpha) (sin(alpha) sin(x) + cos(alpha) cos(x))
			   2
			cos (x)
 + --------------------------------------------------
   sin(alpha) (sin(alpha) sin(x) + cos(alpha) cos(x))
   cos(x) sin(x) (sin(alpha) cos(x) - cos(alpha) sin(x))
 - -----------------------------------------------------
						       2
    sin(alpha) (sin(alpha) sin(x) + cos(alpha) cos(x)) 

乱雑であるが、試しに解いてみる。

(%i4) solve(%,x);
				       1/3	       1/3
		 (sqrt(3) %i cos(alpha)	   - cos(alpha)	  ) cos(x)
(%o4) [sin(x) = -------------------------------------------------, 
					      1/3
				  2 sin(alpha)
				 1/3		 1/3
	   (sqrt(3) %i cos(alpha)    + cos(alpha)   ) cos(x)
sin(x) = - -------------------------------------------------, 
					1/3
			    2 sin(alpha)
		   1/3
	 cos(alpha)    cos(x)
sin(x) = --------------------]
		      1/3
	    sin(alpha)

解けた!最後の実数解が本題の答えである。これをさらに簡略化していく。

(%i5) %o4[3]/cos(x);
					       1/3
			    sin(x)   cos(alpha)
(%o5) 			    ------ = -------------
			    cos(x)	       1/3
				     sin(alpha)
(%i6) trigreduce(%);
					       1/3
(%o6) 			    tan(x) = cot(alpha)
(%i7) x=atan(rhs(%o9));
					     1/3
(%o7) 			    x = atan(cot(alpha)   )

が解である。途中方程式を強引に解いてしまったが、

(%i8) factor(%o3);
				   3		        3
		     sin(alpha) sin (x) - cos(alpha) cos (x)
(%o8) 	     - ---------------------------------------------------
								 2
	       sin(alpha) (sin(alpha) sin(x) + cos(alpha) cos(x))

のように、比較的簡単な三次式であった。

解答: