: Maxima数学II自習教材開発
教材の概要
4 三角関数 2)加法定理
 6.三角関数の加法定理
 7.加法定理の応用
 402.補充問題・章末問題

Maxima数学II自習教材試行報告用紙(Word)
Maxima数学II自習教材試行報告用紙(PDF)

: 教材の概要

活動時間 
 自宅での予習か授業初めの5分程度
活動概要
 1 タブレット等を用いてトライ
  1) 教科書の該当ページを開く
  2) このWebページを開く
  3) Maxima on lineのWebページを開く
  4) 該当コマンドをMaximaOnLineにコピペして、実行
 2 自分なりの感触、着想
  1) 自分なりに、実行結果を見て、気づいたり感じたりすることがないか、考えてみる。
  2) ワークシートに、考えてみたこと(意見・質問・感じたこと)を書く
  3) ワークシートを、事前に提出する場合は、課題提出フォームを使うこと。
 3 問題の雰囲気を2で感じてから、授業へ
  1) 班活動などで自分の考えを仲間に伝える
  2) 仲間の考えを受け止める
  3) 筋が通って、見通しのよい解法、数学的な論点をうまく処理した解法をまとめる


参照テキスト
 数研出版新編数学II

:   6.三角関数の加法定理
   A. 正弦・余弦の加法定理
◆コマンド番号601
●プトレマイオス(トレミー)の定理
●●●●●●●●●●●●●●●●
kill(all) /**/$
(ordergreat(X,Y,Z,x,y,z,A,B,C,a,b,c) /* "できるだけ、X,Y,Z,x,y,z,A,B,C,a,b,cの順で"*/,
MONDAI:"・準備 101 円に内接する四角形ABCDにおいて、対角線ACが円の直径、∠BAC=a,∠CAD=bのとき、プトレマイオスの定理によりsin(a+b)=sin(a)*cos(b)+cos(a)*sin(b)"/**/,
KOUSATU:"直径の上の円周角は直角で、正弦定理により、・・・"/**/)$
(KANSUU:"", gr(T,c,l,pP,pK,xm,xM,ym,yM):=block(
/**/wxdraw2d(
/*....*/title =T, yrange=[ym,yM] /* "タイトルと値域を確認し" */,
/*....*/implicit(c,x,xm,xM,y,ym,yM),
/*....*/color=black,
/*....*/implicit(l,x,xm,xM,y,ym,yM),
/*....*/color=red,point_type =7,
/*....*/points_joined =true,point_size =1,points(pK) /* "点pK(一般的位置)を赤で打って、赤線で結んで" */,
/*....*/color=blue,point_type =6,
/*....*/points_joined =true,point_size =1,points(pP) /* "点pP(b直径の位置)を青で打って、青線で結んで" */,
/*....*/color=black,line_width =1,
/*....*/implicit(y=0,x,xm,xM,y,ym,yM) /* "x軸と" */,
/*....*/implicit(x=0,x,xm,xM,y,ym,yM)) /* "y軸を引く" */
/*....*/),
sind(t):=sin(t/180*%pi),
cosd(t):=cos(t/180*%pi),
tand(t):=tan(t/180*%pi),
asind(sind):=asin(sind)/%pi*180,
acosd(cosd):=acos(cosd)/%pi*180,
atand(tand):=atan(tand)/%pi*180,
dis(p1l,p2l):=float(sqrt((p2l-p1l).(p2l-p1l))),
ang(p1l,p2l,p3l):=float(acosd((dis(p1l,p2l)^2+dis(p2l,p3l)^2-dis(p1l,p3l)^2)/(2*dis(p1l,p2l)*dis(p2l,p3l))))
)$
(TEISUUandKOUSIKI:"",
se:H/sind(K)=2*R /* "正弦定理" */,
ce:H^2=H2^2+H3^2-2*H2*H3*cosd(K) /* "余弦定理" */,
cKe:cosK=(H2^2+H3^2-H^2)/(2*H2*H3) /* "角の余弦の式" */,
Pi:%pi
)$
(TEJUN:"1",
sinA:5*k /* "sinA=5*k、(◆修正部分1)" */,
sinB:7*k /* "sinA=7*k、(◆修正部分1)" */,
sinC:3*k /* "sinA=3*kとして、(◆修正部分1)" */,
la:rhs(solve(subst(sind(K)=sinA,se),H)[1]) /* "a=BCと、" */,
lb:rhs(solve(subst(sind(K)=sinB,se),H)[1]) /* "b=CAと、" */,
lc:rhs(solve(subst(sind(K)=sinC,se),H)[1]) /* "c=ABを確認して、" */,
sL:solve(subst([H=la,H2=lb,H3=lc],ce),K) /* "b,c,aを余弦定理の式に代入して、K(A)について解いて" */,
L:abs(rhs(sL[1])) /* "Aの値を求め" */,
aA:L,numer,
aA1:100,/*(◆修正部分2)*/
vk:rhs(solve(sinA=sind(aA),k)[1]) /* "kの値を求め" */,
lR:1 /* "R=1として" */,
la:float(subst([k=vk,R=lR],la)) /* "aを小数表示して"*/,
lb:float(subst([k=vk,R=lR],lb)) /* "bを小数表示して"*/,
lc:float(subst([k=vk,R=lR],lc)) /* "cを小数表示して"*/,
r:lR /* "R=1として" */,
sL:solve(subst([H=lb,H2=lc,H3=la],ce),K) /* "b,c,aを余弦定理の式に代入して、K(B)について解いて" */,
aB:abs(rhs(sL[1])),numer /* "Bの値を求め" */,
aC:180-aA-aB /* "Cを求めて" */
)$
(kakunin:"グラフを書いて、視覚的に確認",
c:x^2+y^2=r^2,
T:"D/EC/AB" /* "" */,
aK:aC,aK2:aA,aK3:aB,lH:lc,lH2:la,lH3:lb,
zP:[r*cosd(270+aK+2*aK2),r*sind(270+aK+2*aK2)],zP2:[r*cosd(270-aK),r*sind(270-aK)],zP3:[r*cosd(270+aK),r*sind(270+aK)],zP4:[r*cosd(270+aK+2*aA1),r*sind(270+aK+2*aA1)],
zP5:zP4+(zP3-zP4)/dis(zP3,zP4)*dis(zP,zP4)*dis(zP2,zP3)/dis(zP,zP2),
pK:[zP2,zP3,zP,zP2,zP4,zP,zP5,zP4,zP3],
pP:[zP2,zP3],
yL:fix(r/2+1)*2,xL:yL/2*3,
gr(T,c,x=0,pP,pK,-xL,xL,-yL,yL) /* "グラフ出力すると" */
)$
(TEJUN: "2",
KATEI:["∠ACB=∠DCE","となるように、対角線DB上に点Eを取る。(DE=DC*AB/CA)",ang(zP2,zP,zP3),ang(zP4,zP,zP5),"...仮定"],print(KATEI),
ev1:["∠CAB=∠CDE","(弧BC上の円周角)",ang(zP,zP2,zP3),ang(zP,zP4,zP5),"...(1)"],print(ev1),
cc1:["△CAB∽△CDE", "(仮定,(1))"],print(cc1),
dd2:["CA:AB=CD:DE","CA*DE=AB*CD",dis(zP,zP2)*dis(zP4,zP5),dis(zP2,zP3)*dis(zP,zP4),"...(3)"],print(dd2),
ev21:["∠DCA=∠ECB","(仮定)...(4)"],print(ev21),
ev22:["∠CAD=∠CBE","(弧CD上の円周角)",ang(zP,zP2,zP4),ang(zP,zP3,zP5),"...(5)"],print(ev22),
cc2:["△CDA∽△CEB", "((4)(5))"],print(cc2),
dd31:["CA:AD=CB:BE","CA*BE=AD*CB",dis(zP,zP2)*dis(zP3,zP5),dis(zP2,zP4)*dis(zP,zP3),"...(6)"],print(dd31),
dd32:["CA*DE+CA*BE=AB*CD+AD*CB","((3),(6))"],print(dd32),
cc3:["AC*BD=AB*CD+BC*DA","結論",dis(zP2,zP)*dis(zP3,zP4),dis(zP2,zP3)*dis(zP,zP4)+dis(zP2,zP4)*dis(zP,zP3)],print(cc3),
ansl:[cc1[1],cc2[1],"により",cc3]
)$
(KAITOU:ansl/*解答*//**/,
SUJIMITI:"最小辺の対角での相似回転を見通し、対角線BD上に点Eを、∠CAD=∠BAEとなるようにとると、2組の三角形(    ,    )が相似となり、・・・"/**/,
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)")$

(print(MONDAI),
print(SUJIMITI),
print(KAITOU),
print(FURIKAERI))$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
sinA:6*k /* "sinA=5*k、(◆修正部分1)" */,
sinB:7*k /* "sinA=7*k、(◆修正部分1)" */,
sinC:3*k /* "sinA=3*kとして、(◆修正部分1)" */,
aA1:110,/*度数(◆修正部分2)*/


◆コマンド番号602
●正弦・余弦の加法定理
●●●●●●●●●●●●●●●●
kill(all) /**/$
(MONDAI:"・準備 602 直径1の円に内接する四角形ABCDにおいて、対角線ACを直径、∠BAC=a、∠CAD=bのとき、/*(◆修正部分1)*/
プトレマイオスの定理によりsin(a+b)=sin(a)*cos(b)+cos(a)*sin(b)を示せ。"/*(◆修正部分1)*/,
KOUSATU:"直径の上に立つ円周角は直角だから、各辺と対角線を三角関数で表すと、・・・"/**/)$
(KANSUU:"", gr(T,c,l,pP,pK,xm,xM,ym,yM):=block(
/**/wxdraw2d(
/*....*/title =T, yrange=[ym,yM] /* "タイトルと値域を確認し" */,
/*....*/implicit(c,x,xm,xM,y,ym,yM),
/*....*/color=black,
/*....*/implicit(l,x,xm,xM,y,ym,yM),
/*....*/color=red,point_type =7,
/*....*/points_joined =true,point_size =1,points(pK) /* "点pK(一般的位置)を赤で打って、赤線で結んで" */,
/*....*/color=blue,point_type =6,
/*....*/points_joined =true,point_size =1,points(pP) /* "点pP(底辺の位置)を青で打って、青線で結んで" */,
/*....*/color=black,line_width =1,
/*....*/implicit(y=0,x,xm,xM,y,ym,yM),implicit(x=0,x,xm,xM,y,ym,yM)) /* "x,y軸を引く" */),
dis(p1l,p2l):=float(sqrt((p2l-p1l).(p2l-p1l))),
ang(p1l,p2l,p3l):=float(acos((dis(p1l,p2l)^2+dis(p2l,p3l)^2-dis(p1l,p3l)^2)/(2*dis(p1l,p2l)*dis(p2l,p3l))))
)$
(TEISUUandKOUSIKI:"",
Pi:%pi,
se:H/sin(K)=2*R /* "正弦定理" */,
ce:H^2=H2^2+H3^2-2*H2*H3*cos(K) /* "余弦定理" */,
cKe:cosK=(H2^2+H3^2-H^2)/(2*H2*H3) /* "角の余弦の式" */
)$
(TEJUN:"1",
sinA:4*k /* "sinA=5*k、" */,
sinB:5*k /* "sinA=7*k、" */,
sinC:3*k /* "sinA=3*kとして、" */,
la:rhs(solve(subst(sin(K)=sinA,se),H)[1]) /* "a=BCと、" */,
lb:rhs(solve(subst(sin(K)=sinB,se),H)[1]) /* "b=CAと、" */,
lc:rhs(solve(subst(sin(K)=sinC,se),H)[1]) /* "c=ABを確認して、" */,
sL:solve(subst([H=la,H2=lb,H3=lc],ce),K) /* "b,c,aを余弦定理の式に代入して、K(aA)について解いて" */,
L:abs(rhs(sL[1])) /* "aAの値を求め" */,
aA:L,numer,
aA1:80/180*Pi,
vk:rhs(solve(sinA=sin(aA),k)[1]) /* "kの値を求め" */,
lR:1/2 /* "R=1として" */,
la:float(subst([k=vk,R=lR],la)) /* "aを小数表示して"*/,
lb:float(subst([k=vk,R=lR],lb)) /* "bを小数表示して"*/,
lc:float(subst([k=vk,R=lR],lc)) /* "cを小数表示して"*/,
r:lR /* "R=1として" */,
sL:solve(subst([H=lb,H2=lc,H3=la],ce),K) /* "b,c,aを余弦定理の式に代入して、K(aB)について解いて" */,
aB:abs(rhs(sL[1])),numer /* "aBの値を求め" */,
aC:Pi-aA-aB /* "aCを求めて" */
)$
(kakunin:"グラフを書いて、視覚的に確認",
c:x^2+y^2=r^2,
T:"DC/AB" /* "" */,
aK:aC,aK2:aA,aK3:aB,lH:lc,lH2:la,lH3:lb,
zP:[r*cos(Pi*3/2+aK+2*aK2),r*sin(Pi*3/2+aK+2*aK2)],zP2:[r*cos(Pi*3/2-aK),r*sin(Pi*3/2-aK)],
zP3:[r*cos(Pi*3/2+aK),r*sin(Pi*3/2+aK)],zP4:[r*cos(Pi*3/2+aK+2*aA1),r*sin(Pi*3/2+aK+2*aA1)],
pK:[zP,zP2,zP4,zP,zP3,zP4],
pP:[zP2,zP3],
yL:r/2*3,xL:yL/2*3,
gr(T,c,x=0,pP,pK,-xL,xL,-yL,yL) /* "グラフ出力すると" */
)$
(TEJUN: "2",
KATEI:["AC=1、∠BAC=a、∠CAD=b","...仮定"],print(KATEI),aB1:float(aA1-aA)/*(◆修正部分2)*/,
ev11:["∠CBA=∠ADC=Pi/2","(仮定、直径の上の円周角は直角)",ang(zP,zP3,zP2),ang(zP2,zP4,zP),"...(1)"],print(ev11)/*(◆修正部分2)*/,
ev12:["AB=cos(a),BC=sin(a),CD=sin(b),DA=cos(b)","(仮定と正弦・余弦の定義)","...(2)"],print(ev12)/*(◆修正部分2)*/,
ev13:["BD=sin(a+b)","(正弦定理)","...(3)"],print(ev13)/*(◆修正部分2)*/,
TEIRI:["AC*BD=AB*CD+BC*DA", "(プトレマイオスの定理)",1*dis(zP3,zP4),/*(◆修正部分2)*/
/**/dis(zP2,zP3)*dis(zP,zP4)+dis(zP3,zP)*dis(zP4,zP2),"...(4)"],print(TEIRI)/*(◆修正部分2)*/,
cc1:["sin(a+b)=cos(a)*sin(b)+sin(a)*cos(b)", "((1)(2)(3)(4))",float(sin(aA+aB1)),cos(aA)*sin(aB1)+sin(aA)*cos(aB1)],print(cc1)/*(◆修正部分2)*/,
cc12:["sin(a+b)=sin(a)*cos(b)+cos(a)*sin(b)","結論"],print(cc12)/*(◆修正部分2)*/,
ansl:[ev12[1],ev13[1],TEIRI[1],"により",cc12]/*(◆修正部分2)*/
)$
(KAITOU:ansl/*解答*//**/,
SUJIMITI:"直径の上に立つ円周角は直角だから、各辺と対角線を三角関数で表すと、BD=(     )・・・"/**/,
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)")$

(print(MONDAI),
print(SUJIMITI),
print(KAITOU),
print(FURIKAERI))$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
(MONDAI:"・準備 602 直径1の円に内接する四角形ABCDにおいて、対角線ACを直径、∠BCA=a、∠CAD=bのとき、/*(◆修正部分1)*/
プトレマイオスの定理によりcos(a-b)=cos(a)*cos(b)+sin(a)*sin(b)を示せ。"/*(◆修正部分1)*/,
KATEI:["AC=1、∠ACB=a、∠CAD=b","...仮定"],print(KATEI),aB1:float(Pi/2-(aA1-aA))/*(◆修正部分2)*/,
ev11:["∠CBA=∠ADC=Pi/2","(仮定、直径の上の円周角は直角)",ang(zP,zP3,zP2),ang(zP2,zP4,zP),"...(1)"],print(ev11)/*(◆修正部分2)*/,
ev12:["AB=sin(a),BC=cos(a),CD=sin(b),DA=cos(b)","(仮定と正弦・余弦の定義)","...(2)"],print(ev12)/*(◆修正部分2)*/,
ev13:["BD=sin(Pi/2-a+b)","(正弦定理)","...(3)"],print(ev13)/*(◆修正部分2)*/,
TEIRI:["AC*BD=AB*CD+BC*DA", "(プトレマイオスの定理)",1*dis(zP3,zP4),/*(◆修正部分2)*/
/**/dis(zP2,zP3)*dis(zP,zP4)+dis(zP3,zP)*dis(zP4,zP2),"...(4)"],print(TEIRI)/*(◆修正部分2)*/,
cc1:["sin(Pi/2-a+b)=sin(a)*sin(b)+cos(a)*cos(b)", "((1)(2)(3)(4))",float(sin(Pi/2-aA+aB1)),sin(aA)*sin(aB1)+cos(aA)*cos(aB1)],print(cc1)/*(◆修正部分2)*/,
cc12:["cos(a-b)=sin(a)*sin(b)+cos(a)*cos(b)","(余角の三角関数)"],print(cc12)/*(◆修正部分2)*/,
cc13:["cos(a-b)=cos(a)*cos(b)+sin(a)*sin(b)","結論"],print(cc13)/*(◆修正部分2)*/,
ansl:[ev12[1],ev13[1],TEIRI[1],"により",cc13]/*(◆修正部分2)*/


◆コマンド番号603
●正弦・余弦の加法定理
●●●●●●●●●●●●●●●●
kill(all) /**/$
(MONDAI:"・準備 603 直径1の円に内接する四角形ABCDにおいて、辺対角線ABを直径、∠BAD=a、∠BAC=bのとき、/*(◆修正部分1)*/
プトレマイオスの定理によりsin(a-b)=sin(a)*cos(b)-cos(a)*sin(b)を示せ。"/*(◆修正部分1)*/,
KOUSATU:"直径の上に立つ円周角は直角だから、各辺と対角線を三角関数で表すと、・・・"/**/)$
(KANSUU:"", gr(T,c,l,pP,pK,xm,xM,ym,yM):=block(
/**/wxdraw2d(
/*....*/title =T, yrange=[ym,yM] /* "タイトルと値域を確認し" */,
/*....*/implicit(c,x,xm,xM,y,ym,yM),
/*....*/color=black,
/*....*/implicit(l,x,xm,xM,y,ym,yM),
/*....*/color=red,point_type =7,
/*....*/points_joined =true,point_size =1,points(pK) /* "点pK(一般的位置)を赤で打って、赤線で結んで" */,
/*....*/color=blue,point_type =6,
/*....*/points_joined =true,point_size =1,points(pP) /* "点pP(底辺の位置)を青で打って、青線で結んで" */,
/*....*/color=black,line_width =1,
/*....*/implicit(y=0,x,xm,xM,y,ym,yM),implicit(x=0,x,xm,xM,y,ym,yM)) /* "x,y軸を引く" */),
dis(p1l,p2l):=float(sqrt((p2l-p1l).(p2l-p1l))),
ang(p1l,p2l,p3l):=float(acos((dis(p1l,p2l)^2+dis(p2l,p3l)^2-dis(p1l,p3l)^2)/(2*dis(p1l,p2l)*dis(p2l,p3l))))
)$
(TEISUUandKOUSIKI:"",
Pi:%pi,
se:H/sin(K)=2*R /* "正弦定理" */,
ce:H^2=H2^2+H3^2-2*H2*H3*cos(K) /* "余弦定理" */,
cKe:cosK=(H2^2+H3^2-H^2)/(2*H2*H3) /* "角の余弦の式" */
)$
(TEJUN:"1",
sinA:3*k /* "sinA=3*k、" */,
sinB:4*k /* "sinA=4*k、" */,
sinC:5*k /* "sinA=5*kとして、" */,
la:rhs(solve(subst(sin(K)=sinA,se),H)[1]) /* "a=BCと、" */,
lb:rhs(solve(subst(sin(K)=sinB,se),H)[1]) /* "b=CAと、" */,
lc:rhs(solve(subst(sin(K)=sinC,se),H)[1]) /* "c=ABを確認して、" */,
sL:solve(subst([H=la,H2=lb,H3=lc],ce),K) /* "b,c,aを余弦定理の式に代入して、K(aA)について解いて" */,
L:abs(rhs(sL[1])) /* "aAの値を求め" */,
aA:L,numer,
aA1:80/180*Pi,
vk:rhs(solve(sinA=sin(aA),k)[1]) /* "kの値を求め" */,
lR:1/2 /* "R=1として" */,
la:float(subst([k=vk,R=lR],la)) /* "aを小数表示して"*/,
lb:float(subst([k=vk,R=lR],lb)) /* "bを小数表示して"*/,
lc:float(subst([k=vk,R=lR],lc)) /* "cを小数表示して"*/,
r:lR /* "R=1として" */,
sL:solve(subst([H=lb,H2=lc,H3=la],ce),K) /* "b,c,aを余弦定理の式に代入して、K(aB)について解いて" */,
aB:abs(rhs(sL[1])),numer /* "aBの値を求め" */,
aC:Pi-aA-aB /* "aCを求めて" */
)$
(kakunin:"グラフを書いて、視覚的に確認",
c:x^2+y^2=r^2,
T:"DC/AB" /* "" */,
aK:aC,aK2:aA,aK3:aB,lH:lc,lH2:la,lH3:lb,
zP:[r*cos(Pi*3/2+aK+2*aK2),r*sin(Pi*3/2+aK+2*aK2)],zP2:[r*cos(Pi*3/2-aK),r*sin(Pi*3/2-aK)],
zP3:[r*cos(Pi*3/2+aK),r*sin(Pi*3/2+aK)],zP4:[r*cos(Pi*3/2+aK+2*aA1),r*sin(Pi*3/2+aK+2*aA1)],
pK:[zP,zP2,zP4,zP,zP3,zP4],
pP:[zP2,zP3],
yL:r/2*3,xL:yL/2*3,
gr(T,c,x=0,pP,pK,-xL,xL,-yL,yL) /* "グラフ出力すると" */
)$
(TEJUN: "2",
KATEI:["AB=1、∠BAD=a、∠BAC=b","...仮定"],print(KATEI),aB1:float(aA1-aA)/*(◆修正部分2)*/,
ev11:["∠ACB=∠ADB=Pi/2","(仮定、直径の上の円周角は直角)",ang(zP2,zP,zP3),ang(zP2,zP4,zP3),"...(1)"],print(ev11)/*(◆修正部分2)*/,
ev12:["BC=sin(b),DA=cos(a),AC=cos(b),BD=sin(a)","(仮定と正弦・余弦の定義)","...(2)"],print(ev12)/*(◆修正部分2)*/,
ev13:["CD=sin(a-b)","(正弦定理)","...(3)"],print(ev13)/*(◆修正部分2)*/,
TEIRI:["AC*BD=AB*CD+BC*DA", "(プトレマイオスの定理)",float(dis(zP2,zP)*dis(zP3,zP4)),/*(◆修正部分2)*/
/**/float(1*dis(zP,zP4)+dis(zP3,zP)*dis(zP4,zP2)),"...(4)"],print(TEIRI)/*(◆修正部分2)*/,
cc1:["cos(b)*sin(a)=1*sin(a-b)+sin(b)*cos(a)", "((1)(2)(3)(4))",float(cos(aA)*sin(aA1)),float(1*sin(aB1)+sin(aA)*cos(aA1))],print(cc1)/*(◆修正部分2)*/,
cc12:["sin(a-b)=cos(b)*sin(a)-sin(b)*cos(a)","移項して",float(1*sin(aB1)),float(cos(aA)*sin(aA1)-sin(aA)*cos(aA1))],print(cc12)/*(◆修正部分2)*/,
cc13:["sin(a-b)=sin(a)*cos(b)-cos(a)*sin(b)","結論"],print(cc13)/*(◆修正部分2)*/,
ansl:[ev12[1],ev13[1],TEIRI[1],"により",cc13]/*(◆修正部分2)*/
)$
(KAITOU:ansl/*解答*//**/,
SUJIMITI:"直径の上に立つ円周角は直角だから、各辺と対角線を三角関数で表すと、BD=(     )・・・"/**/,
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)")$

(print(MONDAI),
print(SUJIMITI),
print(KAITOU),
print(FURIKAERI))$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
(MONDAI:"・準備 603 直径1の円に内接する四角形ABCDにおいて、辺対角線ABを直径、∠DBA=a、∠BAC=bのとき、/*(◆修正部分1)*/
プトレマイオスの定理によりcos(a+b)=cos(a)*cos(b)-sin(a)*sin(b)を示せ。"/*(◆修正部分1)*/,
KATEI:["AB=1、∠DBA=a、∠BAC=b","...仮定"],print(KATEI),aB1:float(Pi/2-aA1)/*(◆修正部分2)*/,
ev11:["∠ACB=∠ADB=Pi/2","(仮定、直径の上の円周角は直角)",ang(zP2,zP,zP3),ang(zP2,zP4,zP3),"...(1)"],print(ev11)/*(◆修正部分2)*/,
ev12:["BC=sin(b),DA=sin(a),AC=cos(b),BD=cos(a)","(仮定と正弦・余弦の定義)","...(2)"],print(ev12)/*(◆修正部分2)*/,
ev13:["CD=sin(Pi/2-a-b)","(正弦定理)","...(3)"],print(ev13)/*(◆修正部分2)*/,
TEIRI:["AC*BD=AB*CD+BC*DA", "(プトレマイオスの定理)",float(dis(zP2,zP)*dis(zP3,zP4)),/*(◆修正部分2)*/
/**/float(1*dis(zP,zP4)+dis(zP3,zP)*dis(zP4,zP2)),"...(4)"],print(TEIRI)/*(◆修正部分2)*/,
cc1:["cos(b)*cos(a)=1*sin(Pi/2-a-b)+sin(b)*sin(a)", "((1)(2)(3)(4))",float(cos(aA)*cos(aB1)),float(1*sin(aA1-aA)+sin(aA)*sin(aB1))],print(cc1)/*(◆修正部分2)*/,
cc12:["sin(Pi/2-a-b)=cos(b)*cos(a)-sin(b)*sin(a)","移項して",float(sin(aA1-aA)),float(cos(aA)*cos(aB1)-sin(aA)*sin(aB1))],print(cc12)/*(◆修正部分2)*/,
cc13:["cos(a+b)=cos(b)*cos(a)-sin(b)*sin(a)","(余角の三角関数)"],print(cc13)/*(◆修正部分2)*/,
cc14:["cos(a+b)=cos(b)*cos(a)-sin(b)*sin(a)","結論"],print(cc14)/*(◆修正部分2)*/,
ansl:[ev12[1],ev13[1],TEIRI[1],"により",cc14]/*(◆修正部分2)*/


◆コマンド番号604
●正弦・余弦の加法定理
●●●●●●●●●●●●●●●●
kill(all) /**/$
(MONDAI:"・練習24 604 sin(a+b)の加法定理によりsin(a-b)の加法展開は、"/*(◆修正部分1)*/,
KOUSATU:"加法定理により、・・・"/**/)$
(KANSUU:"",
gr(T,c,l,pP,pK,xm,xM,ym,yM):=block(
/**/wxdraw2d(
/*....*/title =T, yrange=[ym,yM] /* "タイトルと値域を確認し" */,
/*....*/implicit(c,x,xm,xM,y,ym,yM),
/*....*/color=black,
/*....*/implicit(l,x,xm,xM,y,ym,yM),
/*....*/implicit(y=0,x,xm,xM,y,ym,yM),implicit(x=0,x,xm,xM,y,ym,yM) /* "x,y軸を引く" */,
/*....*/color=red,point_type =7,line_width=2,
/*....*/points_joined =true,point_size =1,points(pK) /* "点pKを赤で打って、赤線で結んで" */,
/*....*/color=blue,point_type =6,
/*....*/points_joined =true,point_size =1,points(pP)) /* "点pPを青で打って、青線で結んで" */
),
ng2pl(p1l,p2l,m,n):=(p1l*n+p2l*m)/(m+n)/*2点と比から内外分点*/,
p2ngl(pl,p1l,p2l):=block([P,p1,p2,ans],p1:pl-p1l,p2:pl-p2l,P:rat(sqrt(p1.p1)/sqrt(p2.p2)),p1:num(P),p2:denom(P),
/**/print(ng2pl(p1l,p2l,p1,p2)),mes:"内分",if ng2pl(p1l,p2l,p1,p2)#pl then ((if p1>p2 then p2:-p2 else p1:-p1),mes:"外分"),
/**/ans:[p1,":",p2,mes])/*点を2点の内外分比で表示*/,
xtpl(p1l):=block([ansl],ansl:[p1l[1],-p1l[2]])/*x軸対称*/,
ytpl(p1l):=block([ansl],ansl:[-p1l[1],p1l[2]])/*y軸対称*/,
otpl(p1l):=block([ansl],ansl:[-p1l[1],-p1l[2]])/*原点対称*/,
a12(p1l,p2l):=block([ans],if p2l[1]#p1l[1] then ans:(p2l[2]-p1l[2])/(p2l[1]-p1l[1]) else ans:9999)/*傾き*/,
gl(p1l,p2l):=block([ansl],ansl:[p2l[1]-p1l[1],p2l[2]-p1l[2]])/*傾き方向*/,
nl(p1l,p2l):=block([ansl],ansl:[p2l[2]-p1l[2],-(p2l[1]-p1l[1])],ansl:ansl/gcd(ansl[1],ansl[2]))/*垂直方向*/,
dis(p1l,p2l):=block([ans],ans:float(sqrt((p2l-p1l).(p2l-p1l))))/*距離*/,
pppl(p1l,p2l,p3l):=block([ansl],ansl:((p1l-p2l).(p3l-p2l)/dis(p3l,p2l))*(p3l-p2l)/dis(p3l,p2l)),
sind(t):=sin(t/180*%pi),
cosd(t):=cos(t/180*%pi),
tand(t):=tan(t/180*%pi),
asind(sind):=asin(sind)/%pi*180,
acosd(cosd):=acos(cosd)/%pi*180,
atand(tand):=atan(tand)/%pi*180,
ang(p1l,p2l,p3l):=float(acos((dis(p1l,p2l)^2+dis(p2l,p3l)^2-dis(p1l,p3l)^2)/(2*dis(p1l,p2l)*dis(p2l,p3l))))
)$
(TEISUUandKOUSIKI:"",
Pi:%pi,
se:H/sin(K)=2*R /* "正弦定理" */,
ce:H^2=H2^2+H3^2-2*H2*H3*cos(K) /* "余弦定理" */,
cKe:cosK=(H2^2+H3^2-H^2)/(2*H2*H3) /* "角の余弦の式" */,
psd:sind(a+b)=sind(a)*cosd(b)+cosd(a)*sind(b)/*正弦加法度数*/,
ps:sin(a+b)=sin(a)*cos(b)+cos(a)*sin(b)/*正弦加法*/,
pcd:cosd(a+b)=cosd(a)*cosd(b)-sind(a)*sind(b)/*余弦加法度数*/,
pc:cos(a+b)=cos(a)*cos(b)-sin(a)*sin(b)/*余弦加法*/
)$
(TEJUN:"1",
deg1:45,deg2:-30/**/,
poL:[0,0],p3L:[cosd(deg1+deg2),sind(deg1+deg2)],p1L:[cosd(deg2),sind(deg2)],p2L:float(pppl(p3L,poL,p1L))/**/,
p0L:[1,0],p20L:[p2L[1],0],p21L:[p2L[1],p3L[2]],p30L:[p3L[1],0]
)$
(kakunin:"グラフを書いて、視覚的に確認",
r:1,c:x^2+y^2=r^2,
T:"HP/OKS/Q" /**/,
pK:[poL,p3L,p2L,poL,p1L,p2L,p20L,p21L,p3L,p30L,p20L,p0L,poL],
pP:[poL,p30L,p3L],
yL:r/2*3,xL:yL/2*3,
gr(T,c,x=0,pP,pK,-xL,xL,-yL,yL) /* "グラフ出力すると" */
)$
(TEJUN: "2",
KATEI:["OP=1、∠PQO=∠QKO=直角、∠QOP=a、∠KOQ=-b","...仮定"],print(KATEI)/**/,
ev11:["∠HQP=∠KOQ=-b","(仮定)",ang(p21L,p2L,p3L),ang(p20L,poL,p2L)],print(ev11)/**/,
ev12:["sin(a+(-b))=PS=HQ+QK=sin(a)*cos(-b)+cos(a)*sin(-b)","(仮定、正弦の加法定理)",float(p3L[2]),float(sind(deg1)*cosd(deg2)+cosd(deg1)*sind(deg2))],print(ev12)/*(◆修正部分2)*/,
ev13:[" =sin(a)*cos(b)-cos(a)*sin(b)","(sin(-b)=-sin(b))"],print(ev13)/*(◆修正部分2)*/,
ansl:[ev12[1],"sin(a-b)=sin(a)*cos(b)-cos(a)*sin(b)","結論"],print([ev12,ev13,ansl])/*(◆修正部分2)*/
)$
(KAITOU:ansl/*解答*//**/,
SUJIMITI:"加法定理により、sin(a+b)=(     )・・・"/**/,
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)")$

(print(MONDAI),
print(SUJIMITI),
print(KAITOU),
print(FURIKAERI))$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
(MONDAI:"・練習24 604 cos(a+b)の加法定理によりcos(a-b)の加法展開は、"/*(◆修正部分1)*/,
ev12:["cos(a+(-b))=OS=OK+KS=cos(a)*cos(-b)-sin(a)*sin(-b)","(仮定、余弦の加法定理)",float(p3L[2]),float(sind(deg1)*cosd(deg2)+cosd(deg1)*sind(deg2))],print(ev12)/*(◆修正部分2)*/,
ev13:[" =cos(a)*cos(b)+sin(a)*sin(b)","(sin(-b)=-sin(b))"],print(ev13)/*(◆修正部分2)*/,
ansl:[ev12[1],"cos(a-b)=cos(a)*cos(b)+sin(a)*sin(b)","結論"],print([ev12,ev13,ansl])/*(◆修正部分2)*/


◆コマンド番号605
●正弦・余弦の加法定理
●●●●●●●●●●●●●●●●
kill(all) /**/$
(MONDAI:"・例12・例題25・26 605 sin(75)=sin(45+30)は、"/*(◆修正部分1)*/,
KOUSATU:"加法定理により、・・・"/**/)$
(KANSUU:"",
gr(T,c,l,pP,pK,xm,xM,ym,yM):=block(
/**/wxdraw2d(
/*....*/title =T, yrange=[ym,yM] /* "タイトルと値域を確認し" */,
/*....*/implicit(c,x,xm,xM,y,ym,yM),
/*....*/color=black,
/*....*/implicit(l,x,xm,xM,y,ym,yM),
/*....*/implicit(y=0,x,xm,xM,y,ym,yM),implicit(x=0,x,xm,xM,y,ym,yM) /* "x,y軸を引く" */,
/*....*/color=red,point_type =7,line_width=2,
/*....*/points_joined =true,point_size =1,points(pK) /* "点pKを赤で打って、赤線で結んで" */,
/*....*/color=blue,point_type =6,
/*....*/points_joined =true,point_size =1,points(pP)) /* "点pPを青で打って、青線で結んで" */
),
ng2pl(p1l,p2l,m,n):=(p1l*n+p2l*m)/(m+n)/*2点と比から内外分点*/,
p2ngl(pl,p1l,p2l):=block([P,p1,p2,ans],p1:pl-p1l,p2:pl-p2l,P:rat(sqrt(p1.p1)/sqrt(p2.p2)),p1:num(P),p2:denom(P),
/**/print(ng2pl(p1l,p2l,p1,p2)),mes:"内分",if ng2pl(p1l,p2l,p1,p2)#pl then ((if p1>p2 then p2:-p2 else p1:-p1),mes:"外分"),
/**/ans:[p1,":",p2,mes])/*点を2点の内外分比で表示*/,
xtpl(p1l):=block([ansl],ansl:[p1l[1],-p1l[2]])/*x軸対称*/,
ytpl(p1l):=block([ansl],ansl:[-p1l[1],p1l[2]])/*y軸対称*/,
otpl(p1l):=block([ansl],ansl:[-p1l[1],-p1l[2]])/*原点対称*/,
a12(p1l,p2l):=block([ans],if p2l[1]#p1l[1] then ans:(p2l[2]-p1l[2])/(p2l[1]-p1l[1]) else ans:9999)/*傾き*/,
gl(p1l,p2l):=block([ansl],ansl:[p2l[1]-p1l[1],p2l[2]-p1l[2]])/*傾き方向*/,
nl(p1l,p2l):=block([ansl],ansl:[p2l[2]-p1l[2],-(p2l[1]-p1l[1])],ansl:ansl/gcd(ansl[1],ansl[2]))/*垂直方向*/,
dis(p1l,p2l):=block([ans],ans:float(sqrt((p2l-p1l).(p2l-p1l))))/*距離*/,
pppl(p1l,p2l,p3l):=block([ansl],ansl:((p1l-p2l).(p3l-p2l)/dis(p3l,p2l))*(p3l-p2l)/dis(p3l,p2l)),
sind(t):=sin(t/180*%pi),
cosd(t):=cos(t/180*%pi),
tand(t):=tan(t/180*%pi),
asind(sind):=asin(sind)/%pi*180,
acosd(cosd):=acos(cosd)/%pi*180,
atand(tand):=atan(tand)/%pi*180,
ang(p1l,p2l,p3l):=float(acos((dis(p1l,p2l)^2+dis(p2l,p3l)^2-dis(p1l,p3l)^2)/(2*dis(p1l,p2l)*dis(p2l,p3l))))
)$
(TEISUUandKOUSIKI:"",
Pi:%pi,
se:H/sin(K)=2*R /* "正弦定理" */,
ce:H^2=H2^2+H3^2-2*H2*H3*cos(K) /* "余弦定理" */,
cKe:cosK=(H2^2+H3^2-H^2)/(2*H2*H3) /* "角の余弦の式" */,
psd:sind(a+b)=sind(a)*cosd(b)+cosd(a)*sind(b)/*正弦加法度数*/,
ps:sin(a+b)=sin(a)*cos(b)+cos(a)*sin(b)/*正弦加法*/,
pcd:cosd(a+b)=cosd(a)*cosd(b)-sind(a)*sind(b)/*余弦加法度数*/,
pc:cos(a+b)=cos(a)*cos(b)-sin(a)*sin(b)/*余弦加法*/
)$
(TEJUN:"1",
deg1:45,deg2:30/*(◆修正部分2)*/,
poL:[0,0],p3L:[cosd(deg1+deg2),sind(deg1+deg2)],p1L:[cosd(deg2),sind(deg2)],p2L:float(pppl(p3L,poL,p1L))/*(◆修正部分2)*/,
p0L:[1,0],p20L:[p2L[1],0],p21L:[p2L[1],p3L[2]],p30L:[p3L[1],0]
)$
(kakunin:"グラフを書いて、視覚的に確認",
r:1,c:x^2+y^2=r^2,
T:"PH/Q/OSK" /* "(◆修正部分3)" */,
pK:[poL,p3L,p2L,poL,p1L,p2L,p20L,p21L,p3L,p30L,p20L,p0L,poL],
pP:[poL,p30L,p3L],
yL:r/2*3,xL:yL/2*3,
gr(T,c,x=0,pP,pK,-xL,xL,-yL,yL) /* "グラフ出力すると" */
)$
(TEJUN: "2",
KATEI:["OP=1、∠PQO=∠QKO=直角、∠QOP=45、∠KOQ=30","...仮定"],print(KATEI)/*(◆修正部分4)*/,
ev11:["∠HQP=∠KOQ=30","(仮定)",ang(p21L,p2L,p3L),ang(p20L,poL,p2L)],print(ev11)/*(◆修正部分4)*/,
ev12:["sin(45+30)=PS=HQ+QK=sin(45)*cos(30)+cos(45)*sin(30)","(正弦の加法定理)",float(p3L[2]),float(sind(deg1)*cosd(deg2)+cosd(deg1)*sind(deg2))],print(ev12)/*(◆修正部分4)*/,
ev13:[" =1/sqrt(2)*sqrt(3)/2+1/sqrt(2)*1/2"],print(ev13)/*(◆修正部分4)*/,
ans:rat(1/sqrt(2)*sqrt(3)/2+1/sqrt(2)*1/2),nans:rootscontract(num(ans)*sqrt(2)),denans:rootscontract(denom(ans)*sqrt(2)),ans:nans/denans/*(◆修正部分4)*/,
ansl:["sin(75)=",ans,float(ans),"計算結果"],print(ansl)/*(◆修正部分4)*/
)$
(KAITOU:ansl/*解答*//**/,
SUJIMITI:"加法定理により、sin(45+30)=(     )・・・"/**/,
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)")$

(print(MONDAI),
print(SUJIMITI),
print(KAITOU),
print(FURIKAERI))$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
(MONDAI:"・例12・例題25・26 605 cos(Pi/12)=cos(Pi/4-Pi/6)は、"/*(◆修正部分1)*/,
deg1:Pi/4,deg2:-Pi/6/*(◆修正部分2)*/,
poL:[0,0],p3L:[cos(deg1+deg2),sin(deg1+deg2)],p1L:[cos(deg2),sin(deg2)],p2L:float(pppl(p3L,poL,p1L))/*(◆修正部分2)*/,
T:"PH/OSK/Q" /* "(◆修正部分3)" */,
KATEI:["OP=1、∠PHQ=∠QKO=直角、∠QOP=Pi/4、∠KOQ=-Pi/6","...仮定"],print(KATEI)/*(◆修正部分4)*/,
ev11:["∠HQP=∠KOQ=-Pi/6","(仮定)",ang(p21L,p2L,p3L),ang(p20L,poL,p2L)],print(ev11)/*(◆修正部分4)*/,
ev12:["cos(Pi/4-Pi/6)=SP=KQ+QH=cos(Pi/4)*cos(-Pi/6)-sin(Pi/4)*sin(-Pi/6)","(余弦の加法定理)",float(p3L[2]),float(cos(deg1)*cos(deg2)-sin(deg1)*sin(deg2))],print(ev12)/*(◆修正部分4)*/,
ev13:[" =1/sqrt(2)*sqrt(3)/2-1/sqrt(2)*(-1/2)"],print(ev13)/*(◆修正部分4)*/,
ans:rat(1/sqrt(2)*sqrt(3)/2-1/sqrt(2)*(-1/2)),nans:rootscontract(num(ans)*sqrt(2)),denans:rootscontract(denom(ans)*sqrt(2)),ans:nans/denans/*(◆修正部分4)*/,
ansl:["cos(Pi/12)=",ans,float(ans),"計算結果"],print(ansl)/*(◆修正部分4)*/


   B. 正接の加法定理
◆コマンド番号606
●正接の加法定理
●●●●●●●●●●●●●●●●
kill(all) /**/$
(MONDAI:"・ 606 正弦・余弦の加法定理によりtan(a+b)の加法展開は、"/*(◆修正部分1)*/,
KOUSATU:"加法定理により、・・・"/**/)$
(KANSUU:"",
gr(T,c,l,pP,pK,xm,xM,ym,yM):=block(
/**/wxdraw2d(
/*....*/title =T, yrange=[ym,yM] /* "タイトルと値域を確認し" */,
/*....*/implicit(c,x,xm,xM,y,ym,yM),
/*....*/color=black,
/*....*/implicit(l,x,xm,xM,y,ym,yM),
/*....*/implicit(y=0,x,xm,xM,y,ym,yM),implicit(x=0,x,xm,xM,y,ym,yM) /* "x,y軸を引く" */,
/*....*/color=red,point_type =7,line_width=2,
/*....*/points_joined =true,point_size =1,points(pK) /* "点pKを赤で打って、赤線で結んで" */,
/*....*/color=blue,point_type =6,
/*....*/points_joined =true,point_size =1,points(pP)) /* "点pPを青で打って、青線で結んで" */
),
ng2pl(p1l,p2l,m,n):=(p1l*n+p2l*m)/(m+n)/*2点と比から内外分点*/,
p2ngl(pl,p1l,p2l):=block([P,p1,p2,ans],p1:pl-p1l,p2:pl-p2l,P:rat(sqrt(p1.p1)/sqrt(p2.p2)),p1:num(P),p2:denom(P),
/**/print(ng2pl(p1l,p2l,p1,p2)),mes:"内分",if ng2pl(p1l,p2l,p1,p2)#pl then ((if p1>p2 then p2:-p2 else p1:-p1),mes:"外分"),
/**/ans:[p1,":",p2,mes])/*点を2点の内外分比で表示*/,
xtpl(p1l):=block([ansl],ansl:[p1l[1],-p1l[2]])/*x軸対称*/,
ytpl(p1l):=block([ansl],ansl:[-p1l[1],p1l[2]])/*y軸対称*/,
otpl(p1l):=block([ansl],ansl:[-p1l[1],-p1l[2]])/*原点対称*/,
a12(p1l,p2l):=block([ans],if p2l[1]#p1l[1] then ans:(p2l[2]-p1l[2])/(p2l[1]-p1l[1]) else ans:9999)/*傾き*/,
gl(p1l,p2l):=block([ansl],ansl:[p2l[1]-p1l[1],p2l[2]-p1l[2]])/*傾き方向*/,
nl(p1l,p2l):=block([ansl],ansl:[p2l[2]-p1l[2],-(p2l[1]-p1l[1])],ansl:ansl/gcd(ansl[1],ansl[2]))/*垂直方向*/,
dis(p1l,p2l):=block([ans],ans:float(sqrt((p2l-p1l).(p2l-p1l))))/*距離*/,
pppl(p1l,p2l,p3l):=block([ansl],ansl:((p1l-p2l).(p3l-p2l)/dis(p3l,p2l))*(p3l-p2l)/dis(p3l,p2l)),
sind(t):=sin(t/180*%pi),
cosd(t):=cos(t/180*%pi),
tand(t):=tan(t/180*%pi),
asind(sind):=asin(sind)/%pi*180,
acosd(cosd):=acos(cosd)/%pi*180,
atand(tand):=atan(tand)/%pi*180,
ang(p1l,p2l,p3l):=float(acos((dis(p1l,p2l)^2+dis(p2l,p3l)^2-dis(p1l,p3l)^2)/(2*dis(p1l,p2l)*dis(p2l,p3l))))
)$
(TEISUUandKOUSIKI:"",
Pi:%pi,
se:H/sin(K)=2*R /* "正弦定理" */,
ce:H^2=H2^2+H3^2-2*H2*H3*cos(K) /* "余弦定理" */,
cKe:cosK=(H2^2+H3^2-H^2)/(2*H2*H3) /* "角の余弦の式" */,
psd:sind(a+b)=sind(a)*cosd(b)+cosd(a)*sind(b)/*正弦加法度数*/,
ps:sin(a+b)=sin(a)*cos(b)+cos(a)*sin(b)/*正弦加法*/,
pcd:cosd(a+b)=cosd(a)*cosd(b)-sind(a)*sind(b)/*余弦加法度数*/,
pc:cos(a+b)=cos(a)*cos(b)-sin(a)*sin(b)/*余弦加法*/
)$
(TEJUN:"1",
deg1:35,deg2:25/*(◆修正部分2)*/,
poL:[0,0],pPL:[cosd(deg1+deg2),sind(deg1+deg2)],p1L:[cosd(deg2),sind(deg2)],pQL:float(pppl(pPL,poL,p1L))/**/,
pRL:[1,0],pKL:[pQL[1],0],pHL:[pQL[1],pPL[2]],pSL:[pPL[1],0],pTL:pPL/pSL[1]
)$
(kakunin:"グラフを書いて、視覚的に確認",
r:1.5,c:x^2+y^2=1,T:"T/PH/Q/OSKR" /*(◆修正部分3)*/,
pK:[poL,pTL,pPL,pQL,poL,p1L,pQL,pKL,pHL,pPL,pSL,pKL,pRL,poL],
pP:[poL,pSL,pPL,pSL,pRL,pTL],
yL:r/2*3,xL:yL/2*3,
gr(T,c,x=0,pP,pK,-xL,xL,-yL,yL) /* "グラフ出力すると" */
)$
(TEJUN: "2",
KATEI:["OP=1、∠PQO=∠QKO=直角、∠QOP=a、∠KOQ=b","...仮定"],print(KATEI)/**/,
ev11:["∠HQP=∠KOQ=b","(仮定)",ang(pHL,pQL,pPL),ang(pKL,poL,pQL)],print(ev11)/*ang(p21L,p2L,p3L),ang(p20L,poL,p2L)*/,
ev12:["sin(a+b)=PS=HQ+QK=sin(a)*cos(b)+cos(a)*sin(b)","(仮定、正弦の加法定理)...(1)",float(pPL[2]),float(sind(deg1)*cosd(deg2)+cosd(deg1)*sind(deg2))],print(ev12)/*(◆修正部分4)*/,
ev13:["cos(a+b)=OS=OK-KS=cos(a)*cos(b)-sin(a)*sin(b)","(仮定、余弦の加法定理)...(2)",float(pSL[1]),float(cosd(deg1)*cosd(deg2)-sind(deg1)*sind(deg2))],print(ev13)/*(◆修正部分4)*/,
ev14:["tan(a+b)=sin(a+b)/cos(a+b)","(正接の定義)",float(pTL[2]),float(sind(deg1+deg2)/cosd(deg1+deg2))],print(ev14)/*(◆修正部分4)*/,
ev15:[" =(sin(a)*cos(b)+cos(a)*sin(b))/(cos(a)*cos(b)-sin(a)*sin(b))","((1)(2))"],print(ev15)/*(◆修正部分4)*/,
ev16:[" =(sin(a)/cos(a)+sin(b)/cos(b))/(1-sin(a)/cos(a)*sin(b)/cos(b))"],print(ev16)/*(◆修正部分4)*/,
ev17:[" =(tan(a)+tan(b))/(1-tan(a)*tan(b))",float(pTL[2]),float((tand(deg1)+tand(deg2))/(1-tand(deg1)*tand(deg2)))],print(ev17)/*(◆修正部分4)*/,
ansl:["tan(a+b)=(tan(a)+tan(b))/(1-tan(a)*tan(b))","結論"],print(ansl)/*(◆修正部分4)*/
)$
(KAITOU:ansl/*解答*//**/,
SUJIMITI:"加法定理により、sin(a+b)=(     )・・・"/*(◆修正部分5)*/,
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)")$

(print(MONDAI),
print(SUJIMITI),
print(KAITOU),
print(FURIKAERI))$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
(MONDAI:"・ 606 正弦・余弦の加法定理によりtan(a-b)の加法展開は、"/*(◆修正部分1)*/,
deg1:60,deg2:-30/*(◆修正部分2)*/,
r:1,c:x^2+y^2=1,T:"T/HP/OKSR/Q" /*(◆修正部分3)*/,
ev12:["sin(a-b)=PS=HQ-QK=sin(a)*cos(b)-cos(a)*sin(b)","(仮定、正弦の加法定理)...(1)",float(pPL[2]),float(sind(deg1)*cosd(deg2)+cosd(deg1)*sind(deg2))],print(ev12)/*(◆修正部分4)*/,
ev13:["cos(a-b)=OS=OK+KS=cos(a)*cos(b)+sin(a)*sin(b)","(仮定、余弦の加法定理)...(2)",float(pSL[1]),float(cosd(deg1)*cosd(deg2)-sind(deg1)*sind(deg2))],print(ev13)/*(◆修正部分4)*/,
ev14:["tan(a-b)=sin(a-b)/cos(a-b)","(正接の定義)",float(pTL[2]),float(sind(deg1+deg2)/cosd(deg1+deg2))],print(ev14)/*(◆修正部分4)*/,
ev15:[" =(sin(a)*cos(b)-cos(a)*sin(b))/(cos(a)*cos(b)+sin(a)*sin(b))","((1)(2))"],print(ev15)/*(◆修正部分4)*/,
ev16:[" =(sin(a)/cos(a)-sin(b)/cos(b))/(1+sin(a)/cos(a)*sin(b)/cos(b))"],print(ev16)/*(◆修正部分4)*/,
ev17:[" =(tan(a)-tan(b))/(1+tan(a)*tan(b))",float(pTL[2]),float((tand(deg1)+tand(deg2))/(1-tand(deg1)*tand(deg2)))],print(ev17)/*(◆修正部分4)*/,
ansl:["tan(a-b)=(tan(a)-tan(b))/(1+tan(a)*tan(b))","結論"],print(ansl)/*(◆修正部分4)*/
SUJIMITI:"加法定理により、sin(a-b)=(     )・・・"/*(◆修正部分5)*/,


◆コマンド番号607
●正接の加法定理
●●●●●●●●●●●●●●●●
kill(all) /**/$
(MONDAI:"・例13・練習27・28 607 tan(75)=tan(45+30)は、"/*(◆修正部分1)*/,
KOUSATU:"加法定理により、・・・"/**/)$
(KANSUU:"",
gr(T,c,l,pP,pK,xm,xM,ym,yM):=block(
/**/wxdraw2d(
/*....*/title =T, yrange=[ym,yM] /* "タイトルと値域を確認し" */,
/*....*/implicit(c,x,xm,xM,y,ym,yM),
/*....*/color=black,
/*....*/implicit(l,x,xm,xM,y,ym,yM),
/*....*/implicit(y=0,x,xm,xM,y,ym,yM),implicit(x=0,x,xm,xM,y,ym,yM) /* "x,y軸を引く" */,
/*....*/color=red,point_type =7,line_width=2,
/*....*/points_joined =true,point_size =1,points(pK) /* "点pKを赤で打って、赤線で結んで" */,
/*....*/color=blue,point_type =6,
/*....*/points_joined =true,point_size =1,points(pP)) /* "点pPを青で打って、青線で結んで" */
),
ng2pl(p1l,p2l,m,n):=(p1l*n+p2l*m)/(m+n)/*2点と比から内外分点*/,
p2ngl(pl,p1l,p2l):=block([P,p1,p2,ans],p1:pl-p1l,p2:pl-p2l,P:rat(sqrt(p1.p1)/sqrt(p2.p2)),p1:num(P),p2:denom(P),
/**/print(ng2pl(p1l,p2l,p1,p2)),mes:"内分",if ng2pl(p1l,p2l,p1,p2)#pl then ((if p1>p2 then p2:-p2 else p1:-p1),mes:"外分"),
/**/ans:[p1,":",p2,mes])/*点を2点の内外分比で表示*/,
xtpl(p1l):=block([ansl],ansl:[p1l[1],-p1l[2]])/*x軸対称*/,
ytpl(p1l):=block([ansl],ansl:[-p1l[1],p1l[2]])/*y軸対称*/,
otpl(p1l):=block([ansl],ansl:[-p1l[1],-p1l[2]])/*原点対称*/,
a12(p1l,p2l):=block([ans],if p2l[1]#p1l[1] then ans:(p2l[2]-p1l[2])/(p2l[1]-p1l[1]) else ans:9999)/*傾き*/,
gl(p1l,p2l):=block([ansl],ansl:[p2l[1]-p1l[1],p2l[2]-p1l[2]])/*傾き方向*/,
nl(p1l,p2l):=block([ansl],ansl:[p2l[2]-p1l[2],-(p2l[1]-p1l[1])],ansl:ansl/gcd(ansl[1],ansl[2]))/*垂直方向*/,
dis(p1l,p2l):=block([ans],ans:float(sqrt((p2l-p1l).(p2l-p1l))))/*距離*/,
pppl(p1l,p2l,p3l):=block([ansl],ansl:((p1l-p2l).(p3l-p2l)/dis(p3l,p2l))*(p3l-p2l)/dis(p3l,p2l)),
sind(t):=sin(t/180*%pi),
cosd(t):=cos(t/180*%pi),
tand(t):=tan(t/180*%pi),
asind(sind):=asin(sind)/%pi*180,
acosd(cosd):=acos(cosd)/%pi*180,
atand(tand):=atan(tand)/%pi*180,
ang(p1l,p2l,p3l):=float(acos((dis(p1l,p2l)^2+dis(p2l,p3l)^2-dis(p1l,p3l)^2)/(2*dis(p1l,p2l)*dis(p2l,p3l))))
)$
(TEISUUandKOUSIKI:"",
Pi:%pi,
se:H/sin(K)=2*R /* "正弦定理" */,
ce:H^2=H2^2+H3^2-2*H2*H3*cos(K) /* "余弦定理" */,
cKe:cosK=(H2^2+H3^2-H^2)/(2*H2*H3) /* "角の余弦の式" */,
psd:sind(a+b)=sind(a)*cosd(b)+cosd(a)*sind(b)/*正弦加法度数*/,
ps:sin(a+b)=sin(a)*cos(b)+cos(a)*sin(b)/*正弦加法*/,
pcd:cosd(a+b)=cosd(a)*cosd(b)-sind(a)*sind(b)/*余弦加法度数*/,
pc:cos(a+b)=cos(a)*cos(b)-sin(a)*sin(b)/*余弦加法*/
)$
(TEJUN:"1",
deg1:45,deg2:30/*(◆修正部分2)*/,
poL:[0,0],pPL:[cosd(deg1+deg2),sind(deg1+deg2)],p1L:[cosd(deg2),sind(deg2)],pQL:float(pppl(pPL,poL,p1L))/*(◆修正部分2)*/,
pRL:[1,0],pKL:[pQL[1],0],pHL:[pQL[1],pPL[2]],pSL:[pPL[1],0],pTL:pPL/pSL[1]
)$
(kakunin:"グラフを書いて、視覚的に確認",
r:3,c:x^2+y^2=1,T:"T/PH/Q/OSKR" /*(◆修正部分3)*/,
pK:[poL,pTL,pPL,pQL,poL,p1L,pQL,pKL,pHL,pPL,pSL,pKL,pRL,poL],
pP:[poL,pSL,pPL,pSL,pRL,pTL],
yL:r/2*3,xL:yL/2*3,
gr(T,c,x=0,pP,pK,-xL,xL,-yL,yL) /* "グラフ出力すると" */
)$
(TEJUN: "2",
KATEI:["OP=1、∠PQO=∠QKO=直角、∠QOP=45、∠KOQ=30","...仮定"],print(KATEI)/*(◆修正部分4)*/,
ev11:["∠HQP=∠KOQ=30","(仮定)",ang(pHL,pQL,pPL),ang(pKL,poL,pQL)],print(ev11)/*(◆修正部分4)*/,
ev12:["tan(45+30)=(tan(45)+tan(30))/(1-tan(45)*tan(30))","(仮定、正接の加法定理)",float(pTL[2]),float((tand(deg1)+tand(deg2))/(1-tand(deg1)*tand(deg2)))],print(ev12)/*(◆修正部分4)*/,
ev13:[" =(1+1/sqrt(3))/(1-1*1/sqrt(3))",float(pTL[2]),float((1+1/sqrt(3))/(1-1*1/sqrt(3)))],print(ev13)/*(◆修正部分4)*/,
ev14:[" =(sqrt(3)+1)/(sqrt(3)-1)",float(pTL[2]),float((sqrt(3)+1)/(sqrt(3)-1))],print(ev14)/*(◆修正部分4)*/,
ev15:[" =(sqrt(3)+1)^2/(3-1)",float(pTL[2]),float((sqrt(3)+1)^2/(3-1))],print(ev15)/*(◆修正部分4)*/,
ev16:[" =(3+2*sqrt(3)+1)/2",float(pTL[2]),float((3+2*sqrt(3)+1)/2)],print(ev16)/*(◆修正部分4)*/,
ev17:[" =2+sqrt(3)",float(pTL[2]),float(2+sqrt(3))],print(ev17)/*(◆修正部分4)*/,
ansl:["tan(75)=2+sqrt(3)","結論"],print(ansl)/*(◆修正部分4)*/
)$
(KAITOU:ansl/*解答*//**/,
SUJIMITI:"加法定理により、tan(a+b)=(     )・・・"/*(◆修正部分5)*/,
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)")$

(print(MONDAI),
print(SUJIMITI),
print(KAITOU),
print(FURIKAERI))$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
(MONDAI:"・例13・練習27・28 607 tan(Pi/12)=tan(Pi/4-Pi/6)は、"/*(◆修正部分1)*/,
deg1:Pi/4,deg2:-Pi/6/*(◆修正部分2)*/,
poL:[0,0],pPL:[cos(deg1+deg2),sin(deg1+deg2)],p1L:[cos(deg2),sin(deg2)],pQL:float(pppl(pPL,poL,p1L))/*(◆修正部分2)*/,
r:1,c:x^2+y^2=1,T:"T/HP/OKSR/Q" /*(◆修正部分3)*/,
KATEI:["OP=1、∠PQO=∠QKO=直角、∠QOP=Pi/4、∠KOQ=Pi/6","...仮定"],print(KATEI)/*(◆修正部分4)*/,
ev11:["∠HQP=∠KOQ=Pi/6","(仮定)",ang(pHL,pQL,pPL),ang(pKL,poL,pQL)],print(ev11)/*(◆修正部分4)*/,
ev12:["tan(Pi/4-Pi/6)=(tan(Pi/4)-tan(Pi/6))/(1+tan(Pi/4)*tan(Pi/6))","(仮定、正接の加法定理)",float(pTL[2]),float((tan(deg1)+tan(deg2))/(1-tan(deg1)*tan(deg2)))],print(ev12)/*(◆修正部分4)*/,
ev13:[" =(1-1/sqrt(3))/(1+1*1/sqrt(3))",float(pTL[2]),float((1-1/sqrt(3))/(1+1*1/sqrt(3)))],print(ev13)/*(◆修正部分4)*/,
ev14:[" =(sqrt(3)-1)/(sqrt(3)+1)",float(pTL[2]),float((sqrt(3)-1)/(sqrt(3)+1))],print(ev14)/*(◆修正部分4)*/,
ev15:[" =(sqrt(3)-1)^2/(3-1)",float(pTL[2]),float((sqrt(3)-1)^2/(3+1))],print(ev15)/*(◆修正部分4)*/,
ev16:[" =(3-2*sqrt(3)+1)/2",float(pTL[2]),float((3-2*sqrt(3)+1)/2)],print(ev16)/*(◆修正部分4)*/,
ev17:[" =2-sqrt(3)",float(pTL[2]),float(2-sqrt(3))],print(ev17)/*(◆修正部分4)*/,
ansl:["tan(Pi/12)=2-sqrt(3)","結論"],print(ansl)/*(◆修正部分4)*/
SUJIMITI:"加法定理により、tan(a-b)=(     )・・・"/*(◆修正部分5)*/,


   C. 二直線のなす角
◆コマンド番号608
●二直線のなす角
●●●●●●●●●●●●●●●●
kill(all) /**/$
(MONDAI:"・例題5・練習29 608 2直線 y=-2*x,y=3*xのなす角は、"/*(◆修正部分1)*/,
KOUSATU:"直線の傾きは、直線とx軸とのなす角の正接だから、・・・"/**/)$
(KANSUU:"",
gr(T,c,grl,pP,pK,xm,xM,ym,yM):=block(
/**/wxdraw2d(
/*....*/title =T, yrange=[ym,yM] /* "タイトルと値域を確認し" */,
/*....*/implicit(c,x,xm,xM,y,ym,yM),
/*....*/color=black,
/*....*/implicit(grl[1],x,xm,xM,y,ym,yM),
/*....*/implicit(grl[2],x,xm,xM,y,ym,yM),
/*....*/implicit(y=0,x,xm,xM,y,ym,yM),implicit(x=0,x,xm,xM,y,ym,yM) /* "x,y軸を引く" */,
/*....*/color=red,point_type =7,line_width=2,
/*....*/points_joined =true,point_size =1,points(pK[1]) /* "点pK[1]を赤で打って、赤線で結んで" */,
/*....*/color=cyan,point_type =7,line_width=2,
/*....*/points_joined =true,point_size =1,points(pK[2]),points(pK[3]) /* "点pK[2],pK[3]をシアンで打って、シアン線で結んで" */,
/*....*/color=blue,point_type =6,line_width=1,
/*....*/points_joined =true,point_size =1,points(pP)) /* "点pPを青で打って、青線で結んで" */
),
ng2pl(p1l,p2l,m,n):=(p1l*n+p2l*m)/(m+n)/*2点と比から内外分点*/,
p2ngl(pl,p1l,p2l):=block([P,p1,p2,ans],p1:pl-p1l,p2:pl-p2l,P:rat(sqrt(p1.p1)/sqrt(p2.p2)),p1:num(P),p2:denom(P),
/**/print(ng2pl(p1l,p2l,p1,p2)),mes:"内分",if ng2pl(p1l,p2l,p1,p2)#pl then ((if p1>p2 then p2:-p2 else p1:-p1),mes:"外分"),
/**/ans:[p1,":",p2,mes])/*点を2点の内外分比で表示*/,
xtpl(p1l):=block([ansl],ansl:[p1l[1],-p1l[2]])/*x軸対称*/,
ytpl(p1l):=block([ansl],ansl:[-p1l[1],p1l[2]])/*y軸対称*/,
otpl(p1l):=block([ansl],ansl:[-p1l[1],-p1l[2]])/*原点対称*/,
a12(p1l,p2l):=block([ans],if p2l[1]#p1l[1] then ans:(p2l[2]-p1l[2])/(p2l[1]-p1l[1]) else ans:9999)/*傾き*/,
gl(p1l,p2l):=block([ansl],ansl:[p2l[1]-p1l[1],p2l[2]-p1l[2]])/*傾き方向*/,
nl(p1l,p2l):=block([ansl],ansl:[p2l[2]-p1l[2],-(p2l[1]-p1l[1])],ansl:ansl/gcd(ansl[1],ansl[2]))/*垂直方向*/,
dis(p1l,p2l):=block([ans],ans:float(sqrt((p2l-p1l).(p2l-p1l))))/*距離*/,
pppl(p1l,p2l,p3l):=block([ansl],ansl:((p1l-p2l).(p3l-p2l)/dis(p3l,p2l))*(p3l-p2l)/dis(p3l,p2l)),
sind(t):=sin(t/180*%pi),
cosd(t):=cos(t/180*%pi),
tand(t):=tan(t/180*%pi),
asind(sind):=asin(sind)/%pi*180,
acosd(cosd):=acos(cosd)/%pi*180,
atand(tand):=atan(tand)/%pi*180,
ang(p1l,p2l,p3l):=float(acos((dis(p1l,p2l)^2+dis(p2l,p3l)^2-dis(p1l,p3l)^2)/(2*dis(p1l,p2l)*dis(p2l,p3l))))
)$
(TEISUUandKOUSIKI:"",
Pi:%pi,
se:H/sin(K)=2*R /* "正弦定理" */,
ce:H^2=H2^2+H3^2-2*H2*H3*cos(K) /* "余弦定理" */,
cKe:cosK=(H2^2+H3^2-H^2)/(2*H2*H3) /* "角の余弦の式" */,
psd:sind(a+b)=sind(a)*cosd(b)+cosd(a)*sind(b)/*正弦加法度数*/,
ps:sin(a+b)=sin(a)*cos(b)+cos(a)*sin(b)/*正弦加法*/,
pcd:cosd(a+b)=cosd(a)*cosd(b)-sind(a)*sind(b)/*余弦加法度数*/,
pc:cos(a+b)=cos(a)*cos(b)-sin(a)*sin(b)/*余弦加法*/
)$
(TEJUN:"1",
eq1:y=-2*x,eq2:y=3*x /*(◆修正部分2)*/,
tanA:coeff(rhs(eq1),x,1),tanB:coeff(rhs(eq2),x,1),
deg1:atan(tanA),if deg1< 0 then deg1:deg1+Pi,deg2:-atan(tanB),print([deg1,deg2])
)$
(kakunin:"グラフを書いて、視覚的に確認",
r:1,c:x^2+y^2=1,T:"y=-2*x,y=3*x" /*(◆修正部分3)*/,
poL:[0,0],pPL:[cos(deg1+deg2),sin(deg1+deg2)],p1L:[cos(deg2),sin(deg2)],pQL:float(pppl(pPL,poL,p1L))/**/,
p10L:[cos(-deg2),sin(-deg2)],pP0L:[cos(deg1),sin(deg1)],pQ0L:float(pppl(pP0L,poL,p10L)),pT0L:pP0L/dis(poL,pQ0L),
pRL:[1,0],pKL:[pQL[1],0],pHL:[pQL[1],pPL[2]],pSL:[pPL[1],0],pTL:pPL/pSL[1],
pKl:[[poL,pTL,pPL,pQL,poL,p1L,pQL,pKL,pHL,pPL,pSL,pKL,pRL,poL],[pT0L,p10L],[pTL,pRL]],
pP:[poL,pSL,pPL,pSL,pRL,pTL],
yL:r/2*3,xL:yL/2*3,
gr(T,c,[eq1,eq2],pP,pKl,-xL,xL,-yL,yL) /* "グラフ出力すると" */
)$
(TEJUN: "2",
KATEI:["y=-2*x,y=3*xとx軸とのなす角をそれぞれa,bとして、tan(a)=-2,tan(b)=3","...仮定"],print(KATEI)/*(◆修正部分4)*/,
ev11:["tan(a-b)=(tan(a)-tan(b))/(1+tan(a)*tan(b))","(正接の加法定理)",float(tan(ang(pT0L,poL,p10L))),float((tanA-tanB)/(1+tanA*tanB))],print(ev11)/*(◆修正部分4)*/,
ev12:[" =((-2)-(3))/(1+(-2)*(3))",float((-2-3)/(1+(-2)*(3)))],print(ev12)/*(◆修正部分4)*/,
ev13:[" =1"],print(ev13)/*(◆修正部分4)*/,
ev14:["t=Pi/4","(0< t< Pi/2として)"],print(ev14)/*(◆修正部分4)*/,
ansl:[ev14[1],"結論"],print(ansl)/**/
)$
(KAITOU:ansl/*解答*//**/,
SUJIMITI:"加法定理により、tan(a-b)=(     )・・・"/**/,
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)")$

(print(MONDAI),
print(SUJIMITI),
print(KAITOU),
print(FURIKAERI))$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
(MONDAI:"・例題5・練習29 608 2直線 y=2*x,y=1/3*xのなす角は、"/*(◆修正部分1)*/,
eq1:y=2*x,eq2:y=1/3*x /*(◆修正部分2)*/,
r:1,c:x^2+y^2=1,T:"y=2*x,y=1/3*x" /*(◆修正部分3)*/,
KATEI:["y=2*x,y=1/3*xとx軸とのなす角をそれぞれa,bとして、tan(a)=2,tan(b)=1/3","...仮定"],print(KATEI)/*(◆修正部分4)*/,
ev11:["tan(a-b)=(tan(a)-tan(b))/(1+tan(a)*tan(b))","(正接の加法定理)",float(tan(ang(pT0L,poL,p10L))),float((tanA-tanB)/(1+tanA*tanB))],print(ev11)/*(◆修正部分4)*/,
ev12:[" =((2)-(1/3))/(1+(2)*(1/3))",float(((2)-(1/3))/(1+(2)*(1/3)))],print(ev12)/*(◆修正部分4)*/,
ev13:[" =1"],print(ev13)/*(◆修正部分4)*/,
ev14:["t=Pi/4","(0< t< Pi/2として)"],print(ev14)/*(◆修正部分4)*/,


:   7.加法定理の応用
   A. 2倍角の公式
◆コマンド番号701
●正弦・余弦の2倍角の公式
●●●●●●●●●●●●●●●●
kill(all) /**/$
(MONDAI:"・ 701 sin(2*a)=sin(a+a)は、"/*(◆修正部分1)*/,
KOUSATU:"加法定理により、・・・"/**/)$
(KANSUU:"",
gr(T,c,l,pP,pK,xm,xM,ym,yM):=block(
/**/wxdraw2d(
/*....*/title =T, yrange=[ym,yM] /* "タイトルと値域を確認し" */,
/*....*/implicit(c,x,xm,xM,y,ym,yM),
/*....*/color=black,
/*....*/implicit(l,x,xm,xM,y,ym,yM),
/*....*/implicit(y=0,x,xm,xM,y,ym,yM),implicit(x=0,x,xm,xM,y,ym,yM) /* "x,y軸を引く" */,
/*....*/color=red,point_type =7,line_width=2,
/*....*/points_joined =true,point_size =1,points(pK) /* "点pKを赤で打って、赤線で結んで" */,
/*....*/color=blue,point_type =6,
/*....*/points_joined =true,point_size =1,points(pP)) /* "点pPを青で打って、青線で結んで" */
),
ng2pl(p1l,p2l,m,n):=(p1l*n+p2l*m)/(m+n)/*2点と比から内外分点*/,
p2ngl(pl,p1l,p2l):=block([P,p1,p2,ans],p1:pl-p1l,p2:pl-p2l,P:rat(sqrt(p1.p1)/sqrt(p2.p2)),p1:num(P),p2:denom(P),
/**/print(ng2pl(p1l,p2l,p1,p2)),mes:"内分",if ng2pl(p1l,p2l,p1,p2)#pl then ((if p1>p2 then p2:-p2 else p1:-p1),mes:"外分"),
/**/ans:[p1,":",p2,mes])/*点を2点の内外分比で表示*/,
xtpl(p1l):=block([ansl],ansl:[p1l[1],-p1l[2]])/*x軸対称*/,
ytpl(p1l):=block([ansl],ansl:[-p1l[1],p1l[2]])/*y軸対称*/,
otpl(p1l):=block([ansl],ansl:[-p1l[1],-p1l[2]])/*原点対称*/,
a12(p1l,p2l):=block([ans],if p2l[1]#p1l[1] then ans:(p2l[2]-p1l[2])/(p2l[1]-p1l[1]) else ans:9999)/*傾き*/,
gl(p1l,p2l):=block([ansl],ansl:[p2l[1]-p1l[1],p2l[2]-p1l[2]])/*傾き方向*/,
nl(p1l,p2l):=block([ansl],ansl:[p2l[2]-p1l[2],-(p2l[1]-p1l[1])],ansl:ansl/gcd(ansl[1],ansl[2]))/*垂直方向*/,
dis(p1l,p2l):=block([ans],ans:float(sqrt((p2l-p1l).(p2l-p1l))))/*距離*/,
pppl(p1l,p2l,p3l):=block([ansl],ansl:((p1l-p2l).(p3l-p2l)/dis(p3l,p2l))*(p3l-p2l)/dis(p3l,p2l)),
sind(t):=sin(t/180*%pi),
cosd(t):=cos(t/180*%pi),
tand(t):=tan(t/180*%pi),
asind(sind):=asin(sind)/%pi*180,
acosd(cosd):=acos(cosd)/%pi*180,
atand(tand):=atan(tand)/%pi*180,
ang(p1l,p2l,p3l):=float(acos((dis(p1l,p2l)^2+dis(p2l,p3l)^2-dis(p1l,p3l)^2)/(2*dis(p1l,p2l)*dis(p2l,p3l))))
)$
(TEISUUandKOUSIKI:"",
Pi:%pi,
se:H/sin(K)=2*R /* "正弦定理" */,
ce:H^2=H2^2+H3^2-2*H2*H3*cos(K) /* "余弦定理" */,
cKe:cosK=(H2^2+H3^2-H^2)/(2*H2*H3) /* "角の余弦の式" */,
psd:sind(a+b)=sind(a)*cosd(b)+cosd(a)*sind(b)/*正弦加法度数*/,
ps:sin(a+b)=sin(a)*cos(b)+cos(a)*sin(b)/*正弦加法*/,
pcd:cosd(a+b)=cosd(a)*cosd(b)-sind(a)*sind(b)/*余弦加法度数*/,
pc:cos(a+b)=cos(a)*cos(b)-sin(a)*sin(b)/*余弦加法*/
)$
(TEJUN:"1",
deg1:30,deg2:deg1/*(◆修正部分2)*/,
poL:[0,0],pPL:[cosd(deg1+deg2),sind(deg1+deg2)],p1L:[cosd(deg2),sind(deg2)],pQL:float(pppl(pPL,poL,p1L))/*(◆修正部分2)*/,
p0L:[1,0],pKL:[pQL[1],0], pHL:[pQL[1],pPL[2]], pSL:[pPL[1],0]
)$
(kakunin:"グラフを書いて、視覚的に確認",
r:1,c:x^2+y^2=r^2,
T:"PH/Q/OSK" /**/,
pK:[poL,pPL,pQL,poL,p1L,pQL,pKL,pHL,pPL,pSL,pKL,p0L,poL],
pP:[poL,pSL,pPL],
yL:r/2*3,xL:yL/2*3,
gr(T,c,x=0,pP,pK,-xL,xL,-yL,yL) /* "グラフ出力すると" */
)$
(TEJUN: "2",
KATEI:["OP=1、∠PQO=∠QKO=直角、∠QOP=a、∠KOQ=a","...仮定"],print(KATEI)/*(◆修正部分3)*/,
ev11:["∠HQP=∠KOQ=a","(仮定)",ang(pHL,pQL,pPL),ang(pKL,poL,pQL)],print(ev11)/*(◆修正部分3)*/,
ev12:["sin(a+a)=PS=HQ+QK=sin(a)*cos(a)+cos(a)*sin(a)","(正弦の加法定理)",float(pPL[2]),float(sind(deg1)*cosd(deg2)+cosd(deg1)*sind(deg2))],print(ev12)/*(◆修正部分3)*/,
ev13:[" =2*sin(a)*cos(a)"],print(ev13)/*(◆修正部分3)*/,
ansl:["sin(2*a)",ev13[1],float(2*sind(deg1)*cosd(deg1)),"計算結果"],print(ansl)/*(◆修正部分3)*/
)$
(KAITOU:ansl/*解答*//**/,
SUJIMITI:"加法定理により、sin(a+a)=(     )・・・"/**/,
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)")$

(print(MONDAI),
print(SUJIMITI),
print(KAITOU),
print(FURIKAERI))$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
(MONDAI:"・ 701 cos(2*a)=cos(a+a)は、"/*(◆修正部分1)*/,
deg1:Pi/6,deg2:deg1/*(◆修正部分2)*/,
poL:[0,0],pPL:[cos(deg1+deg2),sin(deg1+deg2)],p1L:[cos(deg2),sin(deg2)],pQL:float(pppl(pPL,poL,p1L))/*(◆修正部分2)*/,
KATEI:["OP=1、∠PQO=∠QKO=直角、∠QOP=a、∠KOQ=a","...仮定"],print(KATEI)/*(◆修正部分3)*/,
ev11:["∠HQP=∠KOQ=a","(仮定)",ang(pHL,pQL,pPL),ang(pKL,poL,pQL)],print(ev11)/*(◆修正部分3)*/,
ev12:["cos(a+a)=OS=OK-HP=cos(a)*cos(a)-sin(a)*sin(a)","(余弦の加法定理)",float(pPL[1]),float(cos(deg1)*cos(deg2)-sin(deg1)*sin(deg2))],print(ev12)/*(◆修正部分3)*/,
ev13:[" =cos(a)^2-sin(a)^2=2*cos(a)^2-1=1-2*sin(a)^2","(正弦・余弦の関係)"],print(ev13)/*(◆修正部分3)*/,
ansl:["cos(2*a)",ev13[1],float(cos(deg1)^2-sin(deg1)^2),float(2*cos(deg1)^2-1),float(1-2*sin(deg1)^2),"計算結果"],print(ansl)/*(◆修正部分3)*/


◆コマンド番号702
●正弦・余弦の2倍角の公式
●●●●●●●●●●●●●●●●
kill(all) /**/$
(MONDAI:"・練習30 702 0< a< Pi/2でsin(a)=3/5のとき、cos(a)は、"/*(◆修正部分1)*/,
KOUSATU:"正角(三角関数の定義角)が鋭角の直角三角形で、底辺と斜辺が・・・"/*(◆修正部分1)*/)$
(KANSUU:"",
gr(T,c,grl,pP,pK,xm,xM,ym,yM):=block(
/**/wxdraw2d(
/*....*/title =T, yrange=[ym,yM] /* "タイトルと値域を確認し" */,
/*....*/implicit(c,x,xm,xM,y,ym,yM),
/*....*/color=black,
/*....*/implicit(grl[1],x,xm,xM,y,ym,yM),
/*....*/implicit(grl[2],x,xm,xM,y,ym,yM),
/*....*/implicit(y=0,x,xm,xM,y,ym,yM),implicit(x=0,x,xm,xM,y,ym,yM) /* "x,y軸を引く" */,
/*....*/color=red,point_type =7,line_width=4,
/*....*/points_joined =true,point_size =1,points(pK[2]) /* "点pK[1]を赤で打って、赤線で結んで" */,
/*....*/color=cyan,point_type =6,line_width=2,
/*....*/points_joined =true,point_size =1,points(pK[1]) /* "点pK[1]をシアンで打って、シアン線で結んで" */,
/*....*/color=blue,point_type =6,line_width=1,
/*....*/points_joined =true,point_size =1,points(pP)) /* "点pPを青で打って、青線で結んで" */
),
ng2pl(p1l,p2l,m,n):=(p1l*n+p2l*m)/(m+n)/*2点と比から内外分点*/,
p2ngl(pl,p1l,p2l):=block([P,p1,p2,ans],p1:pl-p1l,p2:pl-p2l,P:rat(sqrt(p1.p1)/sqrt(p2.p2)),p1:num(P),p2:denom(P),
/**/print(ng2pl(p1l,p2l,p1,p2)),mes:"内分",if ng2pl(p1l,p2l,p1,p2)#pl then ((if p1>p2 then p2:-p2 else p1:-p1),mes:"外分"),
/**/ans:[p1,":",p2,mes])/*点を2点の内外分比で表示*/,
xtpl(p1l):=block([ansl],ansl:[p1l[1],-p1l[2]])/*x軸対称*/,
ytpl(p1l):=block([ansl],ansl:[-p1l[1],p1l[2]])/*y軸対称*/,
otpl(p1l):=block([ansl],ansl:[-p1l[1],-p1l[2]])/*原点対称*/,
a12(p1l,p2l):=block([ans],if p2l[1]#p1l[1] then ans:(p2l[2]-p1l[2])/(p2l[1]-p1l[1]) else ans:9999)/*傾き*/,
gl(p1l,p2l):=block([ansl],ansl:[p2l[1]-p1l[1],p2l[2]-p1l[2]])/*傾き方向*/,
nl(p1l,p2l):=block([ansl],ansl:[p2l[2]-p1l[2],-(p2l[1]-p1l[1])],ansl:ansl/gcd(ansl[1],ansl[2]))/*垂直方向*/,
dis(p1l,p2l):=block([ans],ans:float(sqrt((p2l-p1l).(p2l-p1l))))/*距離*/,
pppl(p1l,p2l,p3l):=block([ansl],ansl:((p1l-p2l).(p3l-p2l)/dis(p3l,p2l))*(p3l-p2l)/dis(p3l,p2l)),
sind(t):=sin(t/180*%pi),
cosd(t):=cos(t/180*%pi),
tand(t):=tan(t/180*%pi),
asind(sind):=asin(sind)/%pi*180,
acosd(cosd):=acos(cosd)/%pi*180,
atand(tand):=atan(tand)/%pi*180,
ang(p1l,p2l,p3l):=float(acos((dis(p1l,p2l)^2+dis(p2l,p3l)^2-dis(p1l,p3l)^2)/(2*dis(p1l,p2l)*dis(p2l,p3l))))
)$
(TEISUUandKOUSIKI:"",
Pi:%pi,
se:H/sin(K)=2*R /* "正弦定理" */,
ce:H^2=H2^2+H3^2-2*H2*H3*cos(K) /* "余弦定理" */,
cKe:cosK=(H2^2+H3^2-H^2)/(2*H2*H3) /* "角の余弦の式" */,
psd:sind(a+b)=sind(a)*cosd(b)+cosd(a)*sind(b)/*正弦加法度数*/,
ps:sin(a+b)=sin(a)*cos(b)+cos(a)*sin(b)/*正弦加法*/,
pcd:cosd(a+b)=cosd(a)*cosd(b)-sind(a)*sind(b)/*余弦加法度数*/,
pc:cos(a+b)=cos(a)*cos(b)-sin(a)*sin(b)/*余弦加法*/
)$
(TEJUN:"1",
sinA:3/5,sh:num(sinA),ph:denom(sinA),th:sqrt(sh^2-th^2) /*(◆修正部分2)*/,
cosA:th/sh /*(◆修正部分2)*/,
deg:asin(sinA)
)$
(kakunin:"グラフを書いて、視覚的に確認",
r:1,c:x^2+y^2=1,T:"sinA=3/5" /**/,
poL:[0,0],pTL:[cos(deg),sin(deg)],pRL:[cos(deg),0]/*(◆修正部分3)*/,
pKl:[[poL,pRL,pTL,poL],[pTL,poL,pRL]]/*(◆修正部分3)*/,
pP:[poL,pTL,pRL],
yL:r/2*3,xL:yL/2*3,
gr(T,c,[x=0,x=0],pP,pKl,-xL,xL,-yL,yL) /* "グラフ出力すると" */
)$
(TEJUN: "2",
KATEI:["sin(a)=3/5だから、斜辺5、垂辺3","...仮定"],print(KATEI)/*(◆修正部分4)*/,
ev11:["底辺=sqrt(5^2-3^2)=4","(仮定)...(1)",float(sqrt(5^2-3^2)),float(4)],print(ev11)/*(◆修正部分4)*/,
ev12:["cos(a)=4/5","((1),余弦の定義)"],print(ev12)/*(◆修正部分4)*/,
ansl:[ev12[1],"結論"],print(ansl)/*(◆修正部分4)*/
)$
(KAITOU:ansl/*解答*//**/,
SUJIMITI:"sin(a)=3/5となる直角三角形は、底辺が(     )・・・"/*(◆修正部分5)*/,
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)")$

(print(MONDAI),
print(SUJIMITI),
print(KAITOU),
print(FURIKAERI))$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
(MONDAI:"・練習30 702 0< a< Pi/2でsin(a)=3/5のとき、cos(2*a)は、"/*(◆修正部分1)*/,
KOUSATU:"cos(2*a)=cos(a+a)と考えて、・・・"/*(◆修正部分1)*/)$
sinA:3/5,deg:asin(sinA),cosA:4/5,sin2A:2*sinA*cosA,cos2A:cosA^2-sinA^2 /*(◆修正部分2)*/,
poL:[0,0],pTL:[cos(deg),sin(deg)],pRL:[cos(deg),0],p2TL:[cos2A,sin2A],p2QL:pppl(p2TL,poL,pTL),p2RL:[cos2A,0]/*(◆修正部分3)*/,
pKl:[[poL,p2QL,p2TL,poL],[p2TL,poL,p2RL,p2TL]]/*(◆修正部分3)*/,
KATEI:["sin(a)=3/5、cos(a)=4/5","(仮定,前々問の結論)...仮定"],print(KATEI)/*(◆修正部分4)*/,
ev11:["cos(2*a)=cos(a+a)=cos(a)^2-sin(a)^2","(加法定理・2倍角の公式)...(1)",float(cos(2*deg)),float(cosA^2-sinA^2)],print(ev11)/*(◆修正部分4)*/,
ev12:[" =(4/5)^2-(3/5)^2","(仮定)",float((4/5)^2-(3/5)^2)],print(ev12)/*(◆修正部分4)*/,
ev13:["cos(2*a)=7/25",float(7/25)],print(ev13)/*(◆修正部分4)*/,
ansl:[ev13[1],"結論"],print(ansl)/*(◆修正部分4)*/
SUJIMITI:"cos(2*a)=cos(a+a)と考えて、cos(2*a)=(     )・・・"/*(◆修正部分5)*/,


◆コマンド番号703
●正弦・余弦の2倍角の公式
●●●●●●●●●●●●●●●●
kill(all) /**/$
(MONDAI:"・例題6・練習31 703 sin(2*a)/(1+cos(2*a))=tan(a)を示せ。"/*(◆修正部分1)*/,
KOUSATU:"2倍角公式により、・・・"/**/)$
(KANSUU:"",
gr(T,c,l,pP,pK,xm,xM,ym,yM):=block(
/**/wxdraw2d(
/*....*/title =T, yrange=[ym,yM] /* "タイトルと値域を確認し" */,
/*....*/implicit(c,x,xm,xM,y,ym,yM),
/*....*/color=black,
/*....*/implicit(l,x,xm,xM,y,ym,yM),
/*....*/implicit(y=0,x,xm,xM,y,ym,yM),implicit(x=0,x,xm,xM,y,ym,yM) /* "x,y軸を引く" */,
/*....*/color=red,point_type =7,line_width=2,
/*....*/points_joined =true,point_size =1,points(pK[2]) /* "点pKを赤で打って、赤線で結んで" */,
/*....*/color=cyan,point_type =7,line_width=2,
/*....*/points_joined =true,point_size =1,points(pK[1]) /* "点pKを赤で打って、赤線で結んで" */,
/*....*/color=blue,point_type =6,
/*....*/points_joined =true,point_size =1,points(pP)) /* "点pPを青で打って、青線で結んで" */
),
ng2pl(p1l,p2l,m,n):=(p1l*n+p2l*m)/(m+n)/*2点と比から内外分点*/,
p2ngl(pl,p1l,p2l):=block([P,p1,p2,ans],p1:pl-p1l,p2:pl-p2l,P:rat(sqrt(p1.p1)/sqrt(p2.p2)),p1:num(P),p2:denom(P),
/**/print(ng2pl(p1l,p2l,p1,p2)),mes:"内分",if ng2pl(p1l,p2l,p1,p2)#pl then ((if p1>p2 then p2:-p2 else p1:-p1),mes:"外分"),
/**/ans:[p1,":",p2,mes])/*点を2点の内外分比で表示*/,
xtpl(p1l):=block([ansl],ansl:[p1l[1],-p1l[2]])/*x軸対称*/,
ytpl(p1l):=block([ansl],ansl:[-p1l[1],p1l[2]])/*y軸対称*/,
otpl(p1l):=block([ansl],ansl:[-p1l[1],-p1l[2]])/*原点対称*/,
a12(p1l,p2l):=block([ans],if p2l[1]#p1l[1] then ans:(p2l[2]-p1l[2])/(p2l[1]-p1l[1]) else ans:9999)/*傾き*/,
gl(p1l,p2l):=block([ansl],ansl:[p2l[1]-p1l[1],p2l[2]-p1l[2]])/*傾き方向*/,
nl(p1l,p2l):=block([ansl],ansl:[p2l[2]-p1l[2],-(p2l[1]-p1l[1])],ansl:ansl/gcd(ansl[1],ansl[2]))/*垂直方向*/,
dis(p1l,p2l):=block([ans],ans:float(sqrt((p2l-p1l).(p2l-p1l))))/*距離*/,
pppl(p1l,p2l,p3l):=block([ansl],ansl:((p1l-p2l).(p3l-p2l)/dis(p3l,p2l))*(p3l-p2l)/dis(p3l,p2l)),
sind(t):=sin(t/180*%pi),
cosd(t):=cos(t/180*%pi),
tand(t):=tan(t/180*%pi),
asind(sind):=asin(sind)/%pi*180,
acosd(cosd):=acos(cosd)/%pi*180,
atand(tand):=atan(tand)/%pi*180,
ang(p1l,p2l,p3l):=float(acos((dis(p1l,p2l)^2+dis(p2l,p3l)^2-dis(p1l,p3l)^2)/(2*dis(p1l,p2l)*dis(p2l,p3l))))
)$
(TEISUUandKOUSIKI:"",
Pi:%pi,
se:H/sin(K)=2*R /* "正弦定理" */,
ce:H^2=H2^2+H3^2-2*H2*H3*cos(K) /* "余弦定理" */,
cKe:cosK=(H2^2+H3^2-H^2)/(2*H2*H3) /* "角の余弦の式" */,
psd:sind(a+b)=sind(a)*cosd(b)+cosd(a)*sind(b)/*正弦加法度数*/,
ps:sin(a+b)=sin(a)*cos(b)+cos(a)*sin(b)/*正弦加法*/,
pcd:cosd(a+b)=cosd(a)*cosd(b)-sind(a)*sind(b)/*余弦加法度数*/,
pc:cos(a+b)=cos(a)*cos(b)-sin(a)*sin(b)/*余弦加法*/
)$
(TEJUN:"1",
deg:30/*(◆修正部分2)*/,
poL:[0,0],pPL:[cosd(2*deg),sind(2*deg)],p1L:[cosd(deg),sind(deg)],pTL:[1,tand(deg)]/*(◆修正部分2)*/,
pIL:[1,0],pJL:[-1,0],pSL:[pPL[1],0]/*(◆修正部分2)*/
)$
(kakunin:"グラフを書いて、視覚的に確認",
r:1,c:x^2+y^2=r^2,
T:"P/T/JOSI" /*(◆修正部分3)*/,
pK:[[poL,pSL,pPL,poL],[pJL,pSL,pPL,pJL]]/*(◆修正部分3)*/,
pP:[poL,pIL,pTL,p1L,poL],
yL:r/2*3,xL:yL/2*3,
gr(T,c,x=0,pP,pK,-xL,xL,-yL,yL) /* "グラフ出力すると" */
)$
(TEJUN: "2",
KATEI:["OP=1、∠PSJ=∠TIO=直角、∠IOT=a、∠TOP=a","...仮定"],print(KATEI)/*(◆修正部分4)*/,
ev11:["LHS=sin(2*a)/(1+cos(2*a))=(2*sin(a)*cos(a))/(1+(2*cos(a)-1))","(2倍角公式)",float(sind(2*deg)/(1+cosd(2*deg))),float((2*sind(deg)*cosd(deg))/(1+(2*cosd(deg)^2-1)))],print(ev11)/*(◆修正部分4)*/,
ev12:[" =(2*sin(a)*cos(a))/(2*cos(a)^2)",float((2*sind(deg)*cosd(deg))/(2*cosd(deg)^2))],print(ev12)/*(◆修正部分4)*/,
ev13:[" =(sin(a))/(cos(a))=tan(a)=RHS","(正接の定義)",float((sind(deg))/(cosd(deg))),float(tand(deg))],print(ev13)/*(◆修正部分4)*/,
ansl:["sin(2*a)/(1+cos(2*a))=tan(a)","結論",float(sind(2*deg)/(1+cosd(2*deg))),float(tand(deg))],print(ansl)/*(◆修正部分4)*/
)$
(KAITOU:ansl/*解答*//**/,
SUJIMITI:"2倍角公式により、cos(2*a)=(     )・・・"/**/,
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)")$

(print(MONDAI),
print(SUJIMITI),
print(KAITOU),
print(FURIKAERI))$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
(MONDAI:"・例題6・練習31 703 cos(a)^4-sin(a)^4=cos(2*a)を示せ。"/*(◆修正部分1)*/,
deg:30/*(◆修正部分2)*/,
poL:[0,0],pPL:[cosd(2*deg),sind(2*deg)],p1L:[cosd(deg),sind(deg)],pTL:[1,tand(deg)]/*(◆修正部分2)*/,
pIL:[1,0],pJL:[0,1],pSL:[pPL[1],0],pHL:[pSL[1],1]/*(◆修正部分2)*/
T:"JH/P/T/OSI" /*(◆修正部分3)*/,
pK:[[poL,pSL,pPL,poL],[pJL,poL,pSL,pHL,pJL]]/*(◆修正部分3)*/,
KATEI:["OP=1、∠PSJ=∠TIO=直角、∠IOT=a、∠TOP=a","...仮定"],print(KATEI)/*(◆修正部分4)*/,
ev11:["LHS=cos(a)^4-sin(a)^4=(cos(a)^2-sin(a)^2)*(cos(a)^2+sin(a)^2)","(因数分解公式)",float(cosd(deg)^4-sind(deg)^4),float((cosd(deg)^2-sind(deg)^2)*(cosd(deg)^2+sind(deg)^2))],print(ev11)/*(◆修正部分4)*/,
ev12:[" =cos(a)^2-sin(a)^2","正弦・余弦の関係式",float(cosd(deg)^2-sind(deg)^2)],print(ev12)/*(◆修正部分4)*/,
ev13:[" =cos(2*a)=RHS","(余弦の2倍角公式)",float(cosd(2*deg))],print(ev13)/*(◆修正部分4)*/,
ansl:["cos(a)^4-sin(a)^4=cos(2*a)","結論",float(cosd(deg)^4-sind(deg)^4),float(cosd(2*deg))],print(ansl)/*(◆修正部分4)*/


◆コマンド番号704
●正弦・余弦の半角の公式
●●●●●●●●●●●●●●●●
kill(all) /**/$
(MONDAI:"・ 704 sin(a/2)^2=(1-cos(a))/2を示せ。"/*(◆修正部分1)*/,
KOUSATU:"2倍角公式により、・・・"/**/)$
(KANSUU:"",
gr(T,c,l,pP,pK,xm,xM,ym,yM):=block(
/**/wxdraw2d(
/*....*/title =T, yrange=[ym,yM] /* "タイトルと値域を確認し" */,
/*....*/implicit(c,x,xm,xM,y,ym,yM),
/*....*/color=black,
/*....*/implicit(l,x,xm,xM,y,ym,yM),
/*....*/implicit(y=0,x,xm,xM,y,ym,yM),implicit(x=0,x,xm,xM,y,ym,yM) /* "x,y軸を引く" */,
/*....*/color=red,point_type =7,line_width=2,
/*....*/points_joined =true,point_size =1,points(pK[1]) /* "点pKを赤で打って、赤線で結んで" */,
/*....*/color=blue,point_type =6,
/*....*/points_joined =true,point_size =1,points(pP)) /* "点pPを青で打って、青線で結んで" */
),
ng2pl(p1l,p2l,m,n):=(p1l*n+p2l*m)/(m+n)/*2点と比から内外分点*/,
p2ngl(pl,p1l,p2l):=block([P,p1,p2,ans],p1:pl-p1l,p2:pl-p2l,P:rat(sqrt(p1.p1)/sqrt(p2.p2)),p1:num(P),p2:denom(P),
/**/print(ng2pl(p1l,p2l,p1,p2)),mes:"内分",if ng2pl(p1l,p2l,p1,p2)#pl then ((if p1>p2 then p2:-p2 else p1:-p1),mes:"外分"),
/**/ans:[p1,":",p2,mes])/*点を2点の内外分比で表示*/,
xtpl(p1l):=block([ansl],ansl:[p1l[1],-p1l[2]])/*x軸対称*/,
ytpl(p1l):=block([ansl],ansl:[-p1l[1],p1l[2]])/*y軸対称*/,
otpl(p1l):=block([ansl],ansl:[-p1l[1],-p1l[2]])/*原点対称*/,
a12(p1l,p2l):=block([ans],if p2l[1]#p1l[1] then ans:(p2l[2]-p1l[2])/(p2l[1]-p1l[1]) else ans:9999)/*傾き*/,
gl(p1l,p2l):=block([ansl],ansl:[p2l[1]-p1l[1],p2l[2]-p1l[2]])/*傾き方向*/,
nl(p1l,p2l):=block([ansl],ansl:[p2l[2]-p1l[2],-(p2l[1]-p1l[1])],ansl:ansl/gcd(ansl[1],ansl[2]))/*垂直方向*/,
dis(p1l,p2l):=block([ans],ans:float(sqrt((p2l-p1l).(p2l-p1l))))/*距離*/,
pppl(p1l,p2l,p3l):=block([ansl],ansl:((p1l-p2l).(p3l-p2l)/dis(p3l,p2l))*(p3l-p2l)/dis(p3l,p2l)),
sind(t):=sin(t/180*%pi),
cosd(t):=cos(t/180*%pi),
tand(t):=tan(t/180*%pi),
asind(sind):=asin(sind)/%pi*180,
acosd(cosd):=acos(cosd)/%pi*180,
atand(tand):=atan(tand)/%pi*180,
ang(p1l,p2l,p3l):=float(acos((dis(p1l,p2l)^2+dis(p2l,p3l)^2-dis(p1l,p3l)^2)/(2*dis(p1l,p2l)*dis(p2l,p3l))))
)$
(TEISUUandKOUSIKI:"",
Pi:%pi,
se:H/sin(K)=2*R /* "正弦定理" */,
ce:H^2=H2^2+H3^2-2*H2*H3*cos(K) /* "余弦定理" */,
cKe:cosK=(H2^2+H3^2-H^2)/(2*H2*H3) /* "角の余弦の式" */,
psd:sind(a+b)=sind(a)*cosd(b)+cosd(a)*sind(b)/*正弦加法度数*/,
ps:sin(a+b)=sin(a)*cos(b)+cos(a)*sin(b)/*正弦加法*/,
pcd:cosd(a+b)=cosd(a)*cosd(b)-sind(a)*sind(b)/*余弦加法度数*/,
pc:cos(a+b)=cos(a)*cos(b)-sin(a)*sin(b)/*余弦加法*/
)$
(TEJUN:"1",
deg:Pi/3/**/,
poL:[0,0],pPL:[cos(deg/2),sin(deg/2)],pQL:[cos(deg),sin(deg)],pTL:[1,tan(deg)]/**/,
pIL:[1,0],pJL:[-1,0],pSL:[pPL[1],0],pKL:[pQL[1],0]/**/
)$
(kakunin:"グラフを書いて、視覚的に確認",
r:1,c:x^2+y^2=r^2,
T:"Q/P/OKS" /**/,
pK:[[pSL,poL,pPL,pSL]]/**/,
pP:[pQL,poL,pKL,pQL],
yL:r/2*3,xL:yL/2*3,
gr(T,c,x=0,pP,pK,-xL,xL,-yL,yL) /* "グラフ出力すると" */
)$
(TEJUN: "2",
KATEI:["OP=1、∠PSO=∠QKO=直角、∠KOQ=a、∠SOP=a/2","...仮定"],print(KATEI)/**/,
ev11:["cos(a)=1-2*sin(a/2)^2","(2倍角公式)",float(cos(deg)),float(1-2*sin(deg/2)^2)],print(ev11)/*(◆修正部分2)*/,
ev12:["LHS=sin(a/2)^2=(1-cos(a))/2","半角公式", float(sin(deg/2)^2),float((1-cos(deg))/2)],print(ev12)/*(◆修正部分2)*/,
ev13:[" =RHS"],print(ev13)/*(◆修正部分2)*/,
ansl:["sin(a/2)^2=(1-cos(a))/2","結論"],print(ansl)/*(◆修正部分2)*/
)$
(KAITOU:ansl/*解答*//**/,
SUJIMITI:"半角公式により、sin(a/2)=(     )・・・"/*(◆修正部分3)*/,
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)")$

(print(MONDAI),
print(SUJIMITI),
print(KAITOU),
print(FURIKAERI))$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
(MONDAI:"・ 704 cos(a/2)^2=(1+cos(a))/2を示せ。"/*(◆修正部分1)*/,
ev11:["cos(a)=2*cos(a/2)^2-1","(2倍角公式)",float(cos(deg)),float(2*cos(deg/2)^2-1)],print(ev11)/*(◆修正部分2)*/,
ev12:["LHS=cos(a/2)^2=(1+cos(a))/2","半角公式", float(cos(deg/2)^2),float((1+cos(deg))/2)],print(ev12)/*(◆修正部分2)*/,
ev13:[" =RHS"],print(ev13)/*(◆修正部分2)*/,
ansl:["cos(a/2)^2=(1+cos(a))/2","結論"],print(ansl)/*(◆修正部分2)*/
SUJIMITI:"半角公式により、cos(a/2)=(     )・・・"/*(◆修正部分3)*/,


◆コマンド番号705
●正弦・余弦の半角の公式
●●●●●●●●●●●●●●●●
kill(all) /**/$
(MONDAI:"・例14・練習32 705 cos(Pi/8)は、"/*(◆修正部分1)*/,
KOUSATU:"半角公式により、・・・"/**/)$
(KANSUU:"",
gr(T,c,l,pP,pK,xm,xM,ym,yM):=block(
/**/wxdraw2d(
/*....*/title =T, yrange=[ym,yM] /* "タイトルと値域を確認し" */,
/*....*/implicit(c,x,xm,xM,y,ym,yM),
/*....*/color=black,
/*....*/implicit(l,x,xm,xM,y,ym,yM),
/*....*/implicit(y=0,x,xm,xM,y,ym,yM),implicit(x=0,x,xm,xM,y,ym,yM) /* "x,y軸を引く" */,
/*....*/color=red,point_type =7,line_width=2,
/*....*/points_joined =true,point_size =1,points(pK[1]) /* "点pKを赤で打って、赤線で結んで" */,
/*....*/color=blue,point_type =6,
/*....*/points_joined =true,point_size =1,points(pP)) /* "点pPを青で打って、青線で結んで" */
),
ng2pl(p1l,p2l,m,n):=(p1l*n+p2l*m)/(m+n)/*2点と比から内外分点*/,
p2ngl(pl,p1l,p2l):=block([P,p1,p2,ans],p1:pl-p1l,p2:pl-p2l,P:rat(sqrt(p1.p1)/sqrt(p2.p2)),p1:num(P),p2:denom(P),
/**/print(ng2pl(p1l,p2l,p1,p2)),mes:"内分",if ng2pl(p1l,p2l,p1,p2)#pl then ((if p1>p2 then p2:-p2 else p1:-p1),mes:"外分"),
/**/ans:[p1,":",p2,mes])/*点を2点の内外分比で表示*/,
xtpl(p1l):=block([ansl],ansl:[p1l[1],-p1l[2]])/*x軸対称*/,
ytpl(p1l):=block([ansl],ansl:[-p1l[1],p1l[2]])/*y軸対称*/,
otpl(p1l):=block([ansl],ansl:[-p1l[1],-p1l[2]])/*原点対称*/,
a12(p1l,p2l):=block([ans],if p2l[1]#p1l[1] then ans:(p2l[2]-p1l[2])/(p2l[1]-p1l[1]) else ans:9999)/*傾き*/,
gl(p1l,p2l):=block([ansl],ansl:[p2l[1]-p1l[1],p2l[2]-p1l[2]])/*傾き方向*/,
nl(p1l,p2l):=block([ansl],ansl:[p2l[2]-p1l[2],-(p2l[1]-p1l[1])],ansl:ansl/gcd(ansl[1],ansl[2]))/*垂直方向*/,
dis(p1l,p2l):=block([ans],ans:float(sqrt((p2l-p1l).(p2l-p1l))))/*距離*/,
pppl(p1l,p2l,p3l):=block([ansl],ansl:((p1l-p2l).(p3l-p2l)/dis(p3l,p2l))*(p3l-p2l)/dis(p3l,p2l)),
sind(t):=sin(t/180*%pi),
cosd(t):=cos(t/180*%pi),
tand(t):=tan(t/180*%pi),
asind(sind):=asin(sind)/%pi*180,
acosd(cosd):=acos(cosd)/%pi*180,
atand(tand):=atan(tand)/%pi*180,
ang(p1l,p2l,p3l):=float(acos((dis(p1l,p2l)^2+dis(p2l,p3l)^2-dis(p1l,p3l)^2)/(2*dis(p1l,p2l)*dis(p2l,p3l))))
)$
(TEISUUandKOUSIKI:"",
Pi:%pi,
se:H/sin(K)=2*R /* "正弦定理" */,
ce:H^2=H2^2+H3^2-2*H2*H3*cos(K) /* "余弦定理" */,
cKe:cosK=(H2^2+H3^2-H^2)/(2*H2*H3) /* "角の余弦の式" */,
psd:sind(a+b)=sind(a)*cosd(b)+cosd(a)*sind(b)/*正弦加法度数*/,
ps:sin(a+b)=sin(a)*cos(b)+cos(a)*sin(b)/*正弦加法*/,
pcd:cosd(a+b)=cosd(a)*cosd(b)-sind(a)*sind(b)/*余弦加法度数*/,
pc:cos(a+b)=cos(a)*cos(b)-sin(a)*sin(b)/*余弦加法*/
)$
(TEJUN:"1",
deg:Pi/8/*(◆修正部分2)*/,
poL:[0,0],pPL:[cos(deg),sin(deg)],pQL:[cos(2*deg),sin(2*deg)],pTL:[1,tan(deg)]/**/,
pIL:[1,0],pJL:[-1,0],pSL:[pPL[1],0],pKL:[pQL[1],0]/**/
)$
(kakunin:"グラフを書いて、視覚的に確認",
r:1,c:x^2+y^2=r^2,
T:"Q/P/OKS" /**/,
pK:[[pSL,poL,pPL,pSL]]/**/,
pP:[pQL,poL,pKL,pQL],
yL:r/2*3,xL:yL/2*3,
gr(T,c,x=0,pP,pK,-xL,xL,-yL,yL) /* "グラフ出力すると" */
)$
(TEJUN: "2",algebraic:true,
KATEI:["OP=1、∠PSO=∠QKO=直角、∠KOQ=Pi/4、∠SOP=Pi/8","...仮定"],print(KATEI)/**/,
ev11:["cos(Pi/8)^2=(1+cos(Pi/4))/2","(半角公式)",float(cos(deg)^2),float((1+cos(2*deg))/2)],print(ev11)/*(◆修正部分3)*/,
ev12:["cos(Pi/8)=","sqrt((1+cos(Pi/4))/2)","(cos(Pi/8)>0)", float(cos(deg)),float(sqrt((1+cos(2*deg))/2))],print(ev12)/*(◆修正部分3)*/,
ev13:[" = ",rat(sqrt(rat((1+cos(2*deg))/2))],print(ev13)/*(◆修正部分3)*/,
ansl:["cos(Pi/8)^2=",ev13[2],"結論"],print(ansl)/*(◆修正部分3)*/
)$
(KAITOU:ansl/*解答*//**/,
SUJIMITI:"半角公式により、cos(Pi/8)=(     )・・・"/*(◆修正部分4)*/,
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)")$

(print(MONDAI),
print(SUJIMITI),
print(KAITOU),
print(FURIKAERI))$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
(MONDAI:"・例14・練習32 705 sin(3*Pi/8)は、"/*(◆修正部分1)*/,
deg:3*Pi/8/*(◆修正部分2)*/,
ev11:["sin(3*Pi/8)^2=(1-cos(3*Pi/4))/2","(半角公式)",float(sin(deg)^2),float((1-cos(2*deg))/2)],print(ev11)/*(◆修正部分3)*/,
ev12:["sin(3*Pi/8)=","sqrt((1-cos(3*Pi/4))/2)","(sin(3*Pi/8)>0)", float(sin(deg)),float(sqrt((1-cos(2*deg))/2))],print(ev12)/*(◆修正部分3)*/,
ev13:[" = ",rat(sqrt(rat((1-cos(2*deg))/2)))],print(ev13)/*(◆修正部分3)*/,
ansl:["sin(3*Pi/8)^2=",ev13[2],"結論"],print(ansl)/*(◆修正部分3)*/
SUJIMITI:"半角公式により、sin(3*Pi/8)=(     )・・・"/*(◆修正部分4)*/,


◆コマンド番号706
●正接の2倍角・半角の公式
●●●●●●●●●●●●●●●●
kill(all) /**/$
(MONDAI:"・ 706 tan(2*t)=2*tan(t)/(1-tan(t)^2)を示せ"/*(◆修正部分1)*/,
KOUSATU:"正弦・余弦と正接の関係式により、・・・"/**/)$
(KANSUU:"",
gr(T,c,l,pP,pQ,xm,xM,ym,yM):=block(
/**/wxdraw2d(
/*....*/title =T, yrange=[ym,yM] /* "タイトルと値域を確認し" */,
/*....*/implicit(c,x,xm,xM,y,ym,yM),
/*....*/color=black,
/*....*/implicit(l,x,xm,xM,y,ym,yM),
/*....*/implicit(y=0,x,xm,xM,y,ym,yM),implicit(x=0,x,xm,xM,y,ym,yM) /* "x,y軸を引く" */,
/*....*/color=red,point_type =7,line_width=2,
/*....*/points_joined =true,point_size =1,points(pQ) /* "点pKを赤で打って、赤線で結んで" */,
/*....*/color=blue,point_type =6,
/*....*/points_joined =true,point_size =1,points(pP)) /* "点pPを青で打って、青線で結んで" */
),
ng2pl(p1l,p2l,m,n):=(p1l*n+p2l*m)/(m+n)/*2点と比から内外分点*/,
p2ngl(pl,p1l,p2l):=block([P,p1,p2,ans],p1:pl-p1l,p2:pl-p2l,P:rat(sqrt(p1.p1)/sqrt(p2.p2)),p1:num(P),p2:denom(P),
/**/print(ng2pl(p1l,p2l,p1,p2)),mes:"内分",if ng2pl(p1l,p2l,p1,p2)#pl then ((if p1>p2 then p2:-p2 else p1:-p1),mes:"外分"),
/**/ans:[p1,":",p2,mes])/*点を2点の内外分比で表示*/,
xtpl(p1l):=block([ansl],ansl:[p1l[1],-p1l[2]])/*x軸対称*/,
ytpl(p1l):=block([ansl],ansl:[-p1l[1],p1l[2]])/*y軸対称*/,
otpl(p1l):=block([ansl],ansl:[-p1l[1],-p1l[2]])/*原点対称*/,
a12(p1l,p2l):=block([ans],if p2l[1]#p1l[1] then ans:(p2l[2]-p1l[2])/(p2l[1]-p1l[1]) else ans:9999)/*傾き*/,
gl(p1l,p2l):=block([ansl],ansl:[p2l[1]-p1l[1],p2l[2]-p1l[2]])/*傾き方向*/,
nl(p1l,p2l):=block([ansl],ansl:[p2l[2]-p1l[2],-(p2l[1]-p1l[1])],ansl:ansl/gcd(ansl[1],ansl[2]))/*垂直方向*/,
dis(p1l,p2l):=block([ans],ans:float(sqrt((p2l-p1l).(p2l-p1l))))/*距離*/,
pppl(p1l,p2l,p3l):=block([ansl],ansl:((p1l-p2l).(p3l-p2l)/dis(p3l,p2l))*(p3l-p2l)/dis(p3l,p2l)),
sind(t):=sin(t/180*%pi),
cosd(t):=cos(t/180*%pi),
tand(t):=tan(t/180*%pi),
asind(sind):=asin(sind)/%pi*180,
acosd(cosd):=acos(cosd)/%pi*180,
atand(tand):=atan(tand)/%pi*180,
ang(p1l,p2l,p3l):=float(acos((dis(p1l,p2l)^2+dis(p2l,p3l)^2-dis(p1l,p3l)^2)/(2*dis(p1l,p2l)*dis(p2l,p3l))))
)$
(TEISUUandKOUSIKI:"",
Pi:%pi,
se:H/sin(K)=2*R /* "正弦定理" */,
ce:H^2=H2^2+H3^2-2*H2*H3*cos(K) /* "余弦定理" */,
cKe:cosK=(H2^2+H3^2-H^2)/(2*H2*H3) /* "角の余弦の式" */,
psd:sind(a+b)=sind(a)*cosd(b)+cosd(a)*sind(b)/*正弦加法度数*/,
ps:sin(a+b)=sin(a)*cos(b)+cos(a)*sin(b)/*正弦加法*/,
pcd:cosd(a+b)=cosd(a)*cosd(b)-sind(a)*sind(b)/*余弦加法度数*/,
pc:cos(a+b)=cos(a)*cos(b)-sin(a)*sin(b)/*余弦加法*/
)$
(TEJUN:"1",
deg:Pi/8/*(◆修正部分2)*/,
poL:[0,0],pPL:[cos(deg),sin(deg)],pQL:[cos(2*deg),sin(2*deg)],pTL:[1,tan(deg)],pT2L:[1,tan(2*deg)]/*(◆修正部分2)*/,
pIL:[1,0],pJL:[-1,0],pSL:[pPL[1],0],pKL:[pQL[1],0]/**/
)$
(kakunin:"グラフを書いて、視覚的に確認",
r:1,c:x^2+y^2=r^2,
T:"T2/QPT/OKSI" /**/,
pT:[pPL,poL,pIL,pTL,pPL,pSL,poL]/**/,
pT2:[pQL,poL,pIL,pT2L,pQL,pKL,poL]/**/,
pP:[pPL,poL,pSL,pPL]/**/,
pQ:[pQL,poL,pKL,pQL],
yL:r/2*3,xL:yL/2*3,print(pT),print(pT2),
gr(T,c,x=0,pT,pT2,-xL,xL,-yL,yL) /* "グラフ出力すると" */
)$
(TEJUN: "2",algebraic:true,
KATEI:["OP=1、∠PSO=∠QKO=直角、∠KOQ=Pi/4、∠SOP=Pi/8","...仮定"],print(KATEI)/**/,
ev11:["LHS=tan(2*t)=sin(2*t)/cos(2*t)","(正弦・余弦・正接の関係式)",float(tan(2*deg)),float(sin(2*deg)/cos(2*deg))],print(ev11)/*(◆修正部分3)*/,
ev12:[" =","2*sin(t)*cos(t)/(cos(t)^2-sin(t)^2)","(正弦・余弦の2倍角公式)", float(2*sin(deg)*cos(deg)/(cos(deg)^2-sin(deg)^2))],print(ev12)/*(◆修正部分3)*/,
ev13:[" =","(2*sin(t)/cos(t))/(1-sin(t)^2/cos(t)^2)","(分母・分子をcos(t)^2で割る)", float(2*sin(deg)/cos(deg)/(1-sin(deg)^2/cos(deg)^2))],print(ev13)/*(◆修正部分3)*/,
ev14:[" =","2*tan(t)/(1-tan(t)^2)","(正弦・余弦・正接の関係式)", float(2*tan(deg)/(1-tan(deg)^2))],print(ev14)/*(◆修正部分3)*/,
ev15:[" =RHS"],print(ev15)/*(◆修正部分3)*/,
ansl:["tan(2*t)=2*tan(t)/(1-tan(t)^2)","結論"],print(ansl)/*(◆修正部分3)*/
)$
(KAITOU:ansl/*解答*//**/,
SUJIMITI:"正弦・余弦と正接の関係式により、tan(2*t)=(     )・・・"/*(◆修正部分4)*/,
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)")$

(print(MONDAI),
print(SUJIMITI),
print(KAITOU),
print(FURIKAERI))$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
(MONDAI:"・ 706 tan(t/2)^2=(1-cos(t))/(1+cos(t))を示せ"/*(◆修正部分1)*/,
deg:2*Pi/8/*(◆修正部分2)*/,
poL:[0,0],pPL:[cos(deg/2),sin(deg/2)],pQL:[cos(deg),sin(deg)],pTL:[1,tan(deg/2)],pT2L:[1,tan(deg)]/*(◆修正部分2)*/,
ev11:["LHS=tan(t/2)^2=sin(t/2)^2/cos(t/2)^2","(正弦・余弦・正接の関係式)",float(tan(deg/2)^2),float(sin(deg/2)^2/cos(deg/2)^2)],print(ev11)/*(◆修正部分3)*/,
ev12:[" =","((1-cos(t))/2/((1+cos(t))/2)","(正弦・余弦の半角公式)", float(((1-cos(deg))/2)/((1+cos(deg))/2))],print(ev12)/*(◆修正部分3)*/,
ev13:[" =","(1-cos(t))/(1+cos(t))",float((1-cos(deg))/(1+cos(deg)))],print(ev13)/*(◆修正部分3)*/,
ev14:[" =RHS"],print(ev14)/*(◆修正部分3)*/,
ansl:["tan(t/2)^2=(1-cos(t))/(1+cos(t))","結論"],print(ansl)/*(◆修正部分3)*/
SUJIMITI:"正弦・余弦と正接の関係式により、tan(t/2)=(     )・・・"/*(◆修正部分4)*/,


◆コマンド番号707
●正接の2倍角・半角の公式
●●●●●●●●●●●●●●●●
kill(all) /**/$
(MONDAI:"・練習33 707 tan(t)=3のとき、tan(2*t)は"/*(◆修正部分1)*/,
KOUSATU:"正接の2倍角公式により、・・・"/**/)$
(KANSUU:"",
gr(T,c,l,pP,pQ,xm,xM,ym,yM):=block(
/**/wxdraw2d(
/*....*/title =T, yrange=[ym,yM] /* "タイトルと値域を確認し" */,
/*....*/implicit(c,x,xm,xM,y,ym,yM),
/*....*/color=black,
/*....*/implicit(l,x,xm,xM,y,ym,yM),
/*....*/implicit(y=0,x,xm,xM,y,ym,yM),implicit(x=0,x,xm,xM,y,ym,yM) /* "x,y軸を引く" */,
/*....*/color=red,point_type =7,line_width=2,
/*....*/points_joined =true,point_size =1,points(pQ) /* "点pKを赤で打って、赤線で結んで" */,
/*....*/color=blue,point_type =6,
/*....*/points_joined =true,point_size =1,points(pP)) /* "点pPを青で打って、青線で結んで" */
),
ng2pl(p1l,p2l,m,n):=(p1l*n+p2l*m)/(m+n)/*2点と比から内外分点*/,
p2ngl(pl,p1l,p2l):=block([P,p1,p2,ans],p1:pl-p1l,p2:pl-p2l,P:rat(sqrt(p1.p1)/sqrt(p2.p2)),p1:num(P),p2:denom(P),
/**/print(ng2pl(p1l,p2l,p1,p2)),mes:"内分",if ng2pl(p1l,p2l,p1,p2)#pl then ((if p1>p2 then p2:-p2 else p1:-p1),mes:"外分"),
/**/ans:[p1,":",p2,mes])/*点を2点の内外分比で表示*/,
xtpl(p1l):=block([ansl],ansl:[p1l[1],-p1l[2]])/*x軸対称*/,
ytpl(p1l):=block([ansl],ansl:[-p1l[1],p1l[2]])/*y軸対称*/,
otpl(p1l):=block([ansl],ansl:[-p1l[1],-p1l[2]])/*原点対称*/,
a12(p1l,p2l):=block([ans],if p2l[1]#p1l[1] then ans:(p2l[2]-p1l[2])/(p2l[1]-p1l[1]) else ans:9999)/*傾き*/,
gl(p1l,p2l):=block([ansl],ansl:[p2l[1]-p1l[1],p2l[2]-p1l[2]])/*傾き方向*/,
nl(p1l,p2l):=block([ansl],ansl:[p2l[2]-p1l[2],-(p2l[1]-p1l[1])],ansl:ansl/gcd(ansl[1],ansl[2]))/*垂直方向*/,
dis(p1l,p2l):=block([ans],ans:float(sqrt((p2l-p1l).(p2l-p1l))))/*距離*/,
pppl(p1l,p2l,p3l):=block([ansl],ansl:((p1l-p2l).(p3l-p2l)/dis(p3l,p2l))*(p3l-p2l)/dis(p3l,p2l)),
sind(t):=sin(t/180*%pi),
cosd(t):=cos(t/180*%pi),
tand(t):=tan(t/180*%pi),
asind(sind):=asin(sind)/%pi*180,
acosd(cosd):=acos(cosd)/%pi*180,
atand(tand):=atan(tand)/%pi*180,
ang(p1l,p2l,p3l):=float(acos((dis(p1l,p2l)^2+dis(p2l,p3l)^2-dis(p1l,p3l)^2)/(2*dis(p1l,p2l)*dis(p2l,p3l))))
)$
(TEISUUandKOUSIKI:"",
Pi:%pi,
se:H/sin(K)=2*R /* "正弦定理" */,
ce:H^2=H2^2+H3^2-2*H2*H3*cos(K) /* "余弦定理" */,
cKe:cosK=(H2^2+H3^2-H^2)/(2*H2*H3) /* "角の余弦の式" */,
psd:sind(a+b)=sind(a)*cosd(b)+cosd(a)*sind(b)/*正弦加法度数*/,
ps:sin(a+b)=sin(a)*cos(b)+cos(a)*sin(b)/*正弦加法*/,
pcd:cosd(a+b)=cosd(a)*cosd(b)-sind(a)*sind(b)/*余弦加法度数*/,
pc:cos(a+b)=cos(a)*cos(b)-sin(a)*sin(b)/*余弦加法*/
)$
(TEJUN:"1",
deg:atan(3)/*(◆修正部分2)*/,
poL:[0,0],pPL:[cos(deg),sin(deg)],pQL:[cos(2*deg),sin(2*deg)],pTL:[1,tan(deg)],pT2L:[1,tan(2*deg)]/*(◆修正部分2)*/,
pIL:[1,0],pJL:[-1,0],pSL:[pPL[1],0],pKL:[pQL[1],0]/**/
)$
(kakunin:"グラフを書いて、視覚的に確認",
r:1,c:x^2+y^2=r^2,
T:"T/QP/KOSI/T2" /*(◆修正部分3)*/,
pT:[pPL,poL,pIL,pTL,pPL,pSL,poL]/**/,
pT2:[pQL,poL,pIL,pT2L,pQL,pKL,poL]/**/,
pP:[pPL,poL,pSL,pPL]/**/,
pQ:[pQL,poL,pKL,pQL],
yL:r/2*7,xL:yL/2*3,print(pT),print(pT2)/*(◆修正部分4)*/,
gr(T,c,x=0,pT,pT2,-xL,xL,-yL,yL) /* "グラフ出力すると" */
)$
(TEJUN: "2",algebraic:true,
KATEI:["OP=1、∠PSO=∠QKO=直角、∠KOQ=2*t、∠SOP=t、TI=3","...仮定"],print(KATEI)/*(◆修正部分5)*/,
ev11:["tan(2*t)=2*tan(t)/(1-tan(t)^2)","(正接の2倍角公式)",float(tan(2*deg)),float(2*tan(deg)/(1-tan(deg)^2))],print(ev11)/*(◆修正部分5)*/,
ev12:[" =2*(3)/(1-(3)^2)",float(2*(3)/(1-(3)^2))],print(ev12)/*(◆修正部分5)*/,
ev13:[" =-3/4",float(-3/4)],print(ev13)/*(◆修正部分5)*/,
ansl:["tan(2*t)=-3/4","結論"],print(ansl)/*(◆修正部分5)*/
)$
(KAITOU:ansl/*解答*//**/,
SUJIMITI:"正接の2倍角公式により、tan(2*t)=(     )・・・"/*(◆修正部分6)*/,
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)")$

(print(MONDAI),
print(SUJIMITI),
print(KAITOU),
print(FURIKAERI))$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
(MONDAI:"・練習33 707 0< t < Pi/2で、cos(t)=2/3のとき、tan(t/2)は"/*(◆修正部分1)*/,
deg:acos(2/3)/*(◆修正部分2)*/,
poL:[0,0],pPL:[cos(deg/2),sin(deg/2)],pQL:[cos(deg),sin(deg)],pTL:[1,tan(deg/2)],pT2L:[1,tan(deg)]/*(◆修正部分2)*/,
T:"T2/QPT/OKSI" /*(◆修正部分3)*/,
yL:r/2*3,xL:yL/2*3,print(pT),print(pT2)/*(◆修正部分4)*/,
KATEI:["OP=1、∠PSO=∠QKO=直角、∠KOQ=2*t、∠SOP=t、OK=2/3","...仮定"],print(KATEI)/*(◆修正部分5)*/,
ev11:["tan(t/2)^2=(1-cos(t))/(1+cos(t))","(正接の半角公式)",float(tan(deg/2)^2),float((1-cos(deg))/(1+cos(deg)))],print(ev11)/*(◆修正部分5)*/,
ev12:[" =","((1-(2/3))/(1+(2/3))",float((1-cos(deg))/(1+cos(deg)))],print(ev12)/*(◆修正部分5)*/,
ev13:[" =","(1/5)",float(1/5)],print(ev13)/*(◆修正部分5)*/,
ansl:["tan(t/2)=sqrt(5)/5","(0< t< Pi/2)","結論"],print(ansl)/*(◆修正部分5)*/
SUJIMITI:"正弦・余弦と正接の関係式により、tan(t/2)=(     )・・・"/*(◆修正部分6)*/,


◆コマンド番号708
●2倍角・半角の公式
●●●●●●●●●●●●●●●●
kill(all) /**/$
(MONDAI:"・応用例題4・練習34 708 0<=t< 2*Pi のとき、cos(2*t)+cos(t)+1=0を解け"/*(◆修正部分1)*/,
KOUSATU:"2倍角公式により、・・・"/*(◆修正部分1)*/)$
(KANSUU:"",
gr(T,c,l,pP,pQ,xm,xM,ym,yM):=block(
/**/wxdraw2d(
/*....*/title =T, yrange=[ym,yM] /* "タイトルと値域を確認し" */,
/*....*/implicit(c,x,xm,xM,y,ym,yM),
/*....*/color=black,
/*....*/implicit(l,x,xm,xM,y,ym,yM),
/*....*/implicit(y=0,x,xm,xM,y,ym,yM),implicit(x=0,x,xm,xM,y,ym,yM) /* "x,y軸を引く" */,
/*....*/color=red,point_type =7,line_width=2,
/*....*/points_joined =true,point_size =1,points(pQ) /* "点pKを赤で打って、赤線で結んで" */,
/*....*/color=blue,point_type =6,
/*....*/points_joined =true,point_size =1,points(pP)) /* "点pPを青で打って、青線で結んで" */
),
Rd(pPL):=block([poL,p1L,pjL,ppL,ans],poL:[0,0],p1L:[1,0],pjL:[0,1],ppL:pPL/sqrt(pPL.pPL),
/**/if ppL.p1L>=0 then (if ppL.pjL>=0 then ans:asin(ppL[2]) else ans:2*%pi+asin(ppL[2]))
/**//**/else (if ppL.pjL>=0 then ans:%pi-asin(ppL[2]) else ans:%pi-asin(ppL[2]))
) )$
(TEISUUandKOUSIKI:"",
Pi:%pi,et:tant=2*tanht/(1-tanht^2),ec:cost=(1-tanht^2)/(1+tanht^2),es:sint=2*tanht/(1+tanht^2)/*tan(t/2)の有理式でsin(t),cos(t),tan(t)を表現*/
)$
(TEJUN:"1",
te1:cos2t+cost+1=0,te2:subst(cos2t=2*cost^2-1,te1),scl:solve(te2,cost),print(scl)/*(◆修正部分2)*/,
te3:factor(te2),print(te3),te5:subst(cost=x,te3),sxl:solve(te5,x),print(te5,sxl)/*(◆修正部分2)*/,
deg:acos(rhs(scl[1]))/*(◆修正部分2)*/,
poL:[0,0],pPL:[cos(deg),sin(deg)],pQL:[cos(2*Pi-deg),sin(2*Pi-deg)]/*(◆修正部分2)*/,
pIL:[1,0],pJL:[-1,0],pSL:[pPL[1],0],pKL:[pQL[1],0]/**//*(◆修正部分2)*/,
deg2:acos(rhs(scl[2]))/*(◆修正部分2)*/,
poL2:[0,0],pPL2:[cos(deg2),sin(deg2)],pQL2:[cos(2*Pi-deg2),sin(2*Pi-deg2)]/*(◆修正部分2)*/,
pIL2:[1,0],pJL2:[-1,0],pSL2:[pPL2[1],0],pKL2:[pQL2[1],0]/*(◆修正部分2)*/
)$
(kakunin:"グラフを書いて、視覚的に確認",
r:1,c:x^2+y^2=0,
T:"2*x^2+x=0" /*(◆修正部分3)*/,
pP:[[rhs(sxl[1]),0]] /*(◆修正部分3)*/,
pQ:[[rhs(sxl[2]),0]] /*(◆修正部分3)*/,
yL:r/2*3,xL:yL/2*3,print(pP),print(pQ) /*(◆修正部分3)*/,
gr(T,c,y=lhs(te5),pP,pQ,-xL,xL,-yL,yL) /* "グラフ出力すると"*/
)$
(kakunin:"グラフを書いて、視覚的に確認",
r:1,c:x^2+y^2=r^2,
T:"cost=-1/2, P/K(S)O/Q" /*(◆修正部分4)*/,
pP:[pPL,poL,pPL,pSL,poL]/*(◆修正部分4)*/,
pQ:[pQL,poL,pQL,pKL,poL]/*(◆修正部分4)*/,
yL:r/2*3,xL:yL/2*3,print(pP),print(pQ)/**/,
gr(T,c,x=0,pP,pQ,-xL,xL,-yL,yL) /* "グラフ出力すると" */
)$
(kakunin:"グラフを書いて、視覚的に確認",
r:1,c:x^2+y^2=r^2,
T2:"cost=0, P/K(SO)/Q" /*(◆修正部分5)*/,
pP2:[pPL2,poL2,pPL2,pSL2,poL2]/*(◆修正部分5)*/,
pQ2:[pQL2,poL2,pQL2,pKL2,poL2]/*(◆修正部分5)*/,
yL:r/2*3,xL:yL/2*3,print(pP2),print(pQ2)/**/,
gr(T2,c,x=0,pP2,pQ2,-xL,xL,-yL,yL) /* "グラフ出力すると" */
)$
(TEJUN: "2",algebraic:true,
ev11:[te1,"(0<=t< 2*Pi)"],print(ev11)/*(◆修正部分6)*/,
ev12:[te2,"(cos2t=2*cost^2-1...2倍角公式)"],print(ev12)/*(◆修正部分6)*/,
ev13:[te3,"(因数分解)"],print(ev13)/*(◆修正部分6)*/,
ev14:[scl,"(costについて解く)"],print(ev14)/*(◆修正部分6)*/,
ev15:[acos(rhs(scl[1])),2*Pi-acos(rhs(scl[1])),"(",scl[1],"0<=t< 2*Pi)"],print(ev15)/*(◆修正部分6)*/,
ev16:[acos(rhs(scl[2])),2*Pi-acos(rhs(scl[2])),"(",scl[2],"0<=t< 2*Pi)"],print(ev16)/*(◆修正部分6)*/,
ansl:[ev15[1],ev15[2],ev16[1],ev16[2],"答え"],print(ansl)/*(◆修正部分6)*/
)$
(KAITOU:ansl/*解答*//**/,
SUJIMITI:"余弦の2倍角公式により、cos(2*t)=(     )・・・"/*(◆修正部分7)*/,
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)")$

(print(MONDAI),
print(SUJIMITI),
print(KAITOU),
print(FURIKAERI))$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
(MONDAI:"・応用例題4・練習34 708 0<=t< 2*Pi のとき、sin(2*t)+cos(t)=0を解け"/*(◆修正部分1)*/,
KOUSATU:"2倍角公式とtan(t/2)によるsin(t),cos(t)の変換により、・・・"/*(◆修正部分1)*/)$
algebraic:true,poL:[0,0],te1:sin2t+cost=0,te2:subst(sin2t=2*sint*cost,te1)/*(◆修正部分2)*/,
te3:subst([es,ec],te2),print(te3),te4:subst(tanht=x,te3),print(te4),te5:num(factor(lhs(te4)))=0,sxl:solve(te5,x),print(te5,sxl)/*(◆修正部分2)*/, ec1:rat(subst(tanht=rhs(sxl[1]),ec)),ec2:rat(subst(tanht=rhs(sxl[2]),ec)),ec3:rat(subst(tanht=rhs(sxl[3]),ec)),ec4:rat(subst(tanht=rhs(sxl[4]),ec)),print([ec1,ec2,ec3,ec4])/*(◆修正部分2)*/,
es1:rat(subst(tanht=rhs(sxl[1]),es)),es2:rat(subst(tanht=rhs(sxl[2]),es)),es3:rat(subst(tanht=rhs(sxl[3]),es)),es4:rat(subst(tanht=rhs(sxl[4]),es)),print([es1,es2,es3,es4])/*(◆修正部分2)*/,
pPL:[rhs(ec1),rhs(es1)],pQL:[rhs(ec2),rhs(es2)],pRL:[rhs(ec3),rhs(es3)],pSL:[rhs(ec4),rhs(es4)],print(pPL,pQL,pRL,pSL)/*(◆修正部分2)*/,
rd1:Rd(pPL),rd2:Rd(pQL),rd3:Rd(pRL),rd4:Rd(pSL),print([rd1,rd2,rd3,rd4])/*(◆修正部分2)*/
T:"y=-(x-1)*(x+1)*(x^2+4*x+1)=0, x=tan(t/2)" /*(◆修正部分3)*/,
pP:[[rhs(sxl[1]),0],[rhs(sxl[2]),0]]/**/ /*(◆修正部分3)*/,
pQ:[[rhs(sxl[3]),0],[rhs(sxl[4]),0]]/**/ /*(◆修正部分3)*/,
yL:r/2*8,xL:yL/2*3,print(pP),print(pQ) /*(◆修正部分3)*/,
T:"x=tan(t/2), x^2+4*x+1=0 ,[cost,sint], O/PQ" /*(◆修正部分4)*/,
pP:[pPL,poL]/*(◆修正部分4)*/,
pQ:[pQL,poL]/*(◆修正部分4)*/,
T:"x=tan(t/2), (x-1)*(x+1)=0 ,[cost,sint], P/O/Q" /*(◆修正部分5)*/,
pP2:[pRL,poL]/*(◆修正部分5)*/,
pQ2:[pSL,poL]/*(◆修正部分5)*/,
ev11:[te1,"(0<=t< 2*Pi)"],print(ev11)/*(◆修正部分6)*/,
ev12:[te2,"(cos2t=2*cost-1...2倍角公式)"],print(ev12)/*(◆修正部分6)*/,
ev13:[te3,"(sint,costをtan(t/2)=tanhtに変換)"],print(ev13)/*(◆修正部分6)*/,
ev14:[te4,"(tanhtをxに変換)"],print(ev14)/*(◆修正部分6)*/,
ev15:[te5,sxl,"(通分して分子=0として,xについて解く)"],print(ev15)/*(◆修正部分6)*/,
ev17:[[ec1,ec2,ec3,ec4],[es1,es2,es3,es4],"(x=tan(t/2)からcost,sintを求める)"],print(ev17)/*(◆修正部分6)*/,
ev18:[[rd1,rd2,rd3,rd4],"対応する角を求める(0<=t< 2*Pi)"],print(ev18)/*(◆修正部分6)*/,
ansl:[[rd1,rd2,rd3,rd4],"答え"],print(ansl)/*(◆修正部分6)*/
KOUSATU:"正弦の2倍角公式とtan(t/2)によるtan(t)=(  ),cos(t)=( )の変換により、・・・"/*(◆修正部分7)*/)$


◆コマンド番号709
●三角関数の合成
●●●●●●●●●●●●●●●●
kill(all) /**/$
(MONDAI:"・例15 709 a*sin(x)+b*cos(x)=r*sin(x+t) (r=sqrt(a^2+b^2), a=r*cos(t),b=r*sin(t))を示せ"/*(◆修正部分1)*/,
KOUSATU:"a=r*cost,b=r*sintとなるように、r,tをとると、正弦の加法定理により、・・・"/**/)$
(KANSUU:"",
gr(T,c,l,pP,pQ,xm,xM,ym,yM):=block(
/**/wxdraw2d(
/*....*/title =T, yrange=[ym,yM] /* "タイトルと値域を確認し" */,
/*....*/implicit(c,x,xm,xM,y,ym,yM),
/*....*/color=black,
/*....*/implicit(l,x,xm,xM,y,ym,yM),
/*....*/implicit(y=0,x,xm,xM,y,ym,yM),implicit(x=0,x,xm,xM,y,ym,yM) /* "x,y軸を引く" */,
/*....*/color=red,point_type =7,line_width=2,
/*....*/points_joined =true,point_size =1,points(pQ) /* "点pKを赤で打って、赤線で結んで" */,
/*....*/color=blue,point_type =6,
/*....*/points_joined =true,point_size =1,points(pP)) /* "点pPを青で打って、青線で結んで" */
),
ng2pl(p1l,p2l,m,n):=(p1l*n+p2l*m)/(m+n)/*2点と比から内外分点*/,
p2ngl(pl,p1l,p2l):=block([P,p1,p2,ans],p1:pl-p1l,p2:pl-p2l,P:rat(sqrt(p1.p1)/sqrt(p2.p2)),p1:num(P),p2:denom(P),
/**/print(ng2pl(p1l,p2l,p1,p2)),mes:"内分",if ng2pl(p1l,p2l,p1,p2)#pl then ((if p1>p2 then p2:-p2 else p1:-p1),mes:"外分"),
/**/ans:[p1,":",p2,mes])/*点を2点の内外分比で表示*/,
gl(p1l,p2l):=block([ansl],ansl:[p2l[1]-p1l[1],p2l[2]-p1l[2]])/*傾き方向*/,
nl(p1l,p2l):=block([ansl],ansl:[p2l[2]-p1l[2],-(p2l[1]-p1l[1])],ansl:ansl/gcd(ansl[1],ansl[2]))/*垂直方向*/,
dis(p1l,p2l):=block([ans],ans:float(sqrt((p2l-p1l).(p2l-p1l))))/*距離*/,
Rd(pPL):=block([poL,p1L,pjL,ppL,ans],poL:[0,0],p1L:[1,0],pjL:[0,1],ppL:pPL/sqrt(pPL.pPL),
/**/if ppL.p1L>=0 then (if ppL.pjL>=0 then ans:asin(ppL[2]) else ans:2*%pi+asin(ppL[2]))
/**//**/else (if ppL.pjL>=0 then ans:%pi-asin(ppL[2]) else ans:%pi-asin(ppL[2]))
) )$
(TEISUUandKOUSIKI:"",
Pi:%pi/**/
)$
(TEJUN:"1",
X:Pi/6,A:2,B:2,e1:a*sinx+b*cosx=r*sin(x+t),R:sqrt(A^2+B^2), T:Rd([A,B]),print([e1,"R",R,"t",T])/*(◆修正部分2)*/,
poL:[0,0],pPL:[cos(X),sin(X)],pQL:R*[cos(X+T),sin(X+T)]/*(◆修正部分2)*/,
pIL:[R,0],pJL:[0,R],pSL:[pQL[1],0]/**//**/,
ugl:gl(poL,pPL),ugl:ugl/sqrt(ugl.ugl),pVL:(pQL.ugl)*ugl,pKL:[pVL[1],0],pML:[pPL[1],0],pWL:[pVL[1],pQL[2]]
)$
(kakunin:"グラフを書いて、視覚的に確認",
r0:R,c:x^2+y^2=r0^2,C:"QW/VP/OSMK",
pP:[pML,pPL,poL,pKL,pVL] /**/,
pQ:[pSL,pQL,poL,pVL,pWL,pQL,pVL] /**/,
yL:r0/2*3,xL:yL/2*3,print([float(pP),"pP"]),print([float(pQ),"pQ"]) /**/,
gr(C,c,x=0,pP,pQ,-xL,xL,-yL,yL) /* "グラフ出力すると"*/
)$
(TEJUN: "2",algebraic:true,
SL:[[a=A,b=B,sinx=sin(X),cosx=cos(X)],[r=R,cost=cos(T),sint=sin(T),sinx=sin(X),cosx=cos(X)],[r=R,x=X,t=T]]/*(◆修正部分3)*/,
ev11:["左辺=",lhs(e1),float(subst(SL[1],lhs(e1)))],print(ev11)/*(◆修正部分3)*/,
ev12:[" 《r=sqrt(a^2+b^2),t=ang(VOQ),a=r*cost=OV,B=r*sint=VQとなるように、r,tをとると》","(r,tの仮定)"],print(ev12)/*(◆修正部分3)*/,
ev13:[" =r*cost*sinx+r*sint*cosx","(KV=r*cost*sinx,VW=r*sint*cosx)",float(subst(SL[2],r*cost*sinx+r*sint*cosx))],print(ev13)/*(◆修正部分3)*/,
ev14:[" =",rhs(e1),"(正弦の加法定理)",float(subst(SL[3],rhs(e1)))],print(ev14)/*(◆修正部分3)*/,
ev15:[" =右辺"],print(ev15)/*(◆修正部分3)*/,
ansl:[e1,"答え"],print(ansl)/*(◆修正部分3)*/
)$
(KAITOU:ansl/*解答*//**/,
SUJIMITI:"a=r*cost,b=r*sintとなるように、r,tをとると、正弦の加法定理により、a*sinx+b*cosx=(     )・・・"/*(◆修正部分4)*/,
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)")$

(print(MONDAI),
print(SUJIMITI),
print(KAITOU),
print(FURIKAERI))$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
(MONDAI:"・例15 709 sin(t)+cos(t)を合成すると"/*(◆修正部分1)*/,
T:Pi/6,te1:sint+cost,A1:coeff(te1,sint),B1:coeff(te1,cost),R:sqrt(A1^2+B1^2), a:Rd([A1,B1]),print([te1,"r",R,"a",a])/*(◆修正部分2)*/,
poL:[0,0],pPL:R*[cos(T),sin(T)],pQL:R*[cos(T+a),sin(T+a)]/*(◆修正部分2)*/,
SL:[[sint=sin(T),cost=cos(T)],[r=R,cosa=cos(a),sina=sin(a),sint=sin(T),cost=cos(T)],[r=R,t=T]]/*(◆修正部分3)*/,
ev11:["GE=",te1,float(subst(SL[1],te1))],print(ev11)/*(◆修正部分3)*/,
ev12:[" 《r=sqrt(a^2+b^2),t=ang(VOQ),a=r*cost=OV,B=r*sint=VQとなるように、r,tをとると》","(r,tの仮定)"],print(ev12)/*(◆修正部分3)*/,
ev13:[" =",R,"*cos(",a,")*sint+",R,"*sin(",a,")*cost","(KV=r*cost*sint,VW=r*sina*cost)",float(subst(SL[2],r*cosa*sint+r*sina*cost))],print(ev13)/*(◆修正部分3)*/,
ev14:[" =",R,"*sin(t+",a,")",float(subst(SL[3],r*sin(t+a))),"(正弦の加法定理)"],print(ev14)/*(◆修正部分3)*/,
ansl:[ev14[2],ev14[3],ev14[4],ev14[5],"答え"],print(ansl)/*(◆修正部分3)*/
SUJIMITI:"1=r*cost,1=r*sintとなるように、r,tをとると、r=(   ),t=(  )により、・・・"/*(◆修正部分4)*/,


◆コマンド番号710
●三角関数の合成
●●●●●●●●●●●●●●●●
kill(all) /**/$
(MONDAI:"・例15・例題34 710 sqrt(3)*sin(t)-cos(t)は、(r› 0, -Pi< t < Pi)で合成すると"/*(◆修正部分1)*/,
KOUSATU:"a=r*cost,b=r*sintとなるように、r,tをとると、正弦の加法定理により、・・・"/**/)$
(KANSUU:"",
gr(T,c,l,pP,pQ,xm,xM,ym,yM):=block(
/**/wxdraw2d(
/*....*/title =T, yrange=[ym,yM] /* "タイトルと値域を確認し" */,
/*....*/implicit(c,x,xm,xM,y,ym,yM),
/*....*/color=black,
/*....*/implicit(l,x,xm,xM,y,ym,yM),
/*....*/implicit(y=0,x,xm,xM,y,ym,yM),implicit(x=0,x,xm,xM,y,ym,yM) /* "x,y軸を引く" */,
/*....*/color=red,point_type =7,line_width=2,
/*....*/points_joined =true,point_size =1,points(pQ) /* "点pKを赤で打って、赤線で結んで" */,
/*....*/color=blue,point_type =6,
/*....*/points_joined =true,point_size =1,points(pP)) /* "点pPを青で打って、青線で結んで" */
),
ng2pl(p1l,p2l,m,n):=(p1l*n+p2l*m)/(m+n)/*2点と比から内外分点*/,
p2ngl(pl,p1l,p2l):=block([P,p1,p2,ans],p1:pl-p1l,p2:pl-p2l,P:rat(sqrt(p1.p1)/sqrt(p2.p2)),p1:num(P),p2:denom(P),
/**/print(ng2pl(p1l,p2l,p1,p2)),mes:"内分",if ng2pl(p1l,p2l,p1,p2)#pl then ((if p1>p2 then p2:-p2 else p1:-p1),mes:"外分"),
/**/ans:[p1,":",p2,mes])/*点を2点の内外分比で表示*/,
gl(p1l,p2l):=block([ansl],ansl:[p2l[1]-p1l[1],p2l[2]-p1l[2]])/*傾き方向*/,
nl(p1l,p2l):=block([ansl],ansl:[p2l[2]-p1l[2],-(p2l[1]-p1l[1])],ansl:ansl/gcd(ansl[1],ansl[2]))/*垂直方向*/,
dis(p1l,p2l):=block([ans],ans:float(sqrt((p2l-p1l).(p2l-p1l))))/*距離*/,
Rd(pPL):=block([poL,p1L,pjL,ppL,ans],poL:[0,0],p1L:[1,0],pjL:[0,1],ppL:pPL/sqrt(pPL.pPL),
/**/if ppL.p1L>=0 then (if ppL.pjL>=0 then ans:asin(ppL[2]) else ans:asin(ppL[2]))
/**//**/else (if ppL.pjL>=0 then ans:%pi-asin(ppL[2]) else ans:-%pi-asin(ppL[2]))
) )$
(TEISUUandKOUSIKI:"",
Pi:%pi/**/
)$
(TEJUN:"1",
T:Pi/3,e1:sqrt(3)*sint-cost,A:coeff(e1,sint),B:coeff(e1,cost),R:sqrt(A^2+B^2), P:Rd([A,B]),print([e1,"R",R,"p",P])/*(◆修正部分2)*/,
poL:[0,0],pPL:[cos(T),sin(T)],pQL:R*[cos(T+P),sin(T+P)]/*(◆修正部分2)*/,
pIL:[R,0],pJL:[0,R],pSL:[pQL[1],0]/**//**/,
ugl:gl(poL,pPL),ugl:ugl/sqrt(ugl.ugl),pVL:(pQL.ugl)*ugl,pKL:[pVL[1],0],pML:[pPL[1],0],pWL:[pVL[1],pQL[2]]
)$
(kakunin:"グラフを書いて、視覚的に確認",
r0:R,c:x^2+y^2=r0^2,C:"PV/WQ/ OMKS",
pP:[pML,pPL,poL,pKL,pVL] /**/,
pQ:[pSL,pQL,poL,pVL,pWL,pQL,pVL] /**/,
yL:r0/2*3,xL:yL/2*3,print([float(pP),"pP"]),print([float(pQ),"pQ"]) /**/,
gr(C,c,x=0,pP,pQ,-xL,xL,-yL,yL) /* "グラフ出力すると"*/
)$
(TEJUN: "2",algebraic:true,
SL:[[a=A,b=B,sint=sin(T),cost=cos(T)],[r=R,cosp=cos(P),sinp=sin(P),sint=sin(T),cost=cos(T)],[r=R,t=T,p=P]]/*(◆修正部分3)*/,
ev11:["Ex=",e1,float(subst(SL[1],e1))],print(ev11)/*(◆修正部分3)*/,
ev12:[" 《r=sqrt(a^2+b^2),p=ang(QOV),a=r*cosp=OV,B=r*sinp=VQとなるように、r,pをとると》","(r,pの仮定)"],print(ev12)/*(◆修正部分3)*/,
ev13:[" =r*cosp*sint+r*sinp*cost","(KV=r*cosp*sint,VW=r*sinp*cost)",float(subst(SL[2],r*cosp*sint+r*sinp*cost))],print(ev13)/*(◆修正部分3)*/,
ev14:[" =",R*sin(t+P),"(正弦の加法定理)",float(subst(SL[3],R*sin(T+P)))],print(ev14)/*(◆修正部分3)*/,
ansl:[ev14[2],"答え"],print(ansl)/*(◆修正部分3)*/
)$
(KAITOU:ansl/*解答*//**/,
SUJIMITI:"a=r*cosp,b=r*sinpとなるように、r,pをとると、正弦の加法定理により、a*sint+b*cost=(     )・・・"/*(◆修正部分4)*/,
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)")$

(print(MONDAI),
print(SUJIMITI),
print(KAITOU),
print(FURIKAERI))$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
(MONDAI:"・例15・例題34 710 sin(t)-cos(t)は、(r› 0, -Pi< t < Pi)で合成すると"/*(◆修正部分1)*/,
T:Pi/3,e1:sint-cost,A:coeff(e1,sint),B:coeff(e1,cost),R:sqrt(A^2+B^2), P:Rd([A,B]),print([e1,"R",R,"p",P])/*(◆修正部分2)*/,

◆コマンド番号711
●三角関数の合成
●●●●●●●●●●●●●●●●
kill(all) /**/$
(MONDAI:"・例題7・例題36 711 sin(x)+cos(x)の最大値、最小値は、"/*(◆修正部分1)*/,
KOUSATU:"a=r*cosx,b=r*sinxとなるように、r,xをとると、正弦の加法定理により、・・・"/**/)$
(KANSUU:"",
gr(T,c,l,pP,pQ,xm,xM,ym,yM):=block(
/**/wxdraw2d(
/*....*/title =T, yrange=[ym,yM] /* "タイトルと値域を確認し" */,
/*....*/implicit(c,x,xm,xM,y,ym,yM),
/*....*/color=black,
/*....*/implicit(l,x,xm,xM,y,ym,yM),
/*....*/implicit(y=0,x,xm,xM,y,ym,yM),implicit(x=0,x,xm,xM,y,ym,yM) /* "x,y軸を引く" */,
/*....*/color=red,point_type =7,line_width=2,
/*....*/points_joined =true,point_size =1,points(pQ) /* "点pKを赤で打って、赤線で結んで" */,
/*....*/color=blue,point_type =6,
/*....*/points_joined =true,point_size =1,points(pP)) /* "点pPを青で打って、青線で結んで" */
),
ng2pl(p1l,p2l,m,n):=(p1l*n+p2l*m)/(m+n)/*2点と比から内外分点*/,
p2ngl(pl,p1l,p2l):=block([P,p1,p2,ans],p1:pl-p1l,p2:pl-p2l,P:rat(sqrt(p1.p1)/sqrt(p2.p2)),p1:num(P),p2:denom(P),
/**/print(ng2pl(p1l,p2l,p1,p2)),mes:"内分",if ng2pl(p1l,p2l,p1,p2)#pl then ((if p1>p2 then p2:-p2 else p1:-p1),mes:"外分"),
/**/ans:[p1,":",p2,mes])/*点を2点の内外分比で表示*/,
gl(p1l,p2l):=block([ansl],ansl:[p2l[1]-p1l[1],p2l[2]-p1l[2]])/*傾き方向*/,
nl(p1l,p2l):=block([ansl],ansl:[p2l[2]-p1l[2],-(p2l[1]-p1l[1])],ansl:ansl/gcd(ansl[1],ansl[2]))/*垂直方向*/,
dis(p1l,p2l):=block([ans],ans:float(sqrt((p2l-p1l).(p2l-p1l))))/*距離*/,
Rd(pPL):=block([poL,p1L,pjL,ppL,ans],poL:[0,0],p1L:[1,0],pjL:[0,1],ppL:pPL/sqrt(pPL.pPL),
/**/if ppL.p1L>=0 then (if ppL.pjL>=0 then ans:asin(ppL[2]) else ans:asin(ppL[2]))
/**//**/else (if ppL.pjL>=0 then ans:%pi-asin(ppL[2]) else ans:-%pi-asin(ppL[2]))
) )$
(TEISUUandKOUSIKI:"",
Pi:%pi/**/
)$
(TEJUN:"1",
X:Pi/6,f1:sinx+cosx,A:coeff(f1,sinx),B:coeff(f1,cosx),R:sqrt(A^2+B^2), P:Rd([A,B]),print([f1,"R",R,"p",P])/*(◆修正部分2)*/,
poL:[0,0],pPL:[cos(X),sin(X)],pQL:R*[cos(X+P),sin(X+P)]/**/,
pIL:[R,0],pJL:[0,R],pSL:[pQL[1],0]/**//**/,
ugl:gl(poL,pPL),ugl:ugl/sqrt(ugl.ugl),pVL:(pQL.ugl)*ugl,pKL:[pVL[1],0],pML:[pPL[1],0],pWL:[pVL[1],pQL[2]]
)$
(kakunin:"グラフを書いて、視覚的に確認",
r0:R,c:x^2+y^2=r0^2,C:"QW/P(V)/ OSM(K)",
pP:[pML,pPL,poL,pKL,pVL] /**/,
pQ:[pSL,pQL,poL,pVL,pWL,pQL,pVL] /**/,
yL:r0/2*3,xL:yL/2*3,print([float(pP),"pP"]),print([float(pQ),"pQ"]) /**/,
gr(C,c,x=0,pP,pQ,-xL,xL,-yL,yL) /* "グラフ出力すると"*/
)$
(TEJUN: "2",algebraic:true,
SL:[[a=A,b=B,sinx=sin(X),cosx=cos(X)],[r=R,cosp=cos(P),sinp=sin(P),sinx=sin(X),cosx=cos(X)],[r=R,x=X,p=P]]/**/,
ev11:["Fx=",f1,float(subst(SL[1],f1))],print(ev11)/**/,
ev12:[" 《r=sqrt(a^2+b^2),p=ang(QOV),a=r*cosp=OV,B=r*sinp=VQとなるように、r,pをとると》","(r,pの仮定)"],print(ev12)/**/,
ev13:[" =r*cosp*sinx+r*sinp*cosx","(KV=r*cosp*sinx,VW=r*sinp*cosx)",float(subst(SL[2],r*cosp*sinx+r*sinp*cosx))],print(ev13)/**/,
ev14:[" =",R*sin(x+P),"(正弦の加法定理)",float(subst(SL[3],R*sin(X+P)))],print(ev14)/**/,
ansl:[R,-R,"最大値,最小値", "答え"],print(ansl)/**/
)$
(KAITOU:ansl/*解答*//**/,
SUJIMITI:"a=r*cosp,b=r*sinpとなるように、r,pをとると、正弦の加法定理により、a*sinx+b*cosx=(     )・・・"/**/,
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)")$

(print(MONDAI),
print(SUJIMITI),
print(KAITOU),
print(FURIKAERI))$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
(MONDAI:"・例題7・例題36 711 sqrt(3)*sin(x)+cos(x)の最大値、最小値は、"/*(◆修正部分1)*/,
X:Pi/6,f1:sqrt(3)*sinx+cosx,A:coeff(f1,sinx),B:coeff(f1,cosx),R:sqrt(A^2+B^2), P:Rd([A,B]),print([f1,"R",R,"p",P])/*(◆修正部分2)*/,


◆コマンド番号712
●三角関数の合成
●●●●●●●●●●●●●●●●
kill(all) /**/$
(MONDAI:"・応用例題5・練習37 712 0<= x < 2π で、sin(x)+sqrt(3)*cos(x)=1を解け"/*(◆修正部分1)*/,
KOUSATU:"a=r*cosx,b=r*sinxとなるように、r,xをとると、正弦の加法定理により、・・・"/**/)$
(KANSUU:"",
gr(T,c,l,pP,pQ,xm,xM,ym,yM):=block(
/**/wxdraw2d(
/*....*/title =T, yrange=[ym,yM] /* "タイトルと値域を確認し" */,
/*....*/implicit(c,x,xm,xM,y,ym,yM),
/*....*/color=black,
/*....*/implicit(l,x,xm,xM,y,ym,yM),
/*....*/implicit(y=0,x,xm,xM,y,ym,yM),implicit(x=0,x,xm,xM,y,ym,yM) /* "x,y軸を引く" */,
/*....*/color=red,point_type =7,line_width=2,
/*....*/points_joined =true,point_size =1,points(pQ) /* "点pKを赤で打って、赤線で結んで" */,
/*....*/color=blue,point_type =6,
/*....*/points_joined =true,point_size =1,points(pP)) /* "点pPを青で打って、青線で結んで" */
),
ng2pl(p1l,p2l,m,n):=(p1l*n+p2l*m)/(m+n)/*2点と比から内外分点*/,
p2ngl(pl,p1l,p2l):=block([P,p1,p2,ans],p1:pl-p1l,p2:pl-p2l,P:rat(sqrt(p1.p1)/sqrt(p2.p2)),p1:num(P),p2:denom(P),
/**/print(ng2pl(p1l,p2l,p1,p2)),mes:"内分",if ng2pl(p1l,p2l,p1,p2)#pl then ((if p1>p2 then p2:-p2 else p1:-p1),mes:"外分"),
/**/ans:[p1,":",p2,mes])/*点を2点の内外分比で表示*/,
gl(p1l,p2l):=block([ansl],ansl:[p2l[1]-p1l[1],p2l[2]-p1l[2]])/*傾き方向*/,
nl(p1l,p2l):=block([ansl],ansl:[p2l[2]-p1l[2],-(p2l[1]-p1l[1])],ansl:ansl/gcd(ansl[1],ansl[2]))/*垂直方向*/,
dis(p1l,p2l):=block([ans],ans:float(sqrt((p2l-p1l).(p2l-p1l))))/*距離*/,
Rd(pPL):=block([poL,p1L,pjL,ppL,ans],poL:[0,0],p1L:[1,0],pjL:[0,1],ppL:pPL/sqrt(pPL.pPL),
/**/if ppL.p1L>=0 then (if ppL.pjL>=0 then ans:asin(ppL[2]) else ans:asin(ppL[2]))
/**//**/else (if ppL.pjL>=0 then ans:%pi-asin(ppL[2]) else ans:-%pi-asin(ppL[2]))
) )$
(TEISUUandKOUSIKI:"",
Pi:%pi/**/
)$
(TEJUN:"1",
X:Pi/4,le1:sqrt(3)*sinx-cosx,re1:1,A:coeff(le1,sinx),B:coeff(le1,cosx),R:sqrt(A^2+B^2), P:Rd([A,B]),print([le1,re1,"R",R,"p",P])/*(◆修正部分2)*/,
xRl:[0<=x,x< 2*Pi],
poL:[0,0],pPL:[cos(X),sin(X)],pQL:R*[cos(X+P),sin(X+P)]/**/,
pIL:[R,0],pJL:[0,R],pSL:[pQL[1],0]/**//**/,
ugl:gl(poL,pPL),ugl:ugl/sqrt(ugl.ugl),pVL:(pQL.ugl)*ugl,pKL:[pVL[1],0],pML:[pPL[1],0],pWL:[pVL[1],pQL[2]]
)$
(kakunin:"グラフを書いて、視覚的に確認",
r0:R,c:x^2+y^2=r0^2,C:"QW/P(V)/ OSM(K)",
pP:[pML,pPL,poL,pKL,pVL] /**/,
pQ:[pSL,pQL,poL,pVL,pWL,pQL,pVL] /**/,
yL:r0/2*3,xL:yL/2*3,print([float(pP),"pP"]),print([float(pQ),"pQ"]) /**/,
gr(C,c,x=0,pP,pQ,-xL,xL,-yL,yL) /* "グラフ出力すると"*/
)$
(TEJUN: "2",algebraic:true,
SL:[[a=A,b=B,sinx=sin(X),cosx=cos(X)],[r=R,cosp=cos(P),sinp=sin(P),sinx=sin(X),cosx=cos(X)],[r=R,x=X,p=P],x=XP-P,XP=x+P]/**/,
ev11:["LHS=",le1,float(subst(SL[1],le1))],print(ev11)/**/,
ev12:[" 《r=sqrt(a^2+b^2),p=ang(QOV),a=r*cosp=OV,B=r*sinp=VQとなるように、r,pをとると》","(r,pの仮定)"],print(ev12)/**/,
ev13:[" =r*cosp*sinx+r*sinp*cosx","(KV=r*cosp*sinx,VW=r*sinp*cosx)",float(subst(SL[2],r*cosp*sinx+r*sinp*cosx))],print(ev13)/**/,
ev14:[" =",R*sin(x+P),"(正弦の加法定理)",float(subst(SL[3],R*sin(X+P)))],print(ev14)/**/,
xPRl:[lhs(xRl[1])+P<=rhs(xRl[1])+P,lhs(xRl[2])+P<= rhs(xRl[2])+P],print(xPRl),
e2:subst(SL[4],R*sin(x+P)),print([SL[5],e2=re1]),
sxPl:solve(e2=re1,XP),print(sxPl),
if rhs(sxPl[1])< 0 then sxPl:[lhs(sxPl[1])=Pi-rhs(sxPl[1]),lhs(sxPl[1])=2*Pi+rhs(sxPl[1])],
if rhs(sxPl[1])> 0 then sxPl:[lhs(sxPl[1])=rhs(sxPl[1]),lhs(sxPl[1])=Pi-rhs(sxPl[1])],print(sxPl),
for k:1 step 1 while rhs(sxPl[2])-k*2*Pi > lhs(xPRl[1]) do sxPl:cons(lhs(sxPl[2])=rhs(sxPl[1])+k*2*Pi,sxPl),print(sxPl),
for k:1 step 1 while rhs(sxPl[1])-k*2*Pi > lhs(xPRl[1]) do sxPl:cons(lhs(sxPl[1])=rhs(sxPl[1])+k*2*Pi,sxPl),print(sxPl),
for k:1 step 1 while rhs(sxPl[1])+k*2*Pi < rhs(xPRl[2]) do sxPl:endcons(lhs(sxPl[1])=rhs(sxPl[1])+k*2*Pi,sxPl),print(sxPl),
for k:1 step 1 while rhs(sxPl[2])+k*2*Pi < rhs(xPRl[2]) do sxPl:endcons(lhs(sxPl[2])=rhs(sxPl[1])+k*2*Pi,sxPl),print(sxPl),
for k:1 step 1 while rhs(sxPl[1]) < lhs(xPRl[1]) do sxPl:rest(sxPl),print(sxPl),
ansl:[subst(SL[5],sxPl)-P, "答え"],print(ansl)/**/
)$
(KAITOU:ansl/*解答*//**/,
SUJIMITI:"a=r*cosp,b=r*sinpとなるように、r,pをとると、正弦の加法定理により、a*sinx+b*cosx=(     )・・・"/**/,
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)")$

(print(MONDAI),
print(SUJIMITI),
print(KAITOU),
print(FURIKAERI))$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
(MONDAI:"・応用例題5・練習37 712 0<= x < 2π で、sin(x)+sqrt(3)*cos(x)=1を解け"/*(◆修正部分1)*/,
X:Pi/4,le1:sinx+sqrt(3)*cosx,re1:1,A:coeff(le1,sinx),B:coeff(le1,cosx),R:sqrt(A^2+B^2), P:Rd([A,B]),print([le1,re1,"R",R,"p",P])/*(◆修正部分2)*/,


◆コマンド番号713
●三角関数の和・積の公式
●●●●●●●●●●●●●●●●
kill(all) /**/$
(MONDAI:"・三角関数の和・積の公式 713 sin(a)*cos(b)=1/2*(sin(a+b)+sin(a-b))を示せ"/*(◆修正部分1)*/,
KOUSATU:"a+b,a-bの角の加法定理により、・・・"/*(◆修正部分1)*/)$
(KANSUU:"",
gr(T,c,l,pP,pQ,xm,xM,ym,yM):=block(
/**/wxdraw2d(
/*....*/title =T, yrange=[ym,yM] /* "タイトルと値域を確認し" */,
/*....*/implicit(c,x,xm,xM,y,ym,yM),
/*....*/color=black,
/*....*/implicit(l,x,xm,xM,y,ym,yM),
/*....*/implicit(y=0,x,xm,xM,y,ym,yM),implicit(x=0,x,xm,xM,y,ym,yM) /* "x,y軸を引く" */,
/*....*/color=red,point_type =7,line_width=2,
/*....*/points_joined =true,point_size =1,points(pQ) /* "点pKを赤で打って、赤線で結んで" */,
/*....*/color=blue,point_type =6,
/*....*/points_joined =true,point_size =1,points(pP)) /* "点pPを青で打って、青線で結んで" */
),
ng2pl(p1l,p2l,m,n):=(p1l*n+p2l*m)/(m+n)/*2点と比から内外分点*/,
p2ngl(pl,p1l,p2l):=block([P,p1,p2,ans],p1:pl-p1l,p2:pl-p2l,P:rat(sqrt(p1.p1)/sqrt(p2.p2)),p1:num(P),p2:denom(P),
/**/print(ng2pl(p1l,p2l,p1,p2)),mes:"内分",if ng2pl(p1l,p2l,p1,p2)#pl then ((if p1>p2 then p2:-p2 else p1:-p1),mes:"外分"),
/**/ans:[p1,":",p2,mes])/*点を2点の内外分比で表示*/,
gl(p1l,p2l):=block([ansl],ansl:[p2l[1]-p1l[1],p2l[2]-p1l[2]])/*傾き方向*/,
nl(p1l,p2l):=block([ansl],ansl:[p2l[2]-p1l[2],-(p2l[1]-p1l[1])],ansl:ansl/gcd(ansl[1],ansl[2]))/*垂直方向*/,
dis(p1l,p2l):=block([ans],ans:float(sqrt((p2l-p1l).(p2l-p1l))))/*距離*/,
Rd(pPL):=block([poL,p1L,pjL,ppL,ans],poL:[0,0],p1L:[1,0],pjL:[0,1],ppL:pPL/sqrt(pPL.pPL),
/**/if ppL.p1L>=0 then (if ppL.pjL>=0 then ans:asin(ppL[2]) else ans:asin(ppL[2]))
/**//**/else (if ppL.pjL>=0 then ans:%pi-asin(ppL[2]) else ans:-%pi-asin(ppL[2]))
) )$
(TEISUUandKOUSIKI:"",
Pi:%pi/**/
)$
(TEJUN:"1",
A:Pi/4,B:Pi/6,le1:sin(a)*cos(b),re1:1/2*(sin(a+b)+sin(a-b)),print([le1,re1,subst([a=A,b=B],le1),subst([a=A,b=B],re1)])/*(◆修正部分2)*/,
poL:[0,0],pPL:[cos(A+B),sin(A+B)],pQL:[cos(A-B),sin(A-B)],pRL:(pPL+pQL)/2,pLL:[pPL[1],0],pML:[pQL[1],0],pNL:[pRL[1],0]/*(◆修正部分2)*/,
pSL:[pQL[1],pPL[2]],pTL:(pPL+pSL)/2,pUL:(pQL+pSL)/2 /**//**/
)$
(kakunin:"グラフを書いて、視覚的に確認",
r0:1,c:x^2+y^2=r0^2,C:"PTS/RUQ/OLNM, aROM=a, aPOR=b"/*(◆修正部分3)*/,
pP:[pLL,pPL,poL,pML,pQL,poL] /**/,
pQ:[pUL,pRL,pTL,pSL,pQL,pPL,pSL,poL,pNL,pTL] /**/,
yL:r0/2*3,xL:yL/2*3,print([float(pP),"pP"]),print([float(pQ),"pQ"]) /**/,
gr(C,c,x=0,pP,pQ,-xL,xL,-yL,yL) /* "グラフ出力すると"*/
)$
(TEJUN: "2",algebraic:true,
SL:[[a=A,b=B]]/**/,
ev11:["RHS=",re1,"(aQOM=a,aPOQ=b,PL=sin(a+b),QM=sin(a-b))",float(subst(SL[1],re1))],print(ev11)/*(◆修正部分4)*/,
ev12:[" 《右辺を加法定理で展開すると》","(加法定理の公式)"],print(ev12)/*(◆修正部分4)*/,
ev13:[" =1/2*((sin(a)*cos(b)+cos(a)*sin(b))+(sin(a)*cos(b)-cos(a)*sin(b)))","(NR=cos(b)*sin(a),RT=QU=sin(b)*cos(a))",float(subst(SL[1],1/2*((sin(a)*cos(b)+cos(a)*sin(b))+(sin(a)*cos(b)-cos(a)*sin(b)))))],print(ev13)/*(◆修正部分4)*/,
ev14:[" =",le1,"=LHS","(NR=1/2*(PL+QM))",float(subst(SL[1],sin(a)*cos(b)))],print(ev14)/*(◆修正部分4)*/,
ansl:[ev11[1],ev11[2],ev14[1],ev14[2],ev14[3],ev14[4], "答え"],print(ansl)/*(◆修正部分4)*/
)$
(KAITOU:ansl/*解答*//**/,
SUJIMITI:"a+b,a-bの角の加法定理により、sin(a+b)=(     )・・・"/*(◆修正部分5)*/,
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)")$

(print(MONDAI),
print(SUJIMITI),
print(KAITOU),
print(FURIKAERI))$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
(MONDAI:"・三角関数の和・積の公式 713 cos(a)-cos(b)=-2*(sin((a+b)/2)*sin((a-b)/2)を示せ"/*(◆修正部分1)*/,
KOUSATU:"a+b,a-bの角の加法定理と2倍角の公式により、・・・"/*(◆修正部分1)*/)$
A:Pi/3,B:Pi/6,le1:cos(a)-cos(b),re1:-2*(sin((a+b)/2)*sin((a-b)/2)),print([le1,re1,subst([a=A,b=B],le1),subst([a=A,b=B],re1)])/*(◆修正部分2)*/,
poL:[0,0],pPL:[cos(A),sin(A)],pQL:[cos(B),sin(B)],pRL:(pPL+pQL)/2,pLL:[pPL[1],0],pML:[pQL[1],0],pNL:[pRL[1],0]/*(◆修正部分2)*/,
r0:1,c:x^2+y^2=r0^2,C:"PTS/RUQ/OLNM, aPOM=a, aQOM=b"/*(◆修正部分3)*/,
ev11:["RHS=",re1,"(aPOM=a,aQOM=b,LN=-sin((a+b)/2)*sin((a-b)/2)",float(subst(SL[1],re1))],print(ev11)/*(◆修正部分4)*/,
ev12:[" 《右辺を加法定理で展開すると》","(加法定理の公式)"],print(ev12)/*(◆修正部分4)*/,
ev13:[" =-2*((sin(a/2)*cos(b/2)+cos(a/2)*sin(b/2))*(sin(a/2)*cos(b/2)-cos(a/2)*sin(b/2)))",float(subst(SL[1],-2*((sin(a/2)*cos(b/2)+cos(a/2)*sin(b/2))*(sin(a/2)*cos(b/2)-cos(a/2)*sin(b/2)))))],print(ev13)/*(◆修正部分4)*/,
ev14:[" =-2*(sin(a/2)^2*cos(b/2)^2-cos(a/2)^2*sin(b/2)^2)",float(subst(SL[1],-2*(sin(a/2)^2*cos(b/2)^2-cos(a/2)^2*sin(b/2)^2)))],print(ev14)/*(◆修正部分4)*/,
ev15:[" 《右辺を2倍角公式で余弦に変形すると》","(2倍角公式)"],print(ev15)/*(◆修正部分4)*/,
ev16:[" =-2*(((1-cos(a))/2)*((1+cos(b))/2)-((1+cos(a))/2)*((1-cos(b))/2))",float(subst(SL[1],-2*(((1-cos(a))/2)*((1+cos(b))/2)-((1+cos(a))/2)*((1-cos(b))/2))))],print(ev16)/*(◆修正部分4)*/,
ev17:[" =",le1,"=LHS","(LM=2*LN)",float(subst(SL[1],cos(a)-cos(b)))],print(ev17)/*(◆修正部分4)*/,
ansl:[ev11[1],ev11[2],ev17[1],ev17[2],ev17[3],ev17[4], "答え"],print(ansl)/*(◆修正部分4)*/
SUJIMITI:"a+b,a-bの角の加法定理により、sin((a+b)/2)=(     )・・・"/*(◆修正部分5)*/,


:   402.補充問題・章末問題
◆コマンド番号40201
●補充問題・章末問題
●●●●●●●●●●●●●●●●
kill(all) /**/$
(MONDAI:"・補充問題4 40201 点P(2,4)を、原点Oを中心として、π/4だけ回転した位置にある点をQとする。点I(1,0)、∠POI=aとして、OP*cos(a),OP*sin(a),点Qの座標は"/*(◆修正部分1)*/,
KOUSATU:"aとπ/4の加法定理により、・・・"/**/)$
(KANSUU:"",
gr(T,c,l,pP,pQ,xm,xM,ym,yM):=block(
/**/wxdraw2d(
/*....*/title =T, yrange=[ym,yM] /* "タイトルと値域を確認し" */,
/*....*/implicit(c,x,xm,xM,y,ym,yM),
/*....*/color=black,
/*....*/implicit(l,x,xm,xM,y,ym,yM),
/*....*/implicit(y=0,x,xm,xM,y,ym,yM),implicit(x=0,x,xm,xM,y,ym,yM) /* "x,y軸を引く" */,
/*....*/color=red,point_type =7,line_width=2,
/*....*/points_joined =true,point_size =1,points(pQ) /* "点pKを赤で打って、赤線で結んで" */,
/*....*/color=blue,point_type =6,
/*....*/points_joined =true,point_size =1,points(pP)) /* "点pPを青で打って、青線で結んで" */
),
ng2pl(p1l,p2l,m,n):=(p1l*n+p2l*m)/(m+n)/*2点と比から内外分点*/,
p2ngl(pl,p1l,p2l):=block([P,p1,p2,ans],p1:pl-p1l,p2:pl-p2l,P:rat(sqrt(p1.p1)/sqrt(p2.p2)),p1:num(P),p2:denom(P),
/**/print(ng2pl(p1l,p2l,p1,p2)),mes:"内分",if ng2pl(p1l,p2l,p1,p2)#pl then ((if p1>p2 then p2:-p2 else p1:-p1),mes:"外分"),
/**/ans:[p1,":",p2,mes])/*点を2点の内外分比で表示*/,
gl(p1l,p2l):=block([ansl],ansl:[p2l[1]-p1l[1],p2l[2]-p1l[2]])/*傾き方向*/,
nl(p1l,p2l):=block([ansl],ansl:[p2l[2]-p1l[2],-(p2l[1]-p1l[1])],ansl:ansl/gcd(ansl[1],ansl[2]))/*垂直方向*/,
dis(p1l,p2l):=block([ans],ans:sqrt((p2l-p1l).(p2l-p1l)))/*距離*/,
Rd(pPL):=block([poL,p1L,pjL,ppL,ans],poL:[0,0],p1L:[1,0],pjL:[0,1],ppL:pPL/sqrt(pPL.pPL),
/**/if ppL.p1L>=0 then (if ppL.pjL>=0 then ans:asin(ppL[2]) else ans:asin(ppL[2]))
/**//**/else (if ppL.pjL>=0 then ans:%pi-asin(ppL[2]) else ans:-%pi-asin(ppL[2]))
) )$
(TEISUUandKOUSIKI:"",
Pi:%pi/**/
)$
(TEJUN:"1",
pPL:[2,4],poL:[0,0],OP:dis(pPL,poL),a:Rd(pPL),t:Pi/4,pLL:[pPL[1],0],pQL:[OP*cos(a+t),OP*sin(a+t)]/*(◆修正部分2)*/,
pML:[pQL[1],0],pRL:[pPL[1]*cos(t),pPL[1]*sin(t)],pNL:[pRL[1],0],pSL:[pNL[1],pQL[2]],pUL:[pQL[1],pRL[2]]
)$
(kakunin:"グラフを書いて、視覚的に確認",
r0:OP,c:x^2+y^2=r0^2,C:"QS/RP/MONL, aPOL=aQOR=a, aRON=π/4",
pP:[pPL,poL,pLL,pPL,poL,pQL,pRL,poL] /**/,
pQ:[poL,pNL,pRL,poL,pML,pQL,pSL,pRL] /**/,
yL:r0/2*3,xL:yL/2*3,print([float(pP),"pP"]),print([float(pQ),"pQ"]) /**/,
gr(C,c,x=0,pP,pQ,-xL,xL,-yL,yL) /* "グラフ出力すると"*/
)$
(TEJUN: "2",algebraic:true,
SL:[[t=Pi/4]]/**/,
ev10:["P=","(OP*cos(a),OP*sin(a))=",pPL,"(aPOL=aQOR=a, aRON=π/4,OL=OP*cos(a),PL=OP*sin(a))",float([OP*cos(a),OP*sin(a)])],print(ev10)/**/,
ev11:["Q=(OP*cos(a+t),OP*sin(a+t))",float([OP*cos(a+t),OP*sin(a+t)])],print(ev11)/**/,
ev12:[" 《右辺を加法定理で展開すると》","(加法定理の公式)"],print(ev12)/**/,
ev13:[" =(OP*(cos(a)*cos(t)-sin(a)*sin(t)),OP*(sin(a)*cos(t)+cos(a)*sin(t)))","(OR=OP*cos(a)*cos(t),QS=OP*sin(a)*sin(t),NR=OP*sin(a)*cos(t),RS=OP*cos(a)*sin(t))",float([OP*(cos(a)*cos(t)-sin(a)*sin(t)),OP*(sin(a)*cos(t)+cos(a)*sin(t))])],print(ev13)/**/,
ev14:[" =",rat([OP*(cos(a)*cos(t)-sin(a)*sin(t)),OP*(sin(a)*cos(t)+cos(a)*sin(t))]),float([OP*(cos(a)*cos(t)-sin(a)*sin(t)),OP*(sin(a)*cos(t)+cos(a)*sin(t))])],print(ev14)/**/,
ansl:[ev10[2],ev10[3],ev11[1],ev14[1],ev14[2], "答え"],print(ansl)/**/
)$
(KAITOU:ansl/*解答*//**/,
SUJIMITI:"aとπ/4の加法定理により、cos(a+π/4)=( ),・・・"/**/,
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)")$

(print(MONDAI),
print(SUJIMITI),
print(KAITOU),
print(FURIKAERI))$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
(MONDAI:"・補充問題4 40201 点P(3,1)を、原点Oを中心として、π/4だけ回転した位置にある点をQとする。点I(1,0)、∠POI=aとして、OP*cos(a),OP*sin(a),点Qの座標は"/*(◆修正部分1)*/,
pPL:[3,1],poL:[0,0],OP:dis(pPL,poL),a:Rd(pPL),t:Pi/4,pLL:[pPL[1],0],pQL:[OP*cos(a+t),OP*sin(a+t)]/*(◆修正部分2)*/,


◆コマンド番号40202
●補充問題・章末問題
●●●●●●●●●●●●●●●●
kill(all) /**/$
(MONDAI:"・補充問題5 40202 2直線y=3*x、y=1/2*x+1のなす角tは"/*(◆修正部分1)*/,
KOUSATU:"傾きは、x軸(正)と直線の角度だから、・・・"/**/)$
(KANSUU:"",
gr(T,c,l,pP,pQ,xm,xM,ym,yM):=block(
/**/wxdraw2d(
/*....*/title =T, yrange=[ym,yM] /* "タイトルと値域を確認し" */,
/*....*/implicit(c,x,xm,xM,y,ym,yM),
/*....*/color=black,
/*....*/implicit(l,x,xm,xM,y,ym,yM),
/*....*/implicit(y=0,x,xm,xM,y,ym,yM),implicit(x=0,x,xm,xM,y,ym,yM) /* "x,y軸を引く" */,
/*....*/color=red,point_type =7,line_width=2,
/*....*/points_joined =true,point_size =1,points(pQ) /* "点pKを赤で打って、赤線で結んで" */,
/*....*/color=blue,point_type =6,
/*....*/points_joined =true,point_size =1,points(pP)) /* "点pPを青で打って、青線で結んで" */
),
ng2pl(p1l,p2l,m,n):=(p1l*n+p2l*m)/(m+n)/*2点と比から内外分点*/,
p2ngl(pl,p1l,p2l):=block([P,p1,p2,ans],p1:pl-p1l,p2:pl-p2l,P:rat(sqrt(p1.p1)/sqrt(p2.p2)),p1:num(P),p2:denom(P),
/**/print(ng2pl(p1l,p2l,p1,p2)),mes:"内分",if ng2pl(p1l,p2l,p1,p2)#pl then ((if p1>p2 then p2:-p2 else p1:-p1),mes:"外分"),
/**/ans:[p1,":",p2,mes])/*点を2点の内外分比で表示*/,
gl(p1l,p2l):=block([ansl],ansl:[p2l[1]-p1l[1],p2l[2]-p1l[2]])/*傾き方向*/,
nl(p1l,p2l):=block([ansl],ansl:[p2l[2]-p1l[2],-(p2l[1]-p1l[1])],ansl:ansl/gcd(ansl[1],ansl[2]))/*垂直方向*/,
dis(p1l,p2l):=block([ans],ans:sqrt((p2l-p1l).(p2l-p1l)))/*距離*/,
Rd(pPL):=block([poL,p1L,pjL,ppL,ans],poL:[0,0],p1L:[1,0],pjL:[0,1],ppL:pPL/sqrt(pPL.pPL),
/**/if ppL.p1L>=0 then (if ppL.pjL>=0 then ans:asin(ppL[2]) else ans:asin(ppL[2]))
/**//**/else (if ppL.pjL>=0 then ans:%pi-asin(ppL[2]) else ans:-%pi-asin(ppL[2]))
) )$
(TEISUUandKOUSIKI:"",
Pi:%pi/**/
)$
(TEJUN:"1",algebraic:true,
eq1:y=3*x,eq2:y=1/2*x+1,a1:rat(coeff(rhs(eq1),x,1)),a2:rat(coeff(rhs(eq2),x,1))/*(◆修正部分2)*/,
t1:atan(a1),t2:atan(a2),T11l:[eq1,eq2,"2つの直線の式"],print(T11l),
tant:(a1-a2)/(1+a1*a2),t:atan(tant),T12l:[a1,a2,"2つの直線の傾き=正接"],print(T12l),
ans0l:["tant=tan(t1-t2)=(tant1-tant2)/(1+tant1*tant2)=",a1-a2,"/",1+a1*a2,"=",(a1-a2)/(1+a1*a2),"t=",t,"正接の加法定理、求める角度"],print(ans0l),
poL:[0,0],pPL:[1,a1],OP:dis(pPL,poL),pP1L:pPL/OP,pQL:[1,a2],OQ:dis(pQL,poL),pQ1L:pQL/OQ /**/,
pRL:dis(poL,pQL)*pPL/(pPL.pQ1L),pIL:[1,0],pHL:dis(poL,pQL)*pIL/(pQ1L.pIL),
pLL:[pP1L[1],0],pML:[pQ1L[1],0]
)$
(kakunin:"グラフを書いて、視覚的に確認",
r0:2,c:x^2+y^2=r0^2,C:"RP/Q/OIH, PI=tant1,QI=tant2",
pP:[pIL,pPL,poL,pQL,poL] /**/,
pQ:[poL ,pHL ,pRL] /**/,
yL:r0/2*3,xL:yL/2*3,print([float(pP),"pP"]),print([float(pQ),"pQ"]) /**/,
gr(C,c,x=0,pP,pQ,-xL,xL,-yL,yL) /* "グラフ出力すると"*/
)$
(TEJUN: "2",algebraic:true,
IH:a2^2,OQ:sqrt(1+a2^2),OR:sqrt(1+a2^2)*sqrt(1+a^2),OP:sqrt(1+a1^2),PQ:a1-a2,QI:a2,PR:OP-OR,
PRwRO:PR/OR,PQwQIkIHwHO:PQ/QI*IH/(1+IH),print([PRwRO,PQwQIkIHwHO,"PR/RO,PQ/QI*IH/(IH+1),メネラウスの定理の準備"]),
e:PRwRO=PQwQIkIHwHO,e:subst(sqrt(a^2+1)=sqrta2t1,e),print([e,"sqrt(a^2+1)=sqrta2t1として、メネラウスの定理"]),
ssal:rat(solve(e,sqrta2t1)),ssal:subst(sqrta2t1=sqrt(a^2+1),ssal),print([ssal,"sqrta2t1=sqrt(a^2+1)について解く"]),ssal:rat(ssal^2),print(ssal),
sal:solve(ssal[1],a),print(sal),t=atan(rhs(sal[2])),ansl:["t=",t,"(t>=0より), 答え"],print(ansl)
)$
(KAITOU:ansl/*解答*//**/,
SUJIMITI:"傾きは、x軸(正)と直線の角度の正接だから、2つの直線のなす角の正接は、tan(t1-t2)=( ),・・・"/**/,
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)")$

(print(MONDAI),
print(SUJIMITI),
print(KAITOU),
print(FURIKAERI))$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
(MONDAI:"・補充問題5 40202 2直線y=sqrt(3)/2*x、y=5*sqrt(3)/3*x+1のなす角tは"/*(◆修正部分1)*/,
eq1:y=5*sqrt(3)/3*x+1,eq2:y=sqrt(3)/2*x,a1:rat(coeff(rhs(eq1),x,1)),a2:rat(coeff(rhs(eq2),x,1))/*(◆修正部分2)*/,