: 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)*/,


◆コマンド番号40203
●補充問題・章末問題
●●●●●●●●●●●●●●●●
kill(all) /**/$
(ordergreat(X,Y,Z,x,z,A,B,C,a,b,c) /* "できるだけ、X,Y,Z,x,y,z,A,B,C,a,b,cの順で"*/,
MONDAI:"・補充問題6 40203 0<=t< 2*%piのとき、sin(2*t)>=sin(t)となるtは"/**/,
KOUSATU:"三角関数を左辺に集めて因数分解して、・・・"/**/)$

(KANSUU:"",
tsql(tql):=block([ansl,f,t,s,v,pyl],f:tql[1],t:tql[2],s:tql[3], v:tql[4],pyl:[[0,2*Pi]],
/**/if f=sin then (stv:asin(v),if stv>=0 then pyl:[[0,2*Pi],[t,"=",stv],[t,"=",%pi-stv]]
/*______________________________*/else pyl:[[0,2*Pi],[t,"=",%pi-stv],[t,"=",2*Pi+stv]]),
/**/if f=cos then (stv:acos(v),pyl:[[0,2*Pi],[t,"=",stv],[t,"=",2*Pi-stv]]),
/**/if f=tan then (stv:atan(v),if stv>=0 then pyl:[[0,2*Pi],[t,"=",stv],[t,"=",%pi+stv]]
/*______________________________*/else pyl:[[0,2*Pi],[t,"=",%pi+stv],[t,"=",2*Pi+stv]]),
/**/if pyl[2][3]=0 then pyl:endcons([t,"=",pyl[1][2]],pyl),print(pyl,"これらが、基本区間とそこでの方程式の解で、"),
/**/ansl:pyl),
tsiql(tiql):=block([ansl,f,t,s,v,tql,pyl],f:tiql[1],t:tiql[2],s:tiql[3], v:tiql[4],tql:[f,t,"=",v],print(tql,"まず、こうして方程式として解くと"),pyl:tsql(tql),
/**/if f=sin and s=">" then (if v>=0 then pyl:[[0,2*Pi],[[pyl[2][3],"<",t],[t,"<",pyl[3][3]]]]
/*______________________________*/else pyl:[[0,2*Pi],[[0,"<=",t],[t,"<",pyl[2][3]]],[[pyl[3][3],"<",t],[t,"<",2*Pi]]]),
/**/if f=sin and s="<" then (if v>0 then pyl:[[0,2*Pi],[[0,"<=",t],[t,"<",pyl[2][3]]],[[pyl[3][3],"<",t],[t,"<",2*Pi]]]
/*______________________________*/else if v=0 then pyl:[[0,2*Pi],[[pyl[3][3],"<",t],[t,"<",pyl[4][3]]]]
/*______________________________*/else pyl:[[0,2*Pi],[[pyl[2][3],"<",t],[t,"<",pyl[3][3]]]] ),
/**/if f=sin and s=">=" then (if v>0 then pyl:[[0,2*Pi],[[pyl[2][3],"<=",t],[t,"<=",pyl[3][3]]]]
/*______________________________*/else if v=0 then pyl:[[0,2*Pi],[[0,"<=",t],[t,"<=",pyl[3][3]]]]
/*______________________________*/else pyl:[[0,2*Pi],[[0,"<=",t],[t,"<=",pyl[2][3]]],[[pyl[3][3],"<=",t],[t,"<",2*Pi]]]),
/**/if f=sin and s="<=" then (if v>0 then pyl:[[0,2*Pi],[[0,"<=",t],[t,"<=",pyl[2][3]]],[[pyl[3][3],"<=",t],[t,"<",2*Pi]]]
/*______________________________*/else if v=0 then pyl:[[0,2*Pi],[[[t,"=",0]],[%pi,"<=",t],[t,"<",2*Pi]]]
/*______________________________*/else pyl:[[0,2*Pi],[[pyl[2][3],"<=",t],[t,"<=",pyl[3][3]]]] ),
/**/if f=cos and s=">" then pyl:[[0,2*Pi],[[0,"<=",t],[t,"<",pyl[2][3]]],[[pyl[3][3],"<",t],[t,"<",2*Pi]]] ,
/**/if f=cos and s="<" then pyl:[[0,2*Pi],[[pyl[2][3],"<",t],[t,"<",pyl[3][3]]]] ,
/**/if f=cos and s=">=" then pyl:[[0,2*Pi],[[0,"<=",t],[t,"<=",pyl[2][3]]],[[pyl[3][3],"<=",t],[t,"<",2*Pi]]],
/**/if f=cos and s="<=" then pyl:[[0,2*Pi],[[pyl[2][3],"<=",t],[t,"<=",pyl[3][3]]]] ,
/**/if f=tan and s=">" then (if v>=0 then pyl:[[0,2*Pi],[[pyl[2][3],"<",t],[t,"<",1/2*%pi]],[[pyl[3][3],"<",t],[t,"<",3/2*%pi]]]
/*______________________________*/else pyl:[[0,2*Pi],[[0,"<=",t],[t,"<",1/2*%pi]],[[pyl[2][3],"<",t],[t,"<",3/2*%pi]]
/*_____________________________________*/,[[pyl[3][3],"<",t],[t,"<",2*Pi]]]),
/**/if f=tan and s="<" then (if v>0 then pyl:[[0,2*Pi],[[0,"<=",t],[t,"<",pyl[2][3]]],[[1/2*%pi,"<",t],[t,"<",pyl[3][3]]]
/*_____________________________________*/,[[3/2*%pi,"<",t],[t,"<",2*Pi]]]
/*______________________________*/else if v=0 then pyl:[[0,2*Pi],[[1/2*%pi,"<",t],[t,"<",pyl[3][3]]],[[3/2*%pi,"<",t],[t,"<",pyl[4][3]]]]
/*______________________________*/else pyl:[[0,2*Pi],[[1/2*%pi,"<",t],[t,"<",pyl[2][3]]],[[3/2*%pi,"<",t],[t,"<",pyl[3][3]]]]),
/**/if f=tan and s=">=" then (if v>=0 then pyl:[[0,2*Pi],[[pyl[2][3],"<=",t],[t,"<",1/2*%pi]],[[pyl[3][3],"<=",t],[t,"<",3/2*%pi]]]
/*______________________________*/else pyl:[[0,2*Pi],[[0,"<=",t],[t,"<",1/2*%pi]],[[pyl[2][3],"<=",t],[t,"<",3/2*%pi]]
/*____________________________________*/,[[pyl[3][3],"<=",t],[t,"<",2*Pi]]]),
/**/if f=tan and s="<=" then (if v>=0 then pyl:[[0,2*Pi],[[0,"<=",t],[t,"<=",pyl[2][3]]]
/*____________________________________*/,[[1/2*%pi,"<",t],[t,"<=",pyl[3][3]]],[[3/2*%pi,"<",t],[t,"<",2*Pi]]]
/*______________________________*/else pyl:[[0,2*Pi],[[1/2*%pi,"<",t],[t,"<=",pyl[2][3]]],[[3/2*%pi,"<",t],[t,"<=",pyl[3][3]]]]),
ansl:pyl/*,print([s,pyl,"koko"])*/)
)$
(TEISUU: " ",
Pi:%pi)$

(TEJUN:"",
STEP1:"三角関数不等式の枠へ",
algebraic:true,
print("1 準備"),
tiq:sin(2*t)>=sin(t),print(tiq,"問題でのこの不等式を")/**/,
tiq0:sin(2*t)-sin(t)>=0,print(tiq0,"左辺>=0の形へ")/**/,
tiq0:2*sin(t/2)*cos(3/2*t)>=0,print(tiq0,"左辺の和を積へ")/*(◆修正部分1)*/,
tiq0:2*sin(t2)*cos(3*t2)>=0,print(tiq0,"t/2をt2,3*t2をt32として")/*(◆修正部分1)*/,
print("2 第1因子>=0,第2因子>=0をそれぞれ解くことにする")/**/,
print("2(1) 第1因子>=0を解くには")/**/,
tiq1l:[sin,t2,">=",0],print([tiq1l,"第1因子>=0として"])/*(◆修正部分2)*/,
tsi1l:tsiql(tiq1l),print(tsi1l,"第1因子のt2について、このように、基本区間,基本区間での不等式の解が得られ、")/*(◆修正部分2)*/,
tsi1l1:tsi1l[1],print(tsi1l1),tsi1l2:tsi1l[2],tsi1l2:[[tsi1l2[1][1]*2,tsi1l2[1][2],t], [t,tsi1l2[2][2], tsi1l2[2][3]*2]], tsi1l3:tsi1l[2], tsi1l3:[[(tsi1l3[1][1]+2*Pi)*2,tsi1l3[1][2],t], [t,tsi1l3[2][2], (tsi1l3[2][3]+2*Pi)*2]], print([tsil1,tsi1l2,tsi1l3,"周期を使い、この問題の範囲を少し超えてt2の解を求め、係数で割ってtに戻して解を求めて、"])/*(◆修正部分2)*/,
tsi1l:[tsi1l1,[tsi1l2[1], [t,"< ", tsi1l2[2][3]]]],print([tsi1l,"この問題の範囲に合わせてtの解を絞り込んだ"])/*(◆修正部分2)*/,
print("2(2) 第2因子>=0を解くには")/**/,
tiq2l:[cos,t32,">=",0],print([tiq2l,"第2因子>=0として"])/*(◆修正部分3)*/,
tsi2l:tsiql(tiq2l),print(tsi2l,"第2因子のt32について、このように、基本区間,基本区間での不等式の解が得られ、")/*(◆修正部分3)*/,
tsi2l1:tsi2l[1],tsi2l2:tsi2l[2],tsi2l2:[[tsi2l2[1][1]*2/3,tsi2l2[1][2],t], [t,tsi2l2[2][2], tsi2l2[2][3]*2/3]], tsi2l3:tsi2l[3], tsi2l3:[[tsi2l3[1][1]*2/3,tsi2l3[1][2],t], [t,tsi2l3[2][2], tsi2l3[2][3]*2/3]]/*(◆修正部分3)*/,
tsi2l4:tsi2l[2],tsi2l4:[[(tsi2l4[1][1]+2*Pi)*2/3,tsi2l4[1][2],t], [t,tsi2l4[2][2], (tsi2l4[2][3]+2*Pi)*2/3]], tsi2l5:tsi2l[3], tsi2l5:[[(tsi2l5[1][1]+2*Pi)*2/3,tsi2l5[1][2],t], [t,tsi2l4[2][2], (tsi2l5[2][3]+2*Pi)*2/3]], print([tsi2l1,tsi2l2,tsi2l3,tsi2l4,tsi2l5,"周期を使い、この問題の範囲を少し超えてt32の解を求め、係数で割って、tに戻して解を求めて、"])/*(◆修正部分3)*/,
tsi2l:[tsi2l1,tsi2l2,[tsi2l3[1],tsi2l4[2]]],print([tsi2l,"この問題の範囲に合わせてtの解を絞り込んだ"])/*(◆修正部分3)*/,
print("3 2つの因子の積>=0となるように解を求めると"),
print([tsi1l,"第1因子>=0の解"]),print([tsil,"第2因子>=0の解"]),
tsil:tsi2l/*(◆修正部分4)*/,
ansl:endcons("基本区間,不等式の解",tsil),print(ansl))$

(KAKUNIN:"図で確認"/**/,
r1:2,xm:-r1*1.5, xM:r1*1.5, ym:xm/8.3*6.7, yM:xM/8.3*6.7/**/,
yL:[[0,ym],[0,yM]]/*y軸*/,
gr0:parametric(cos(t),sin(t),t,0,2*Pi),
ptfc:filled_circle,ptc:circle,
poL:[0,0],rd11m:tsi1l[2][1][1],rd11M:tsi1l[2][2][3],p11mL:0.94*[cos(rd11m+0.1),sin(rd11m+0.1)],p11ML:0.94*[cos(rd11M-0.1),sin(rd11M-0.1)]/*(◆修正部分5)*/,
rd21m:tsi2l[2][1][1],rd21M:tsi2l[2][2][3],p21mL:1.02*[cos(rd21m+0.1),sin(rd21m+0.1)],p21ML:1.02*[cos(rd21M),sin(rd21M)]/*(◆修正部分5)*/,
rd22m:tsi2l[3][1][1],rd22M:tsi2l[3][2][3],p22mL:1.02*[cos(rd22m),sin(rd22m)],p22ML:1.02*[cos(rd22M),sin(rd22M)]/*(◆修正部分5)*/,
p1fl:points([p11mL]),p1cl:points([p11ML]),p2fl:points([p21mL,p21ML,p22mL,p22ML])/*(◆修正部分5)*/,
gr11:parametric(0.94*cos(t),0.94*sin(t),t,rd11m,rd11M)/**/,
gr21:parametric(1.02*cos(t),1.02*sin(t),t,rd21m,rd21M)/**/,
gr22:parametric(1.02*cos(t),1.02*sin(t),t,rd22m,rd22M)/**/,
print(gr0,"単位円"),print(gr11,gr1,gr2,pt1,"解の弧"),print(p1l,p2l),
wxdraw2d(yrange=[ym,yM] /* "()" */,
/**/color=black,explicit(0,x,xm,xM),points_joined=true,points(yL),points_joined=false/*xy軸*/,
/**/points_joined=false, color=red, point_type=ptfc, point_size=2,line_width=4,p2fl,gr21,gr22/*第2因子>=0*/,
/**/points_joined=false, color=cyan, point_type=ptfc, point_size=2,line_width=3,p1fl,gr11/*第1因子>=0*//*(◆修正部分6)*/,
/**/points_joined=false, color=cyan, point_type=ptc, point_size=2,line_width=3,p1cl/*第1因子>=0の端点2*Pi*//*(◆修正部分6)*/,
/**/points_joined=false, color=blue, point_type=filled_circle, point_size=1,line_width=1,gr0,points([poL])/*単位円*//**/
/**/) /* "青は単位円、シアンが第1因子>=0のtの範囲、赤が第2因子>=0のtの範囲で、2つの線が重なった範囲と、2つの線がともにない範囲が求めるもの(範囲が端点を含むかどうかに注意)" */)$

(KAITOU:ansl/*解答*//**/,
SUJIMITI:"三角関数を左辺に集めて因数分解すると、左辺は、(    )となるので、・・・"/**/,
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)")$

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

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
tiq0:2*sin(t)*cos(t)-sin(t)>=0,print(tiq0,"左辺を2倍角公式で展開して")/*(◆修正部分1)*/,
tiq0:sin(t)*(2*cos(t)-1)>=0,print(tiq0,"共通因数をくくりだして因数分解して")/*(◆修正部分1)*/,
tiq1l:[sin,t,">=",0],print([tiq1l,"第1因子>=0として"])/*(◆修正部分2)*/,
tsi1l:tsiql(tiq1l),print(tsi1l,"第1因子のtについて、このように、基本区間,基本区間での不等式の解が得られる")/*(◆修正部分2)*/,
tiq2l:[cos,t,">=",1/2],print([tiq2l,"第2因子>=0をcos(t)について解いた結果として"])/*(◆修正部分3)*/,
tsi2l:tsiql(tiq2l),print(tsi2l,"第2因子のtについて、このように、基本区間,基本区間での不等式の解が得られ、")/*(◆修正部分3)*/,
tsil1:tsi2l[1],tsil2:tsi2l[2],tsil31:tsi1l[2],tsil32:tsi2l[3],tsil3:[[tsil31[2][3],tsil31[2][2],t], [t,tsil32[1][2], tsil32[1][1]]]/*(◆修正部分4)*/,
tsil:[tsil1,tsil2,tsil3]/*(◆修正部分4)*/,
poL:[0,0],rd11m:tsi1l[2][1][1],rd11M:tsi1l[2][2][3],p11mL:0.94*[cos(rd11m),sin(rd11m)],p11ML:0.94*[cos(rd11M),sin(rd11M)]/*(◆修正部分5)*/,
rd21m:tsi2l[2][1][1],rd21M:tsi2l[2][2][3],p21mL:1.02*[cos(rd21m+0.1),sin(rd21m+0.1)],p21ML:1.02*[cos(rd21M),sin(rd21M)]/*(◆修正部分5)*/,
rd22m:tsi2l[3][1][1],rd22M:tsi2l[3][2][3],p22mL:1.02*[cos(rd22m),sin(rd22m)],p22ML:1.02*[cos(rd22M-0.1),sin(rd22M-0.1)]/*(◆修正部分5)*/,
p1fl:points([p11mL,p11ML]),p2fl:points([p21mL,p21ML,p22mL]),p2l:points([p22ML])/*(◆修正部分5)*/,
/**/points_joined=false, color=red, point_type=ptc, point_size=2,line_width=4,p2l/*第1因子>=0の端点2*Pi*//*(◆修正部分6)*/,
/**/points_joined=false, color=cyan, point_type=ptfc, point_size=2,line_width=3,p1fl,gr11/*第2因子>=0*//*(◆修正部分6)*/,


◆コマンド番号40204
●補充問題・章末問題
●●●●●●●●●●●●●●●●
kill(all) /**/$
(ordergreat(X,Y,Z,x,z,A,B,C,a,b,c) /* "できるだけ、X,Y,Z,x,y,z,A,B,C,a,b,cの順で"*/,
MONDAI:"・補充問題7 40204 sin(x)+2*cos(x)の最大値、最小値は"/*(◆修正部分1)*/,
KOUSATU:"三角関数を合成して、・・・"/**/)$

(KANSUU:"",
tsql(tql):=block([ansl,f,t,s,v,pyl],f:tql[1],t:tql[2],s:tql[3], v:tql[4],pyl:[[0,2*Pi]],
/**/if f=sin then (stv:asin(v),if stv>=0 then pyl:[[0,2*Pi],[t,"=",stv],[t,"=",%pi-stv]]
/*______________________________*/else pyl:[[0,2*Pi],[t,"=",%pi-stv],[t,"=",2*Pi+stv]]),
/**/if f=cos then (stv:acos(v),pyl:[[0,2*Pi],[t,"=",stv],[t,"=",2*Pi-stv]]),
/**/if f=tan then (stv:atan(v),if stv>=0 then pyl:[[0,2*Pi],[t,"=",stv],[t,"=",%pi+stv]]
/*______________________________*/else pyl:[[0,2*Pi],[t,"=",%pi+stv],[t,"=",2*Pi+stv]]),
/**/if pyl[2][3]=0 then pyl:endcons([t,"=",pyl[1][2]],pyl),print(pyl,"これらが、基本区間とそこでの方程式の解で、"),
/**/ansl:pyl),
tsiql(tiql):=block([ansl,f,t,s,v,tql,pyl],f:tiql[1],t:tiql[2],s:tiql[3], v:tiql[4],tql:[f,t,"=",v],print(tql,"まず、こうして方程式として解くと"),pyl:tsql(tql),
/**/if f=sin and s=">" then (if v>=0 then pyl:[[0,2*Pi],[[pyl[2][3],"<",t],[t,"<",pyl[3][3]]]]
/*______________________________*/else pyl:[[0,2*Pi],[[0,"<=",t],[t,"<",pyl[2][3]]],[[pyl[3][3],"<",t],[t,"<",2*Pi]]]),
/**/if f=sin and s="<" then (if v>0 then pyl:[[0,2*Pi],[[0,"<=",t],[t,"<",pyl[2][3]]],[[pyl[3][3],"<",t],[t,"<",2*Pi]]]
/*______________________________*/else if v=0 then pyl:[[0,2*Pi],[[pyl[3][3],"<",t],[t,"<",pyl[4][3]]]]
/*______________________________*/else pyl:[[0,2*Pi],[[pyl[2][3],"<",t],[t,"<",pyl[3][3]]]] ),
/**/if f=sin and s=">=" then (if v>0 then pyl:[[0,2*Pi],[[pyl[2][3],"<=",t],[t,"<=",pyl[3][3]]]]
/*______________________________*/else if v=0 then pyl:[[0,2*Pi],[[0,"<=",t],[t,"<=",pyl[3][3]]]]
/*______________________________*/else pyl:[[0,2*Pi],[[0,"<=",t],[t,"<=",pyl[2][3]]],[[pyl[3][3],"<=",t],[t,"<",2*Pi]]]),
/**/if f=sin and s="<=" then (if v>0 then pyl:[[0,2*Pi],[[0,"<=",t],[t,"<=",pyl[2][3]]],[[pyl[3][3],"<=",t],[t,"<",2*Pi]]]
/*______________________________*/else if v=0 then pyl:[[0,2*Pi],[[[t,"=",0]],[%pi,"<=",t],[t,"<",2*Pi]]]
/*______________________________*/else pyl:[[0,2*Pi],[[pyl[2][3],"<=",t],[t,"<=",pyl[3][3]]]] ),
/**/if f=cos and s=">" then pyl:[[0,2*Pi],[[0,"<=",t],[t,"<",pyl[2][3]]],[[pyl[3][3],"<",t],[t,"<",2*Pi]]] ,
/**/if f=cos and s="<" then pyl:[[0,2*Pi],[[pyl[2][3],"<",t],[t,"<",pyl[3][3]]]] ,
/**/if f=cos and s=">=" then pyl:[[0,2*Pi],[[0,"<=",t],[t,"<=",pyl[2][3]]],[[pyl[3][3],"<=",t],[t,"<",2*Pi]]],
/**/if f=cos and s="<=" then pyl:[[0,2*Pi],[[pyl[2][3],"<=",t],[t,"<=",pyl[3][3]]]] ,
/**/if f=tan and s=">" then (if v>=0 then pyl:[[0,2*Pi],[[pyl[2][3],"<",t],[t,"<",1/2*%pi]],[[pyl[3][3],"<",t],[t,"<",3/2*%pi]]]
/*______________________________*/else pyl:[[0,2*Pi],[[0,"<=",t],[t,"<",1/2*%pi]],[[pyl[2][3],"<",t],[t,"<",3/2*%pi]]
/*_____________________________________*/,[[pyl[3][3],"<",t],[t,"<",2*Pi]]]),
/**/if f=tan and s="<" then (if v>0 then pyl:[[0,2*Pi],[[0,"<=",t],[t,"<",pyl[2][3]]],[[1/2*%pi,"<",t],[t,"<",pyl[3][3]]]
/*_____________________________________*/,[[3/2*%pi,"<",t],[t,"<",2*Pi]]]
/*______________________________*/else if v=0 then pyl:[[0,2*Pi],[[1/2*%pi,"<",t],[t,"<",pyl[3][3]]],[[3/2*%pi,"<",t],[t,"<",pyl[4][3]]]]
/*______________________________*/else pyl:[[0,2*Pi],[[1/2*%pi,"<",t],[t,"<",pyl[2][3]]],[[3/2*%pi,"<",t],[t,"<",pyl[3][3]]]]),
/**/if f=tan and s=">=" then (if v>=0 then pyl:[[0,2*Pi],[[pyl[2][3],"<=",t],[t,"<",1/2*%pi]],[[pyl[3][3],"<=",t],[t,"<",3/2*%pi]]]
/*______________________________*/else pyl:[[0,2*Pi],[[0,"<=",t],[t,"<",1/2*%pi]],[[pyl[2][3],"<=",t],[t,"<",3/2*%pi]]
/*____________________________________*/,[[pyl[3][3],"<=",t],[t,"<",2*Pi]]]),
/**/if f=tan and s="<=" then (if v>=0 then pyl:[[0,2*Pi],[[0,"<=",t],[t,"<=",pyl[2][3]]]
/*____________________________________*/,[[1/2*%pi,"<",t],[t,"<=",pyl[3][3]]],[[3/2*%pi,"<",t],[t,"<",2*Pi]]]
/*______________________________*/else pyl:[[0,2*Pi],[[1/2*%pi,"<",t],[t,"<=",pyl[2][3]]],[[3/2*%pi,"<",t],[t,"<=",pyl[3][3]]]]),
ansl:pyl/*,print([s,pyl,"koko"])*/)
)$
(TEISUU: " ",
Pi:%pi)$

(TEJUN:"",
STEP1:"三角関数の合成",
algebraic:true,
print("1 準備"),
f:sin(x)+2*cos(x),print(f,"問題での関数")/*(◆修正部分2)*/,
print("2 三角関数の和を合成する")/**/,
a1:coeff(f,sin(x)),a2:coeff(f,cos(x)),A:sqrt(a1^2+a2^2),T:atan(a2/a1),print([a1,a2,A,T,"sin(x),cos(x)の係数から、合成後の係数、補正角を求めて"])/**/,
f1:A*sin(x+t),print(f1," ( t=",T,") 合成した関数")/**/,
print("3 合成した関数の最大、最小を判断する")/**/,
fM:A,xM:Pi/2-T, fm:-A,xm:Pi*3/2-T,ansl:[fM,xM,fm,xm,"求める最大値、そのときのx、最小値、そのときのx"],print(ansl,subst([x=xM,t=T],f) ,subst([x=xm,t=T],f)))$

(KAKUNIN:"図で確認"/*P,R/Q/O,S,T,I*/,
r1:A,X:Pi/12,xm:-r1*1.5, xM:r1*1.5, ym:xm/8.3*6.7, yM:xM/8.3*6.7/**/,
yL:[[0,ym],[0,yM]]/*y軸*/,
gr0:parametric(A*cos(t),A*sin(t),t,0,2*Pi),
ptfc:filled_circle,ptc:circle,
poL:[0,0],pPL:A*[cos(X+T),sin(X+T)],pQL:A*cos(T)*[cos(X),sin(X)],pRL:[pQL[1],pPL[2]],pSL:[pPL[1],0],pTL:[pQL[1],0],pIL:[A,0]/*(◆修正部分5)*/,
p1fl:points([pQL,poL,pTL,pQL,pPL,poL,pQL]),p1cl:points([poL,pIL]),p2fl:points([pSL,pTL,pQL,pRL,pPL]),p3fl:points([pPL,poL,pSL,pPL])/*(◆修正部分5)*/,
wxdraw2d(yrange=[ym,yM] /* "()" */,
/**/color=black,explicit(0,x,xm,xM),points_joined=true,points(yL),points_joined=false/*xy軸*/,
/**/points_joined=true, color=cyan, point_type=ptfc, point_size=2,line_width=1,p1fl/*合成過程XとTの部分*//*(◆修正部分6)*/,
/**/points_joined=true, color=cyan, point_type=ptc, point_size=2,line_width=1,p1cl/*x軸基線*//*(◆修正部分6)*/,
/**/points_joined=true, color=black, point_type=ptfc, point_size=1,line_width=1,p2fl/*合成の補助線*/,
/**/points_joined=true, color=red, point_type=ptfc, point_size=2,line_width=2,p3fl/*合成結果X+Tの部分*/,
/**/points_joined=true, color=blue, point_type=filled_circle, point_size=1,line_width=1,gr0,points([poL])/*単位円*//**/
/**/) /* "青は単位円、シアンが合成過程の三角形、黒が合成の補助線、赤が合成結果の三角形" */)$

(KAITOU:ansl/*解答*//**/,
SUJIMITI:"三角関数を合成すると、関数は、(    )となるので、・・・"/**/,
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)")$

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

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・補充問題7 40204 sqrt(3)*sin(x)+cos(x)の最大値、最小値は"/*(◆修正部分1)*/,
f:sqrt(3)*sin(x)+cos(x),print(f,"問題での関数")/*(◆修正部分2)*/,


◆コマンド番号40205
●補充問題・章末問題
●●●●●●●●●●●●●●●●
kill(all) /**/$
(ordergreat(X,Y,Z,x,z,A,B,C,a,b,c) /* "できるだけ、X,Y,Z,x,y,z,A,B,C,a,b,cの順で"*/,
MONDAI:"・章末問題2 40205 y=cos(1/2*(x-Pi/3))のグラフは"/*(◆修正部分1)*/,
KOUSATU:"x=7/3*Piのときcos(Pi)の値をとるので、基準関数y=cos(x)のグラフが、y軸を基準として、x軸方向に2倍に伸び、+Pi/3平行移動して・・・"/*(◆修正部分1)*/)$

(KANSUU:"",
dis(p1l,p2l):=block([ans],ans:sqrt((p2l-p1l).(p2l-p1l)))/*2点間の距離*/,
tsql(tql):=block([ansl,f,t,s,v,pyl],f:tql[1],t:tql[2],s:tql[3], v:tql[4],pyl:[[0,V2pi]],
/**/if f=sin then (stv:asin(v),if stv>=0 then pyl:[[0,V2pi],[t,"=",stv],[t,"=",%pi-stv]]
/*______________________________*/else pyl:[[0,V2pi],[t,"=",%pi-stv],[t,"=",V2pi+stv]]),
/**/if f=cos then (stv:acos(v),pyl:[[0,V2pi],[t,"=",stv],[t,"=",V2pi-stv]]),
/**/if f=tan then (stv:atan(v),if stv>=0 then pyl:[[0,V2pi],[t,"=",stv],[t,"=",%pi+stv]]
/*______________________________*/else pyl:[[0,V2pi],[t,"=",%pi+stv],[t,"=",V2pi+stv]]),
/**/if pyl[2][3]=0 then pyl:endcons([t,"=",pyl[1][2]],pyl),print(pyl,"基本区間、方程式とみての解"),
/**/ansl:pyl),
tsiql(tiql):=block([ansl,f,t,s,v,tql,pyl],f:tiql[1],t:tiql[2],s:tiql[3], v:tiql[4],tql:[f,t,"=",v],print(tql,"方程式として"),pyl:tsql(tql),
/**/if f=sin and s=">" then (if v>=0 then pyl:[[0,V2pi],[[pyl[2][3],"<",t],[t,"<",pyl[3][3]]]]
/*______________________________*/else pyl:[[0,V2pi],[[0,"<=",t],[t,"<",pyl[2][3]]],[[pyl[3][3],"<",t],[t,"<=",V2pi]]]),
/**/if f=sin and s="<" then (if v>0 then pyl:[[0,V2pi],[[0,"<=",t],[t,"<",pyl[2][3]]],[[pyl[3][3],"<",t],[t,"<=",V2pi]]]
/*______________________________*/else if v=0 then pyl:[[0,V2pi],[[pyl[3][3],"<",t],[t,"<",pyl[4][3]]]]
/*______________________________*/else pyl:[[0,V2pi],[[pyl[2][3],"<",t],[t,"<",pyl[3][3]]]] ),
/**/if f=sin and s=">=" then (if v>0 then pyl:[[0,V2pi],[[pyl[2][3],"<=",t],[t,"<=",pyl[3][3]]]]
/*______________________________*/else if v=0 then pyl:[[0,V2pi],[[0,"<=",t],[t,"<=",pyl[3][3]]],[[t,"=",V2pi]]]
/*______________________________*/else pyl:[[0,V2pi],[[0,"<=",t],[t,"<=",pyl[2][3]]],[[pyl[3][3],"<=",t],[t,"<=",V2pi]]]),
/**/if f=sin and s="<=" then (if v>0 then pyl:[[0,V2pi],[[0,"<=",t],[t,"<=",pyl[2][3]]],[[pyl[3][3],"<=",t],[t,"<=",V2pi]]]
/*______________________________*/else if v=0 then pyl:[[0,V2pi],[[[t,"=",0]],[%pi,"<=",t],[t,"<=",V2pi]]]
/*______________________________*/else pyl:[[0,V2pi],[[pyl[2][3],"<=",t],[t,"<=",pyl[3][3]]]] ),
/**/if f=cos and s=">" then pyl:[[0,V2pi],[[0,"<=",t],[t,"<",pyl[2][3]]],[[pyl[3][3],"<",t],[t,"<=",V2pi]]] ,
/**/if f=cos and s="<" then pyl:[[0,V2pi],[[pyl[2][3],"<",t],[t,"<",pyl[3][3]]]] ,
/**/if f=cos and s=">=" then pyl:[[0,V2pi],[[0,"<=",t],[t,"<=",pyl[2][3]]],[[pyl[3][3],"<=",t],[t,"<=",V2pi]]],
/**/if f=cos and s="<=" then pyl:[[0,V2pi],[[pyl[2][3],"<=",t],[t,"<=",pyl[3][3]]]] ,
/**/if f=tan and s=">" then (if v>=0 then pyl:[[0,V2pi],[[pyl[2][3],"<",t],[t,"<",1/2*%pi]],[[pyl[3][3],"<",t],[t,"<",3/2*%pi]]]
/*______________________________*/else pyl:[[0,V2pi],[[0,"<=",t],[t,"<",1/2*%pi]],[[pyl[2][3],"<",t],[t,"<",3/2*%pi]]
/*_____________________________________*/,[[pyl[3][3],"<",t],[t,"<=",V2pi]]]),
/**/if f=tan and s="<" then (if v>0 then pyl:[[0,V2pi],[[0,"<=",t],[t,"<",pyl[2][3]]],[1/2*%pi,"<",t],[t,"<",pyl[3][3]]
/*_____________________________________*/,[3/2*%pi,"<",t],[t,"<=",V2pi]]
/*______________________________*/else if v=0 then pyl:[[0,V2pi],[[1/2*%pi,"<",t],[t,"<",pyl[3][3]]],[[3/2*%pi,"<",t],[t,"<",pyl[4][3]]]]
/*______________________________*/else pyl:[[0,V2pi],[[1/2*%pi,"<",t],[t,"<",pyl[2][3]]],[[3/2*%pi,"<",t],[t,"<",pyl[3][3]]]]),
/**/if f=tan and s=">=" then (if v>=0 then pyl:[[0,V2pi],[[pyl[2][3],"<=",t],[t,"<",1/2*%pi]],[[pyl[3][3],"<=",t],[t,"<",3/2*%pi]]]
/*______________________________*/else pyl:[[0,V2pi],[[0,"<=",t],[t,"<",1/2*%pi]],[[pyl[2][3],"<=",t],[t,"<",3/2*%pi]]
/*____________________________________*/,[[pyl[3][3],"<=",t],[t,"<=",V2pi]]]),
/**/if f=tan and s="<=" then (if v>=0 then pyl:[[0,V2pi],[[0,"<=",t],[t,"<=",pyl[2][3]]]
/*____________________________________*/,[[1/2*%pi,"<",t],[t,"<=",pyl[3][3]]],[[3/2*%pi,"<",t],[t,"<=",V2pi]]]
/*______________________________*/else pyl:[[0,V2pi],[[1/2*%pi,"<",t],[t,"<=",pyl[2][3]]],[[3/2*%pi,"<",t],[t,"<=",pyl[3][3]]]]),
ansl:pyl/*,print([s,pyl,"koko"])*/)
)$
(TEISUU: " ",
Pi:%pi)$
(TEJUN:"",
n:1/2,P:Pi/3,f:cos(n*(x-P)),print([f,"[関数cos(1/2*(x-Pi/3))]"])/*(◆修正部分2)*/,
IDEA :"cos(x) ==> cos(n*(x/n)) ==> cos(n*((x/n+P)-P))"/*(◆修正部分2)*/,
IDEA :"cos([Pi=p2]) ==> cos(n*([p2/n=p1])) ==> cos(n*([p2/n+P=p0]-P))"/*(◆修正部分2)*/,
p2:Pi,p1:p2/n,p0:p2/n+P/*関数のxにp0=p2/n+Pを代入→p0-P=p2/n→n*(p0-P)=p2を基準関数cos(x)に代入した値*//*(◆修正部分2)*/,
poL:[0,0],pxPL:[P,0],
pc0L:[cos(p0),sin(p0)],pcx0L:[cos(p0),0],px0L:[p0,0],pt0L:[p0,subst(x=p0,f)] ,px0L:[p0,0]/*(◆修正部分3)*/,
pc1L:[cos(p1),sin(p1)] ,pcx1L:[cos(p1),0], px1L:[p1,0], pt1L:[p1,subst(x=p1,cos(n*x))],px1L:[p1,0]/*(◆修正部分3)*/,
pc2L:[cos(p2),sin(p2)],pcx2L:[cos(p2),0],px2L:[p2,0],pt2L:[p2,subst(x=p2,cos(x))] ,px2L:[p2,0]/*(◆修正部分3)*/,
print(["cos(",n,"*([p0=",p0,"]-",P,"))","= cos(",n,"*([p1=",p1,"]))","= cos(",p2,")"])/*(◆修正部分3)*/,
ansl:["f(2*Pi+Pi/3)=cos(Pi)だから、cos(Pi)がf(2*Pi+Pi/3)へくるように、y軸を基準にx軸方向に2倍に伸ばされ、+Pi/3平行移動される","解答"]/*(◆修正部分3)*/,
print(ansl)
)$
(KAKUNIN:"図で確認"/**/,
r1:2*Pi,xm:-r1*1.5, xM:r1*1.5, ym:xm/8.3*6.7, yM:xM/8.3*6.7/**/,
gr0:explicit(f,x,xm,xM),gr2:explicit(cos(x),x,xm,xM)/*(◆修正部分4)*/,
pc2l:points([poL,pc2L]),pcx2l:points([poL,pcx2L]),px2l:points([px2L,px2L]),p2l:points([px2L,pt2L])/*(◆修正部分4)*/,
pc1l:points([pc1L]),px1l:points([px1L])/**/,
pc0l:points([pc0L]),px0l:points([poL,px0L]),p0l:points([px0L,pt0L])/**/,
yL:[[0,ym],[0,yM]]/*y軸*/,
grc:parametric(cos(x),sin(x),x,0,2*Pi),grc0:parametric(cos(x),sin(x),x,0,p0)/*(◆修正部分5)*/,
wxdraw2d(yrange=[ym,yM] /* "(◆修正部分5)" */,
/**/color=black,explicit(0,x,xm,xM),points_joined=true,points(yL)/*xy軸*//*(◆修正部分5)*/,
/**/points_joined=true, color=red, point_type=filled_circle, point_size=1,pcx2l,p0l,p2l,line_width=1,gr2/*関数f*//**/,
/**/points_joined=true, color=cyan, point_type=filled_circle, point_size=1,pc0l,px0l,line_width=2,grc0/*弧度*//**/,
/**/points_joined=true, color=dark_green, point_type=filled_circle, point_size=1,pc1l,px1l/*与えられたもの*/,
/**/points_joined=true, color=blue, point_type=filled_circle, point_size=1,pc2l,px2l,line_width=1,grc,gr2/*与えられたもの*/,
/**/points_joined=true, color=red, point_type=filled_circle, point_size=0,pcx2l,p0l,p2l,line_width=1,gr0/*関数f*//**/
/**/) /* "青が基準関数のグラフ、シアンが弧度、赤が求めるグラフ" */,
print(["cos(",n,"*([p0=",p0,"]-",P,"))","= cos(",n,"*([p1=",p1,"]))","= cos(",p2,")"])/*(◆修正部分6)*/,
print(ansl)/*(◆修正部分6)*/,
print([p0,p1,p2,pc0L,pc1L,pc2L,pc2L[1],"[弧度(関数p0,p1,基準関数代入時p2),円周上の弧度点(p0,p1,p2),基準関数での関数値]"])/*(◆修正部分6)*/,
print([px2L,px1L,px0L,pt2L,pt0L,"[x軸上の弧度点(p2,p1,p0),グラフ上の点(基準関数,関数)"])
)$
(KAITOU:ansl/*解答*//**/,
SUJIMITI:"弧度をn倍した三角関数のグラフは、弧度軸方向が、y軸を基準に1/nとなり、・・・"/**/,
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)")$

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

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・章末問題2 40205 y=2*sin(t+Pi/3)のグラフは"/*(◆修正部分1)*/,
KOUSATU:"t=2/3*Piのとき2*sin(Pi)の値をとるので、基準関数y=sin(t)のグラフが、x軸を基準に、y軸方向に2倍され、t軸方向-Pi/3平行移動されて・・・"/*(◆修正部分1)*/)$
m:2,n:1,P:-Pi/3,f:m*sin(t-P),print([f,"[関数2*sin(t+Pi/3)]"])/*(◆修正部分2)*/,
IDEA :"sin(t) ==> 2*sin(t) ==> 2*sin(t-P))"/*(◆修正部分2)*/,
IDEA :"sin([Pi=p2]) ==> 2*sin([Pi=p2]) ==> 2*sin([p2-P=p0]-P))"/*(◆修正部分2)*/,
p2:Pi,p1:p2,p0:p2+P/*関数のxにp0=p2-Pを代入→p0-P=p2を基準関数sin(t)に代入してy方向に2倍した値*//*(◆修正部分2)*/,
pc0L:[cos(p0),sin(p0)],pcx0L:[cos(p0),0],px0L:[p0,0],pt0L:[p0,subst(t=p0,f)] ,px0L:[p0,0]/*(◆修正部分3)*/,
pc1L:[cos(p1),sin(p1)] ,pcx1L:[cos(p1),0], px1L:[p1,0], pt1L:[p1,subst(t=p1,m*sin(n*t))],px1L:[p1,0]/*(◆修正部分3)*/,
pc2L:[cos(p2),sin(p2)],pcx2L:[cos(p2),0],px2L:[p2,0],pt2L:[p2,subst(t=p2,sin(t))] ,px2L:[p2,0]/*(◆修正部分3)*/,
print([m,"*sin(",n,"*([p0=",p0,"]-",P,"))=",m,"*sin(",n,"*([p1=",p1,"]))=",m,"*sin(",p2,")"])/*(◆修正部分3)*/,
ansl:["f(Pi-Pi/3)=2*sin(Pi)だから、sin(Pi)がf(Pi-Pi/3)へくるように、x軸を基準にy軸方向に2倍に伸ばされ、-Pi/3平行移動される","解答"]/*(◆修正部分3)*/,
gr0:explicit(f,t,xm,xM),gr2:explicit(sin(t),t,xm,xM)/*(◆修正部分4)*/,
pc2l:points([poL,pc2L]),pcx2l:points([pc2L,pcx2L]),px2l:points([px2L,px2L]),p2l:points([px2L,pt2L,pt1L])/*(◆修正部分4)*/,
grc:parametric(cos(t),sin(t),t,0,2*Pi),grc0:parametric(cos(t),sin(t),t,0,p0)/*(◆修正部分5)*/,
wxdraw2d(yrange=[ym,yM] /* "(◆修正部分5)" */,
/**/color=black,explicit(0,t,xm,xM),points_joined=true,points(yL)/*ty軸*//*(◆修正部分5)*/,
print([m,"*sin(",n,"*([p0=",p0,"]-",P,"))=",m,"*sin(",n,"*([p1=",p1,"]))=",m,"*sin(",p2,")"])/*(◆修正部分6)*/,
print(ansl)/*(◆修正部分6)*/,
print([p0,p1,p2,pc0L,pc1L,pc2L,pc2L[2],"[弧度(関数p0,p1,基準関数代入時p2),円周上の弧度点(p0,p1,p2),基準関数での関数値]"])/*(◆修正部分6)*/,


◆コマンド番号40206
●補充問題・章末問題
●●●●●●●●●●●●●●●●
kill(all) /**/$
(ordergreat(X,Y,Z,x,z,A,B,C,a,b,c) /* "できるだけ、X,Y,Z,x,y,z,A,B,C,a,b,cの順で"*/,
MONDAI:"・章末問題3 40206 tを第4象限の角として、sint*cost=-1/4のとき、sint-costは"/*(◆修正部分1)*/,
KOUSATU:"値を求める式の平方は、正弦・余弦の平方和=1と条件式により、・・・"/**/
)$
(KANSUU:"",
dis(p1l,p2l):=block([ans],ans:sqrt((p2l-p1l).(p2l-p1l)))/*2点間の距離*/,
tsql(tql):=block([ansl,f,t,s,v,pyl],f:tql[1],t:tql[2],s:tql[3], v:tql[4],pyl:[[0,V2pi]],
/**/if f=sin then (stv:asin(v),if stv>=0 then pyl:[[0,V2pi],[t,"=",stv],[t,"=",%pi-stv]]
/*______________________________*/else pyl:[[0,V2pi],[t,"=",%pi-stv],[t,"=",V2pi+stv]]),
/**/if f=cos then (stv:acos(v),pyl:[[0,V2pi],[t,"=",stv],[t,"=",V2pi-stv]]),
/**/if f=tan then (stv:atan(v),if stv>=0 then pyl:[[0,V2pi],[t,"=",stv],[t,"=",%pi+stv]]
/*______________________________*/else pyl:[[0,V2pi],[t,"=",%pi+stv],[t,"=",V2pi+stv]]),
/**/if pyl[2][3]=0 then pyl:endcons([t,"=",pyl[1][2]],pyl),print(pyl,"基本区間、方程式とみての解"),
/**/ansl:pyl),
lab(nam,p):=label([nam,p[1],p[2]]) /* 図中の文字 */,
tsiql(tiql):=block([ansl,f,t,s,v,tql,pyl],f:tiql[1],t:tiql[2],s:tiql[3], v:tiql[4],tql:[f,t,"=",v],print(tql,"方程式として"),pyl:tsql(tql),
/**/if f=sin and s=">" then (if v>=0 then pyl:[[0,V2pi],[[pyl[2][3],"<",t],[t,"<",pyl[3][3]]]]
/*______________________________*/else pyl:[[0,V2pi],[[0,"<=",t],[t,"<",pyl[2][3]]],[[pyl[3][3],"<",t],[t,"<=",V2pi]]]),
/**/if f=sin and s="<" then (if v>0 then pyl:[[0,V2pi],[[0,"<=",t],[t,"<",pyl[2][3]]],[[pyl[3][3],"<",t],[t,"<=",V2pi]]]
/*______________________________*/else if v=0 then pyl:[[0,V2pi],[[pyl[3][3],"<",t],[t,"<",pyl[4][3]]]]
/*______________________________*/else pyl:[[0,V2pi],[[pyl[2][3],"<",t],[t,"<",pyl[3][3]]]] ),
/**/if f=sin and s=">=" then (if v>0 then pyl:[[0,V2pi],[[pyl[2][3],"<=",t],[t,"<=",pyl[3][3]]]]
/*______________________________*/else if v=0 then pyl:[[0,V2pi],[[0,"<=",t],[t,"<=",pyl[3][3]]],[[t,"=",V2pi]]]
/*______________________________*/else pyl:[[0,V2pi],[[0,"<=",t],[t,"<=",pyl[2][3]]],[[pyl[3][3],"<=",t],[t,"<=",V2pi]]]),
/**/if f=sin and s="<=" then (if v>0 then pyl:[[0,V2pi],[[0,"<=",t],[t,"<=",pyl[2][3]]],[[pyl[3][3],"<=",t],[t,"<=",V2pi]]]
/*______________________________*/else if v=0 then pyl:[[0,V2pi],[[[t,"=",0]],[%pi,"<=",t],[t,"<=",V2pi]]]
/*______________________________*/else pyl:[[0,V2pi],[[pyl[2][3],"<=",t],[t,"<=",pyl[3][3]]]] ),
/**/if f=cos and s=">" then pyl:[[0,V2pi],[[0,"<=",t],[t,"<",pyl[2][3]]],[[pyl[3][3],"<",t],[t,"<=",V2pi]]] ,
/**/if f=cos and s="<" then pyl:[[0,V2pi],[[pyl[2][3],"<",t],[t,"<",pyl[3][3]]]] ,
/**/if f=cos and s=">=" then pyl:[[0,V2pi],[[0,"<=",t],[t,"<=",pyl[2][3]]],[[pyl[3][3],"<=",t],[t,"<=",V2pi]]],
/**/if f=cos and s="<=" then pyl:[[0,V2pi],[[pyl[2][3],"<=",t],[t,"<=",pyl[3][3]]]] ,
/**/if f=tan and s=">" then (if v>=0 then pyl:[[0,V2pi],[[pyl[2][3],"<",t],[t,"<",1/2*%pi]],[[pyl[3][3],"<",t],[t,"<",3/2*%pi]]]
/*______________________________*/else pyl:[[0,V2pi],[[0,"<=",t],[t,"<",1/2*%pi]],[[pyl[2][3],"<",t],[t,"<",3/2*%pi]]
/*_____________________________________*/,[[pyl[3][3],"<",t],[t,"<=",V2pi]]]),
/**/if f=tan and s="<" then (if v>0 then pyl:[[0,V2pi],[[0,"<=",t],[t,"<",pyl[2][3]]],[1/2*%pi,"<",t],[t,"<",pyl[3][3]]
/*_____________________________________*/,[3/2*%pi,"<",t],[t,"<=",V2pi]]
/*______________________________*/else if v=0 then pyl:[[0,V2pi],[[1/2*%pi,"<",t],[t,"<",pyl[3][3]]],[[3/2*%pi,"<",t],[t,"<",pyl[4][3]]]]
/*______________________________*/else pyl:[[0,V2pi],[[1/2*%pi,"<",t],[t,"<",pyl[2][3]]],[[3/2*%pi,"<",t],[t,"<",pyl[3][3]]]]),
/**/if f=tan and s=">=" then (if v>=0 then pyl:[[0,V2pi],[[pyl[2][3],"<=",t],[t,"<",1/2*%pi]],[[pyl[3][3],"<=",t],[t,"<",3/2*%pi]]]
/*______________________________*/else pyl:[[0,V2pi],[[0,"<=",t],[t,"<",1/2*%pi]],[[pyl[2][3],"<=",t],[t,"<",3/2*%pi]]
/*____________________________________*/,[[pyl[3][3],"<=",t],[t,"<=",V2pi]]]),
/**/if f=tan and s="<=" then (if v>=0 then pyl:[[0,V2pi],[[0,"<=",t],[t,"<=",pyl[2][3]]]
/*____________________________________*/,[[1/2*%pi,"<",t],[t,"<=",pyl[3][3]]],[[3/2*%pi,"<",t],[t,"<=",V2pi]]]
/*______________________________*/else pyl:[[0,V2pi],[[1/2*%pi,"<",t],[t,"<=",pyl[2][3]]],[[3/2*%pi,"<",t],[t,"<=",pyl[3][3]]]]),
ansl:pyl/*,print([s,pyl,"koko"])*/)
)$
(TEISUU: " ",
Pi:%pi)$
(TEJUN:"",algebraic:true,print("【正弦・余弦の平方和=1による解法】"),
e:sint-cost, e01:sint^2+cost^2=1,se01:e01-cost^2,e02:sint*cost=-1/4,se02:e02/cost,HANl:[-1/2*Pi< t,t< 0],print([e,e02,"[e,e02,eはe02のとき、その値は]"])/*(◆修正部分2)*/,
e021:1/2*sin2t=-1/4,e022:e021/coeff(lhs(e021),sin2t),v2t:asin(rhs(e022)),v2t2:Pi-v2t,print("tが第4象限の角なら"),
vt:v2t/2,w:%pi,for k:-5 thru 5 do(if ev(subst(t=vt+k*w,HANl[1]))and ev(subst(t=vt+k*w,HANl[2])) then vt0:vt+k*w),print("t=",vt0,"の場合1と"),/**/
vt2:v2t2/2,w:%pi,for k:-5 thru 5 do(if ev(subst(t=vt2+k*w,HANl[1]))and ev(subst(t=vt2+k*w,HANl[2])) then vt20:vt2+k*w),print("t=",vt20,"の場合2がある"),/**/
print("(sint -cost)^2= sint^2 +cost^2 -2*sint*cost", ", LHS=",float(subst([sint=sin(vt0),cost=cos(vt0)],e^2)))/*(◆修正部分3)*/,
print(" = 1 +1/2 ((sint^2 +cost^2= 1, sint*cost= -1/4))"),print(" = 3/2")/*(◆修正部分3)*/,
print("よって"),print("sint -cost= -sqrt(6)/2, sqrt(6)/2")/*(◆修正部分3)*/,
print(HANl,"(tの範囲)から、sint< 0 ,cost>0なので"),print("sint -cost= -sqrt(6)/2 ,",float(-sqrt(6)/2))/*(◆修正部分3)*/,
ansl:["sint-cost=",-sqrt(6)/2]/*(◆修正部分3)*/,
print("実際、"),
ve:subst([sint=sin(vt0),cost=cos(vt0)],e),print(ve,"= ",float(ve)),
ve2:subst([sint=sin(vt20),cost=cos(vt20)],e),print(ve2,"= ",float(ve2))
)$
(BAAI:"場合1",
poL:[0,0],pxIL:[1,0],
pcQL:[cos(2*vt0),sin(2*vt0)],pcTL:[cos(vt0),sin(vt0)],pxJL:[pcTL[1],0],ptRL:[cos(vt0)^2,cos(vt0)*sin(vt0)],pxKL:[ptRL[1],0]/**/,
ptUL:[ptRL[1],pcQL[2]],ptPL:sqrt(2)*[cos(vt0-Pi/4),sin(vt0-Pi/4)] ,ptSL:[pcTL[1],ptPL[2]]/**/,
pxLL:[pxJL[1]-pcTL[2],0],pxML:[pxJL[1]-ptSL[2],0],ptWL:[pxLL[1],pcTL[2]],ptVL:[pxLL[1],ptSL[2]],ptYL:[pxML[1],pcTL[2]],ptXL:[pxML[1],ptSL[2]]/*(◆修正部分4)*/
)$
(KAKUNIN:"図で確認"/**/,
r1:1.2,xm:-r1*5.8/5, xM:r1*5.8/5, ym:xm/8.3*6.7*5/5.8-0.5, yM:xM/8.3*6.7*5/5.8-0.5/**/,
pc1l:points([pcQL,poL,pxIL,pxKL,ptUL,pcQL,ptRL,poL]),pc2l:points([ptRL,pcTL,ptSL,ptPL,pcTL,pxJL,poL,ptPL])/**/,
pc3l:points([ptSL,ptVL,ptXL,pxML,pxJL,pxLL,ptWL,pcTL,ptYL,ptWL,ptVL])/**/,
yL:[[0,ym],[0,yM]]/*y軸*/,
grc:parametric(cos(x),sin(x),x,0,2*Pi)/**/,
labS:lab("S",ptSL+[0.1,0.1]),labT:lab("T",pcTL+[0.1,0.1]),
labJ:lab("J",pxJL+[0,0.15]),labL:lab("L",pxLL+[0,0.15]),labM:lab("M",pxML+[0,0.15]),
labO:lab("O",poL+[-0.1,0.1]),labQ:lab("Q",pcQL+[-0.05,0.1]),labI:lab("I",pxIL+[0.1,0.1]),
labP:lab("P",ptPL+[-0.1,0]),labR:lab("R",ptRL+[-0.05,0.1]),labK:lab("K",pxKL+[0.1,0.1]),
wxdraw2d(title="OKJILM/RTWY/QU/PSVX, aIOT=aTOQ=t, PT=TO=1",xrange=[xm+1,xM+1],yrange=[ym,yM] /**/,
/**/labO,labQ,labI,labR,labK,color=red,labP,
/**/color=cyan,labS,labT,labJ,labL,labM,
/**/color=black,explicit(0,x,xm+1,xM+1),points_joined=true,points(yL)/*xy軸*//**/,
/**/points_joined=true, color=red, point_type=filled_circle, point_size=1,pc2l,line_width=1/*関数f*//**/,
/**/points_joined=true, color=cyan, point_type=filled_circle, point_size=1,pc3l,line_width=1/*関数f*//**/,
/**/points_joined=true, color=blue, point_type=filled_circle, point_size=1,pc1l,line_width=1,grc/*与えられたもの*/
/**/) /* "青が基準関数のグラフ、赤が求めるグラフ" */
)$
(
print("【シアン色の図形による説明】(右方向、上方向の長さを正と考えて)"),
print(["TJ= JL= -sint","ST= LM= cost","SJ= ST +TJ= cost -sint"])/*(◆修正部分5)*/,
print(["SJ^2= TJ^2 +2*TJ*LM +ST^2","LHS=",float(dis(ptSL,pxJL))^2])/*(◆修正部分5)*/,
print([" = sint^2 -2*sint*cost +cost^2=",float(sin(vt0)^2 -2*sin(vt0)*cos(vt0) +cos(vt0)^2)]),print([" = 1 +2/4= 6/4"])/*(◆修正部分5)*/,
print(["JS= sint -cost= -sqrt(6)/2"," ( sint -cost< 0)","LHS=",float(-dis(ptSL,pxJL)),"RHS=",float(-sqrt(6)/2)])/*(◆修正部分5)*/
)$
(print("【二倍角公式、正弦・余弦の合成による解法】"),
print("sint*cost=sin(2*t)/2=-1/4 により")/*(◆修正部分6)*/,
print("sin(2*t)=-1/2, 2*t =aIOQ =-pi/6, t= aIOT= aTOQ= -pi/12")/*(◆修正部分6)*/,
print("sint-cost =sqrt(2)*sin(t-pi/4) =sqrt(2)*sin(-pi/3)","LHS=",float(sin(vt0) -cos(vt0)),"RHS=",float(sqrt(2)*sin(-Pi/3)) )/*(◆修正部分6)*/,
print(" =-sqrt(6)/2","RHS=",float(-sqrt(6)/2))/*(◆修正部分6)*/
)$
(BAAI:"場合2",
poL:[0,0],pxIL:[1,0],
pcQL:[cos(2*vt20),sin(2*vt20)],pcTL:[cos(vt20),sin(vt20)],pxJL:[pcTL[1],0],ptRL:[cos(vt20)^2,cos(vt20)*sin(vt20)],pxKL:[ptRL[1],0]/**/,
ptUL:[ptRL[1],pcQL[2]],ptPL:sqrt(2)*[cos(vt20-Pi/4),sin(vt20-Pi/4)] ,ptSL:[pcTL[1],ptPL[2]]/**/,
pxLL:[pxJL[1]-pcTL[2],0],pxML:[pxJL[1]-ptSL[2],0],ptWL:[pxLL[1],pcTL[2]],ptVL:[pxLL[1],ptSL[2]],ptYL:[pxML[1],pcTL[2]],ptXL:[pxML[1],ptSL[2]]/*(◆修正部分7)*/
)$
(KAKUNIN:"図で確認"/**/,
r1:1.2,xm:-r1*5.8/5, xM:r1*5.8/5, ym:xm/8.3*6.7*5/5.8-0.5, yM:xM/8.3*6.7*5/5.8-0.5/**/,
pc1l:points([pcQL,poL,pxIL,pxKL,ptUL,pcQL,ptRL,poL]),pc2l:points([ptRL,pcTL,ptSL,ptPL,pcTL,pxJL,poL,ptPL])/**/,
pc3l:points([ptSL,ptVL,ptXL,pxML,pxJL,pxLL,ptWL,pcTL,ptYL,ptWL,ptVL])/**/,
yL:[[0,ym],[0,yM]]/*y軸*/,
grc:parametric(cos(x),sin(x),x,0,2*Pi)/**/,
xD:0.3/*x軸方向移動*/,
labS:lab("S",ptSL+[0.1,0.1]),labT:lab("T",pcTL+[0.1,0.1]),
labJ:lab("J",pxJL+[0,0.15]),labL:lab("L",pxLL+[0,0.15]),labM:lab("M",pxML+[0,0.15]),
labO:lab("O",poL+[-0.1,0.1]),labQ:lab("Q",pcQL+[0,0.1]),labI:lab("I",pxIL+[0.1,0.1]),
labP:lab("P",ptPL+[-0.1,0]),labR:lab("R",ptRL+[0.05,0.1]),labK:lab("K",pxKL+[0,0.1]),
wxdraw2d(title="OKJILM/RTWY/QU/PSVX, aIOT=aTOQ=t, PT=TO=1",xrange=[xm+xD,xM+xD],yrange=[ym,yM] /* "" */,
/**/labO,labQ,labI,labR,labK,color=red,labP,
/**/color=cyan,labS,labT,labJ,labL,labM,
/**/color=black,explicit(0,x,xm+xD,xM+xD),points_joined=true,points(yL)/*xy軸*//**/,
/**/points_joined=true, color=red, point_type=filled_circle, point_size=1,pc2l,line_width=1/*関数f*//**/,
/**/points_joined=true, color=cyan, point_type=filled_circle, point_size=1,pc3l,line_width=1/*関数f*//**/,
/**/points_joined=true, color=blue, point_type=filled_circle, point_size=1,pc1l,line_width=1,grc/*与えられたもの*/
/**/) /* "青が基準関数のグラフ、赤が求めるグラフ" */
)$
(
print("【シアン色の図形による説明】(右方向、上方向の長さを正と考えて)"),
print(["TJ= JL= -sint","ST= LM= cost","SJ= ST +TJ= cost -sint"])/*(◆修正部分8)*/,
print(["SJ^2= TJ^2 +2*TJ*LM +ST^2","LHS=",float(dis(ptSL,pxJL))^2])/*(◆修正部分8)*/,
print([" = sint^2 -2*sint*cost +cost^2=",float(sin(vt20)^2 -2*sin(vt20)*cos(vt20) +cos(vt20)^2)]),print([" = 1 +2/4= 6/4"])/*(◆修正部分8)*/,
print(["JS= sint -cost= -sqrt(6)/2"," ( sint -cost< 0)","LHS=",float(-dis(ptSL,pxJL)),"RHS=",float(-sqrt(6)/2)])/*(◆修正部分8)*/
)$
(print("【二倍角公式、正弦・余弦の合成による解法】"),
print("sint*cost=sin(2*t)/2=-1/4 により")/*(◆修正部分9)*/,
print("sin(2*t)=-1/2, 2*t =aIOQ =-5*pi/6, t= aIOT= aTOQ= -5*pi/12")/*(◆修正部分9)*/,
print("sint-cost =sqrt(2)*sin(t-pi/4) =sqrt(2)*sin(-2*pi/3)","LHS=",float(sin(vt20) -cos(vt20)),"RHS=",float(sqrt(2)*sin(-2*Pi/3)) )/*(◆修正部分9)*/,
print(" =-sqrt(6)/2","RHS=",float(-sqrt(6)/2))/*(◆修正部分9)*/
)$
(KAITOU:ansl/*解答*//**/,
SUJIMITI:"正弦・余弦の平方和=1と条件式により、値を求める式の平方を計算すると(   )となり、・・・"/**/,
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)")$

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

◎上のMaximaコマンドを実行せよ。
◎上のMaximaコマンドを、以下のように修正して実行し、結果を比較して考察せよ。
MONDAI:"・章末問題3 40206 tを第4象限の角として、sint*cost=-1/4のとき、sint^2-cost^2は"/*(◆修正部分1)*/,
e:sint^2-cost^2, e01:sint^2+cost^2=1,se01:e01-cost^2,e02:sint*cost=-1/4,se02:e02/cost,HANl:[-1/2*Pi< t,t< 0],print([e,e02,"[e,e02,eはe02のとき、その値は]"])/*(◆修正部分2)*/,
print("(sint^2 -cost^2)^2= (sint^2 +cost^2)^2 -4*sint^2*cost^2", ", LHS=",float(subst([sint=sin(vt0),cost=cos(vt0)],e^2)))/*(◆修正部分3)*/,
print(" = 1 -1/4 ((sint^2 +cost^2= 1, sint*cost= -1/4))"),print(" = 3/4")/*(◆修正部分3)*/,
print("よって"),print("sint^2 -cost^2= -sqrt(3)/2, sqrt(3)/2")/*(◆修正部分3)*/,
print(HANl,"(tの範囲)から、sint^2< cost^2 ,sint^2> cost^2 ともあり得るので"),print("sint^2 -cost^2= -sqrt(3)/2 , sqrt(3)/2",float(-sqrt(3)/2),float(sqrt(3)/2))/*(◆修正部分3)*/,
ansl:["sint^2-cost^2=","-sqrt(3)/2,sqrt(3)/2",float(-sqrt(3)/2),float(sqrt(3)/2)]/*(◆修正部分3)*/,
pxLL:[pxJL[1]-pcTL[2],0],pxML:[pxJL[1]-ptSL[2]+pcTL[2],0],ptWL:[pxLL[1],pcTL[2]],ptVL:[pxLL[1],ptSL[2]],ptYL:[pxML[1],pcTL[2]],ptXL:[pxML[1],ptSL[2]]/*(◆修正部分4)*/
print(["TJ= JL= -sint","ST= JM= cost","LM= JM -JL= cost +sint"])/*(◆修正部分5)*/,
print(["LM^2= JM^2 -2*JM*JL +JL^2","LHS=",float((pxML[1]-pxLL[1])^2)])/*(◆修正部分5)*/,
print([" = cost^2 +2*cost*sint +sint^2","RHS=",float(cos(vt0)^2 +2*cos(vt0)*sin(vt0) +sin(vt0)^2)]),print([" = 1 -2/4= 2/4"])/*(◆修正部分5)*/,
print(["LM= sint +cost= sqrt(2)/2"," ( sint +cost> 0)","LHS=",float(dis(pxLL,pxML)),"RHS=",float(sqrt(2)/2)])/*(◆修正部分5)*/,
print(["JS*LM=(sint -cost)*(sint +cost)= -sqrt(3)/2"," ( sint -cost< 0, sint +cost> 0)","LHS=",float((ptSL[2]-pxJL[2])*(pxML[1]-pxLL[1])),"RHS=",float(-sqrt(3)/2)])/*(◆修正部分5)*/
print("sint*cost=sin(2*t)/2=-1/4 により")/*(◆修正部分6)*/,
print("sin(2*t)=-1/2, 2*t =aIOQ =-pi/6, t= aIOT= aTOQ= -pi/12")/*(◆修正部分6)*/,
print("sint^2 -cost^2= -cos2t= -cos(-Pi/6)","LHS=",float(sin(vt0)^2 -cos(vt0)^2),"RHS=",float(-cos(-Pi/6)))/*(◆修正部分6)*/,
print(" =-sqrt(3)/2","RHS=",float(-sqrt(3)/2))/*(◆修正部分6)*/
pxLL:[pxJL[1]-pcTL[2],0],pxML:[pxJL[1]-ptSL[2]+pcTL[2],0],ptWL:[pxLL[1],pcTL[2]],ptVL:[pxLL[1],ptSL[2]],ptYL:[pxML[1],pcTL[2]],ptXL:[pxML[1],ptSL[2]]/*(◆修正部分7)*/
print(["TJ= JL= -sint","ST= JM= cost","LM= JM -JL= cost +sint"])/*(◆修正部分8)*/,
print(["LM^2= JM^2 -2*JM*JL +JL^2","LHS=",float((pxML[1]-pxLL[1])^2)])/*(◆修正部分8)*/,
print([" = cost^2 +2*cost*sint +sin^2=",float(cos(vt20)^2 +2*cos(vt20)*sin(vt20) +sin(vt20)^2)]),print([" = 1 -2/4= 2/4"])/*(◆修正部分8)*/,
print(["LM= sint +cost= -sqrt(2)/2"," ( sint +cost< 0)","LHS=",float(pxML[1]-pxLL[1]),"RHS=",float(-sqrt(2)/2)])/*(◆修正部分8)*/,
print(["JS*LM=(sint -cost)*(sint +cost)= sqrt(3)/2"," ( sint -cost< 0, sint +cost< 0)","LHS=",float((ptSL[2]-pxJL[2])*(pxML[1]-pxLL[1])),"RHS=",float(sqrt(3)/2)])/*(◆修正部分8)*/
print("sint*cost=sin(2*t)/2=-1/4 により")/*(◆修正部分9)*/,
print("sin(2*t)=-1/2, 2*t =aIOQ =-5*pi/6, t= aIOT= aTOQ= -5*pi/12")/*(◆修正部分9)*/,
print("sint^2-cost^2= -cos2t= -cos(-5*Pi/6)","LHS=",float(sin(vt20)^2 -cos(vt20)^2),"RHS=",float(-cos(-5*Pi/6)))/*(◆修正部分9)*/,
print(" =sqrt(3)/2","RHS=",float(sqrt(3)/2))/*(◆修正部分9)*/


◆コマンド番号40207
●補充問題・章末問題
●●●●●●●●●●●●●●●●
kill(all) /**/$
(MONDAI:"・章末問題4 40207 sin(3*a)=3*sin(a)-4*sin(a)^3を示せ。"/*(◆修正部分1)*/,
KOUSATU:"3*a=a+2*aだから、・・・"/**/
)$
(KANSUU:"",
gr(T,c,l,pP,pK,lab,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を青で打って、青線で結んで" */,
/*....*/color=red,lab[2][1],lab[2][2],lab[2][3],lab[2][4],lab[2][5],lab[2][6],lab[2][7],lab[2][8],lab[2][9],lab[2][10],
/*....*/lab[2][11],lab[2][12],lab[2][13],lab[2][14],lab[2][15],lab[2][16],lab[2][17],lab[2][18],lab[2][19])
),
lab(nam,p):=label([nam,p[1],p[2]]) /* 図中の文字 */,
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))))
)$
(TEISUU:"",
Pi:%pi,
deg:25/180*Pi/**/
)$
(TEJUN: "1 解析的",
ev11:["LHS=sin(2*a+a)=sin(2*a)*cos(a)+cos(2*a)*sin(a)","(加法定理)",float(sin(3*deg)),float(sin(2*deg)*cos(deg)+cos(2*deg)*sin(deg))],print(ev11)/*(◆修正部分2)*/,
ev12:[" =2*sin(a)*cos(a)^2+(cos(a)^2-sin(a)^2)*sin(a)",float(2*sin(deg)*cos(deg)^2+(1-2*sin(deg)^2)*sin(deg)),"(二倍角公式)"],print(ev12)/*(◆修正部分2)*/,
ev13:[" =2*sin(a)*(1-sin(a)^2)+(1-2*sin(a)^2)*sin(a)",float(2*sin(deg)*(1-sin(deg)^2)+(1-2*sin(deg)^2)*sin(deg)),"(正弦・余弦平方和)"],print(ev13)/*(◆修正部分2)*/,
ev14:[" =3*sin(a)-4*sin(a)^3",float(3*sin(deg)-4*sin(deg)^3),"=RHS"],print(ev14)/*(◆修正部分2)*/,
ansl:["sin(3*a)=3*sin(a)-4*sin(a)^3","結論",float(sin(3*deg)),float(3*sin(deg)-4*sin(deg)^3)],print(ansl)/*(◆修正部分2)*/
)$
(TEJUN:"グラフ準備",
poL:[0,0], pIL:[1,0], pCL:[cos(deg),sin(deg)],pDL:[cos(2*deg),sin(2*deg)],pEL:[cos(3*deg),sin(3*deg)]/**/,
pGL:cos(deg)*pDL, pHL:cos(deg)^2*pCL,pQL:cos(deg)^3*pIL, pJL:[pEL[1],0], pKL:[pGL[1],0], pRL:[pCL[1],0]/**/,
pFL:pHL+(pHL-pCL), pAL:pEL+pCL-pFL, pLL:(pAL+pEL)/2, pNL:[pFL[1],pHL[2]], pPL:[pFL[1],pCL[2]]/**/,
pBL:pAL-2*(pNL-pFL),pML:(pAL+pBL)/2, pSL:[pCL[1],pHL[2]] /**/,
labO:lab("O",poL+[0.1,-0.1]), labJ:lab("J",pJL+[0.1,-0.1]), labK:lab("K",pKL+[-0.05,-0.1]),labP:lab("P",pPL+[-1/40,1/20]),
labR:lab("R",pRL+[-0.05,-0.1]), labI:lab("I",pIL+[0.1,-0.1]), labC:lab("C",pCL+[0.1,0]), labD:lab("D",pDL+[0.1,1/60]),
labE:lab("E",pEL+[-1/40.1,0.1]),labA:lab("A",pAL+[-1/40,0.1]),labB:lab("B",pBL+[0.1,-1/60]), labM:lab("M",pML+[0.1,0]),
labQ:lab("Q",pQL+[-1/20,-1/10]), labG:lab("G",pGL+[-0.1,0]), labN:lab("N",pNL+[-2/30,-1/40]),labF:lab("F",pFL+[-1/20,-1/10]),
labH:lab("H",pHL+[-1/20,-0.1]), labU:lab("U",pUL+[0.1,-0.05]),labS:lab("S",pSL+[0.1,0]), labT:lab("T",pTL+[0.1,0]),
labL:lab("L",pLL+[-1/40,0.1])
)$
(kakunin:"グラフを書いて、視覚的に確認",
r:1,c:x^2+y^2=r^2,
T:"" /**/,
lab:[19,[labO,labJ,labK,labQ,labR,labI,labC,labD,labE,labA,labP,labM,labB,labG,labN,labF,labH,labS,labL]],
pK:[[pML,pLL,pGL,pAL,pEL,pBL],[pNL,pSL,pCL,pPL]]/**/,
pP:[pIL,poL,pCL,pRL,pGL,pDL,poL,pEL,pJL,pEL,pCL,pGL,pKL,pFL,pEL,pGL,pHL,pQL],
yL:r/2*3,xL:yL/6.1*7.5,
gr(T,c,x=0,pP,pK,lab,-0.5,xL-0.5,-0.15,yL-0.15) /* "グラフ出力すると" */
)$
(TEJUN: "2 図形的",
KATEI:["IO=1、∠EFO=∠EGO=∠GHO=直角、OC//EA、∠IOC=∠COD=∠DOE=a","...仮定"],print(KATEI)/**/,
ev21:["LHS=sin(3*a)=JE=KF+FB",float(dis(pJL,pEL)),float(dis(pKL,pFL)+dis(pFL,pBL))],print(ev21)/*(◆修正部分3)*/,
ev22:[" {RC=CG=GF=GE=GA=sin(a)",float(dis(pRL,pCL)),float(dis(pGL,pAL)),"(△ORC≡△OCGなど)"],print(ev22)/*(◆修正部分3)*/,
ev23:[" CH=sin(a)^2",float(dis(pCL,pHL)),float(sin(deg)^2)],print(ev23)/*(◆修正部分3)*/,
ev24:[" CS=sin(a)^3",float(dis(pCL,pSL)),float(sin(deg)^3)],print(ev24)/*(◆修正部分3)*/,
ev25:[" KF=RC-2*CS=sin(a)-2*sin(a)^3",float(dis(pKL,pFL)),float(dis(pRL,pCL)-2*dis(pCL,pSL)),float(sin(deg)-2*sin(deg)^3)],print(ev25)/*(◆修正部分3)*/,
ev26:[" CS=NF=AM=MB",float(dis(pCL,pSL)),float(dis(pML,pBL))],print(ev26)/*(◆修正部分3)*/,
ev27:[" FB=FA-2*AM=2*sin(a)-2*sin(a)^3} ",float(dis(pFL,pBL)),float(dis(pFL,pAL)-2*dis(pAL,pML)),float(2*sin(deg)-2*sin(deg)^3)],print(ev27)/*(◆修正部分3)*/,
ev28:[" =3*sin(a)-4*sin(a)^3",float(3*sin(deg)-4*sin(deg)^3),"=RHS"],print(ev28)/*(◆修正部分3)*/,
ansl2:["sin(3*a)=3*sin(a)-4*sin(a)^3","結論",float(sin(3*deg)),float(3*sin(deg)-4*sin(deg)^3)],print(ansl2)/*(◆修正部分3)*/
)$
(KAITOU:ansl/*解答*//**/,
SUJIMITI:"加法定理により、sin(3*a)=(     )・・・"/*(◆修正部分4)*/,
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)")$

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

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
(MONDAI:"・章末問題4 40207 cos(3*a)=4cos(a)^3-3*cos(a)を示せ。"/*(◆修正部分1)*/,
ev11:["LHS=cos(2*a+a)=cos(2*a)*cos(a)-sin(2*a)*sin(a)","(加法定理)",float(cos(3*deg)),float(cos(2*deg)*cos(deg)-sin(2*deg)*sin(deg))],print(ev11)/*(◆修正部分2)*/,
ev12:[" =(cos(a)^2-sin(a)^2)*cos(a)-2*sin(a)*cos(a)*sin(a)",float((cos(deg)^2-sin(deg)^2)*cos(deg)-2*sin(deg)*cos(deg)*sin(deg)),"(二倍角公式)"],print(ev12)/*(◆修正部分2)*/,
ev13:[" =(2*cos(a)^2-1)*cos(a)-2*(1-sin(a)^2)*cos(a)",float((2*cos(deg)^2-1)*cos(deg)-2*(1-cos(deg)^2)*cos(deg)),"(正弦・余弦平方和)"],print(ev13)/*(◆修正部分2)*/,
ev14:[" =4*cos(a)^3-3*cos(a)",float(4*cos(deg)^3-3*cos(deg)),"=RHS"],print(ev14)/*(◆修正部分2)*/,
ansl:["cos(3*a)=4*cos(a)^3-3*cos(a)","結論",float(cos(3*deg)),float(4*cos(deg)^3-3*cos(deg))],print(ansl)/*(◆修正部分2)*/
ev21:["LHS=cos(3*a)=OJ=OR-JR",float(dis(poL,pJL)),float(dis(poL,pRL)-dis(pJL,pRL))],print(ev21)/*(◆修正部分3)*/,
ev22:[" {OR=cos(a)",float(dis(poL,pRL)),float(cos(deg)),"(△ORC≡△OCGなど)"],print(ev22)/*(◆修正部分3)*/,
ev24:[" OH=cos(a)^2",float(dis(poL,pHL)),float(cos(deg)^2)],print(ev24)/*(◆修正部分3)*/,
ev25:[" OQ=cos(a)^3",float(dis(poL,pQL)),float(cos(deg)^3)],print(ev25)/*(◆修正部分3)*/,
ev26:[" QR=OR-OQ=cos(a)-cos(a)^3",float(dis(pQL,pRL)),float(cos(deg)-cos(deg)^3)],print(ev26)/*(◆修正部分3)*/,
ev27:[" JR=4*VR=4*cos(a)-4*cos(a)^3} ",float(dis(pJL,pRL)),float(4*cos(deg)-4*cos(deg)^3)],print(ev27)/*(◆修正部分3)*/,
ev28:[" =cos(a)-(4*cos(a)-4*cos(a)^3)=4*cos(a)^3-3*cos(a)",float(4*cos(deg)^3-3*cos(deg)),"=RHS"],print(ev28)/*(◆修正部分3)*/,
ansl2:["cos(3*a)=4*cos(a)^3-3*cos(a)","結論",float(cos(3*deg)),float(4*cos(deg)^3-3*cos(deg))],print(ansl2)/*(◆修正部分3)*/
SUJIMITI:"加法定理により、cos(3*a)=(     )・・・"/*(◆修正部分4)*/,


◆コマンド番号40208
●補充問題・章末問題
●●●●●●●●●●●●●●●●
kill(all) /**/$
(MONDAI:"・章末問題5 40208 1/(1+cos(t)) +1/(1-cos(t)) = 2/sin(t)^2 を示せ。"/*(◆修正部分1)*/,
KOUSATU:"左辺を通分すると、・・・"/**/
)$
(KANSUU:"",
gr(T,c,l,pP,pK,lab,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を青で打って、青線で結んで" */,
/*....*/color=red,lab[2][1],lab[2][2],lab[2][3],lab[2][4],lab[2][5],lab[2][6],lab[2][7],lab[2][8],lab[2][9],lab[2][10],
/*....*/lab[2][11],lab[2][12],lab[2][13],lab[2][14],lab[2][15],lab[2][16],lab[2][17],lab[2][18],lab[2][19])
),
lab(nam,p):=label([nam,p[1],p[2]]) /* 図中の文字 */,
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))))
)$
(TEISUU:"",
Pi:%pi,
deg:25/180*Pi/**/
)$
(TEJUN: "1 解析的",
Lhs(t):=1/(1+cos(t)) +1/(1-cos(t)),Rhs(t):=2/sin(t)^2/*(◆修正部分2)*/,
ev11:["LHS=1/(1+cos(t)) +1/(1-cos(t))=(1-cos(t) +1+cos(t))/((1+cos(t))*(1-cos(t)))","(通分)",float(Lhs(deg)),float(subst(t=deg,(1-cos(t) +1+cos(t))/((1+cos(t))*(1-cos(t)))))],print(ev11)/*(◆修正部分2)*/,
ev12:[" =2/(1-cos(t)^2)","(分母・分子各簡約化)",float(subst(t=deg,2/(1-cos(t)^2)))],print(ev12)/*(◆修正部分2)*/,
ev13:[" =2/sin(t)^2 = RHS)","(正・余弦2乗和=1による)",float(Rhs(reg))],print(ev13)/*(◆修正部分2)*/,
ansl:["1/(1+cos(t)) +1/(1-cos(t)) = 2/sin(t)^2","結論",float(Lhs(deg)),float(Rhs(deg))],print(ansl)/*(◆修正部分2)*/,
print("QED"));
(kakuninn:"グラフでチェック",
xS:-5,xL:5,yS:-10,yL:10 /* "グラフ描画範囲(◆修正時変更)" */,
totu:"RED LINE = blue line",
wxdraw2d(title =totu, /**/yrange=[yS,yL] /* "()" */,
/**/color=red,
/**/line_width =3,explicit(Lhs(x),x,xS,xL) /* "()" */,
/**/color=blue,point_type =6,
/**/line_width =1,explicit(Rhs(x),x,xS,xL)/* "太赤が左辺のグラフで、細青が右辺" */,
/**/color=black,line_width =1,
/**/implicit(y=0,x,xS,xL,y,yS,yL) /* "(x軸)" */,
/**/implicit(x=0,x,xS,xL,y,yS,yL)) /* "(y軸)" */,
print("DGC"));

(KAITOU:ansl/*解答*//**/,
SUJIMITI:"通分すると、1/(1+cos(t)) +1/(1-cos(t)) =(     )・・・"/*(◆修正部分3)*/,
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)")$

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

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
(MONDAI:"・章末問題5 40208 1/tan(t) -tan(t) = 2*cos(2*t)/sin(2*t) を示せ。"/*(◆修正部分1)*/,
KOUSATU:"左辺を正弦・余弦で表現すると、・・・"/*(◆修正部分1)*/
Lhs(t):=1/tan(t) -tan(t),Rhs(t):=2*cos(2*t)/sin(2*t)/*(◆修正部分2)*/,
ev11:["LHS=cos(t)/sin(t) -sin(t)/cos(t)=(cos(t)^2 -sin(t)^2)/(cos(t)*sin(t))","(通分)",float(Lhs(deg)),float(subst(t=deg,(cos(t)^2-sin(t)^2)/(cos(t)*sin(t))))],print(ev11)/*(◆修正部分2)*/,
ev12:[" =cos(2*t)/(sin(2*t)/2)","(2倍角公式)",float(subst(t=deg,cos(2*t)/(sin(2*t)/2)))],print(ev12)/*(◆修正部分2)*/,
ev13:[" =2*cos(2*t)/(sin(2*t) = RHS)","(正弦・余弦2乗和=1による)",float(Rhs(deg))],print(ev13)/*(◆修正部分2)*/,
SUJIMITI:"左辺を正弦・余弦で表現すると、cos(t)/sin(t) -sin(t)/cos(t) =(     )・・・"/*(◆修正部分3)*/,


◆コマンド番号40209
●補充問題・章末問題
●●●●●●●●●●●●●●●●
kill(all) /**/$
(MONDAI:"・章末問題6 40209 2*cos(x)^2 -sin(x) -1 = 0 を、0<=x,x< 2*%piで解け。"/*(◆修正部分1)*/,
KOUSATU:"左辺を正弦だけで表現すると、・・・"/*(◆修正部分1)*/
)$
(KANSUU:"",
gr(T,c,l,pP,pK,lab,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を青で打って、青線で結んで" */,
/*....*/color=red,lab[2][1],lab[2][2],lab[2][3],lab[2][4],lab[2][5],lab[2][6],lab[2][7],lab[2][8],lab[2][9],lab[2][10],
/*....*/lab[2][11],lab[2][12],lab[2][13],lab[2][14],lab[2][15],lab[2][16],lab[2][17],lab[2][18],lab[2][19])
),
lab(nam,p):=label([nam,p[1],p[2]]) /* 図中の文字 */,
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))))
)$
(TEISUU:"",
Pi:%pi,
deg:25/180*Pi/**/
)$
(TEJUN: "1 解析的",
Lhs(x):=2*cos(x)^2 -sin(x) -1 ,Rhs(x):=0/*(◆修正部分2)*/,
ev11:["2*cos(x)^2 -sin(x) -1=2*(1-sin(x)^2) -sin(x) -1","(正弦余弦平方和=1)",float(Lhs(deg)),float(subst(x=deg,2*(1-sin(x)^2) -sin(x) -1))],print(ev11)/*(◆修正部分2)*/,
ev12:[" =2*(1-X^2) -X -1","(sin(x)=Xへ)",float(subst(X=sin(deg),2*(1-X^2) -X -1))],print(ev12)/*(◆修正部分2)*/,
ev13:["-2*X^2 -X +1 =0","(Xの方程式に)",float(subst(X=sin(deg),-2*X^2 -X +1))],print(ev13)/*(◆修正部分2)*/,
ev14:["-(2*X-1)*(X+1) =0","(因数分解して)",float(subst(X=sin(deg),-(2*X-1)*(X+1)))],print(ev14)/*(◆修正部分2)*/,
ev15:["X=1/2, X=-1","(Xで解いて)",float(subst(X=1/2,-(2*X-1)*(X+1))),float(subst(X=-1,-(2*X-1)*(X+1)))],print(ev15)/*(◆修正部分2)*/,
ev16:["sin(x)=1/2, sin(x)=-1","(xに戻して)",float(subst(sin(x)=1/2,-(2*sin(x)-1)*(sin(x)+1))),float(subst(sin(x)=-1,-(2*sin(x)-1)*(sin(x)+1)))],print(ev16)/*(◆修正部分2)*/,
ev17:["x=%pi/6, x=5*%pi/6, x=3*%pi/2","(xで解いて)",float(Lhs(%pi/6)),float(Lhs(5*%pi/6)),float(Lhs(3*%pi/2))],print(ev17)/*(◆修正部分2)*/,
ansl:[ev17[1],"解"],print(ansl)/**/,
print("QED"));
(kakuninn:"グラフでチェック",
xS:0,xL:2*%pi,yS:-3,yL:3 /* "グラフ描画範囲(◆修正時変更)" */,
totu:"RED LINE = blue line",
wxdraw2d(title =totu, /**/yrange=[yS,yL] /* "()" */,
/**/color=red,
/**/line_width =3,explicit(Lhs(x),x,xS,xL) /* "()" */,
/**/color=blue,point_type =6,
/**/line_width =1,explicit(Rhs(x),x,xS,xL)/* "太赤が左辺のグラフで、細青が右辺" */,
/**/color=blue,point_type =1,
/**/points_joined =false,point_size =2,points([[%pi/3,0],[%pi*2/3,0],[%pi*3/3,0],[%pi*4/3,0],[%pi*5/3,0],[%pi*6/3,0]]) /* "目盛り%pi/3" */,
/**/points_joined =false,point_size =1,points([[%pi/6,0],[%pi*3/6,0],[%pi*5/6,0],[%pi*7/6,0],[%pi*9/6,0],[%pi*11/6,0]]) /* "目盛り%pi/6" */,
/**/color=black,line_width =1,
/**/implicit(y=0,x,xS,xL,y,yS,yL) /* "(x軸)" */,
/**/implicit(x=0,x,xS,xL,y,yS,yL)) /* "(y軸)" */,
print("DGC"));

(KAITOU:ansl/*解答*//**/,
SUJIMITI:"左辺を正弦だけで表現すると、(     )・・・"/*(◆修正部分3)*/,
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)")$

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

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
(MONDAI:"・章末問題6 40209 cos(2*x) = cos(x) を、0<=x,x<=2*%piで解け。"/*(◆修正部分1)*/,
KOUSATU:"左辺を余弦だけで表現すると、・・・"/*(◆修正部分1)*/
Lhs(x):=cos(2*x), Rhs(x):=cos(x) /*(◆修正部分2)*/,
ev11:["cos(2*x) = 2*cos(x)^2 -1","(2倍角公式)",float(Lhs(deg)),float(subst(x=deg, 2*cos(x)^2 -1))],print(ev11)/*(◆修正部分2)*/,
ev12:[" = 2*X^2 -1","(cos(x)=Xへ)",float(subst(X=cos(deg), 2*X^2 -1))],print(ev12)/*(◆修正部分2)*/,
ev13:["2*X^2 -1 -X = 0","(Xの方程式に)",float(subst(X=cos(deg),[2*X^2 -1,"-",X,"=",2*X^2 -1 -X]))],print(ev13)/*(◆修正部分2)*/,
ev14:["(2*X+1)*(X-1) =0","(因数分解して)",float(subst(X=cos(deg),(2*X+1)*(X-1)))],print(ev14)/*(◆修正部分2)*/,
ev15:["X=-1/2, X=1","(Xで解いて)",float(subst(X=-1/2,(2*X+1)*(X-1))),float(subst(X=1,(2*X+1)*(X-1)))],print(ev15)/*(◆修正部分2)*/,
ev16:["cos(x)=-1/2, cos(x)=1","(xに戻して)",float(subst(cos(x)=-1/2,(2*cos(x)+1)*(cos(x)-1))),float(subst(cos(x)=1,(2*cos(x)+1)*(cos(x)-1)))],print(ev16)/*(◆修正部分2)*/,
ev17:["x=%pi*2/3, x=%pi*4/3, x=0","(xで解いて)",float(Lhs(%pi*2/3)=Rhs(%pi*2/3)),float(Lhs(%pi*4/3)=Rhs(%pi*4/3)),float(Lhs(0)=Rhs(0))],print(ev17)/*(◆修正部分2)*/,
SUJIMITI:"左辺を余弦だけで表現すると、(     )・・・"/*(◆修正部分3)*/,


◆コマンド番号40210
●補充問題・章末問題
●●●●●●●●●●●●●●●●
kill(all) /**/$
(MONDAI:"・章末問題7 40210 加法定理を用いて、sin(%pi-t) = sin(t) を示せ。"/*(◆修正部分1)*/,
KOUSATU:"左辺を加法定理で展開すると、・・・"/*(◆修正部分1)*/)$
(KANSUU:"",
gr(T,c,l,pP,pK,lab,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を青で打って、青線で結んで" */,
/*....*/color=red,lab[2][1],lab[2][2],lab[2][3],lab[2][4],lab[2][5],lab[2][6],lab[2][7],lab[2][8],lab[2][9]/* グラフ出力すると (◆修正部分2) */,
/*....*/color=black)),
lab(nam,p):=label([nam,p[1],p[2]]) /* 図中の文字 */,
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))))
)$
(TEISUU:"",
Pi:%pi,
deg:25/180*Pi/**/
)$
(TEJUN: "1 解析的",
Lhs(t):=sin(%pi-t), Rhs(t):=sin(t) /*(◆修正部分3)*/,
ev11:["LHS = sin(%pi-t) = sin(%pi)*cos(t) -cos(%pi)*sin(t)","(加法定理)",float(Lhs(deg)),float(subst(t=deg, sin(%pi)*cos(t)-cos(%pi)*sin(t)))],print(ev11)/*(◆修正部分3)*/,
ev12:[" = 0 -(-1)*sin(t)","(%piの正弦余弦を計算して)",float(subst(t=deg, 0 -(-1)*sin(t)))],print(ev12)/*(◆修正部分3)*/,
ev13:[" = sin(t) = RHS","(簡約して)",float(subst(t=deg,sin(t)))],print(ev13)/*(◆修正部分3)*/,
ev17:["sin(%pi-t) = sin(t)",float(Lhs(deg)=Rhs(deg))],print(ev17)/*(◆修正部分3)*/,
ansl:[ev17[1],"結論"],print(ansl)/**/,
print("QED"))$

(TEJUN:"グラフ準備",
poL:[0,0], pIL:[1,0], pJL:[0,1],pPL:[cos(%pi-deg),sin(%pi-deg)],pQL:[cos(deg),sin(deg)]/**//*(◆修正部分4)*/,
pIpL:[pPL[1],0],pIqL:[pQL[1],0],pJpL:[0,pPL[2]],pJqL:[0,pQL[2]]/*(◆修正部分4)*/,
labO:lab("O",poL+[-0.1,-0.15]), labI:lab("I",pIL+[0.1,-0.15]), labJ:lab("J",pJL+[-0.1,0.1]), labP:lab("P",pPL+[-0.1,0.1]),labQ:lab("Q",pQL+[0.1,0.1])/*(◆修正部分4)*/,
labIp:lab("Ip",pIpL+[0.1,-0.15]), labIq:lab("Iq",pIqL+[-0.1,-0.15]), labJp:lab("Jp",pJpL+[-0.1,0.15]), labJq:lab("Jq",pJqL+[0.2,0.15])/*(◆修正部分4)*/,
print("GJEnd"))$

(kakunin:"グラフを書いて、視覚的に確認",
r:1,c:x^2+y^2=r^2,
T:"" /**/,
lab:[9,[labO,labI,labJ,labP,labIp,labJp,labQ,labIq,labJq]],print(lab) /* グラフ出力すると (◆修正部分5) */,
pK:[[pPL,poL,pIpL,pPL,pJpL],[pQL,poL,pIqL,pQL,pJqL]]/**/,print(pK) /* グラフ出力すると (◆修正部分5) */,
pP:[pIL,poL,pJL],print(pP) /* グラフ出力すると (◆修正部分5) */,
yL:r/2*3,xL:yL/6.1*7.5 /* グラフ出力すると (◆修正部分5) */,
gr(T,c,x=0,pP,pK,lab,-xL,xL,-yL,yL) /* グラフ出力すると (◆修正部分5) */,
print("GSend"))$
(TEJUN: "2 図形的",
KATEI:["IO =1, ∠IqOQ =∠POIp =t ", "...仮定"],print(KATEI)/*(◆修正部分6)*/,
ev21:["△PIpO≡△QIqO (OP=OQ, ∠IqOQ =∠POIp, ∠PIpO=∠QIqO=∠R)"],print(ev21)/*(◆修正部分6)*/,
ev22:["PIp=QIq",float(dis(pPL,pIpL)),float(dis(pQL,pIqL))],print(ev22)/*(◆修正部分6)*/,
ev23:["LHS =sin(%pi-t)=JpO=PIp=QIq=JqO=sin(t) =RHS",float(subst(t=deg,sin(%pi-t))),float(subst(t=deg,sin(t)))],print(ev23)/*(◆修正部分6)*/,
print("T2end"))$

(KAITOU:ansl/*解答*//**/,
SUJIMITI:"左辺を加法定理で展開すると、(     )・・・"/*(◆修正部分7)*/,
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)")$

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


◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
(MONDAI:"・章末問題7 40210 加法定理などを用いて、tan(%pi/2-t) =1/tan(t) を示せ。"/*(◆修正部分1)*/,
KOUSATU:"左辺を正弦余弦で表現すると、・・・"/*(◆修正部分1)*/)$
/*....*/color=red,lab[2][1],lab[2][2],lab[2][3],lab[2][4],lab[2][5],lab[2][6],lab[2][7],lab[2][8],lab[2][9],lab[2][10],lab[2][11]/* グラフ出力すると (◆修正部分2) */,
Lhs(t):=tan(%pi/2-t), Rhs(t):=1/tan(t) /*(◆修正部分3)*/,
ev11:["LHS = tan(%pi/2-t) =sin(%pi/2-t)/cos(%pi/2-t)","(正接を正弦余弦で)",float(Lhs(deg)),float(subst(t=deg, sin(%pi/2-t)/cos(%pi/2-t)))],print(ev11)/*(◆修正部分3)*/,
ev12:[" = cos(t)/sin(t)","(正弦余弦を余角で)",float(subst(t=deg, cos(t)/sin(t)))],print(ev12)/*(◆修正部分3)*/,
ev13:[" = 1/tan(t)= RHS","(正接にして)",float(subst(t=deg,1/tan(t))),float(Rhs(deg))],print(ev13)/*(◆修正部分3)*/,
ev17:["tan(%pi/2-t) = 1/tan(t)",float(Lhs(deg)=Rhs(deg))],print(ev17)/*(◆修正部分3)*/,
poL:[0,0], pIL:[1,0], pJL:[0,1],pPL:[cos(%pi/2-deg),sin(%pi/2-deg)],pQL:[cos(deg),sin(deg)],pRL:[1,tan(%pi/2-deg)],pSL:[1,tan(deg)]/*(◆修正部分4)*/,
pIpL:[pPL[1],0],pIqL:[pQL[1],0],pJpL:[0,pPL[2]],pJqL:[0,pQL[2]]/*(◆修正部分4)*/,
labO:lab("O",poL+[-0.1,-0.2]), labI:lab("I",pIL+[0.2,-0.2]), labJ:lab("J",pJL+[-0.1,0.2]), labP:lab("P",pPL+[-0.1,0.2]),labQ:lab("Q",pQL+[-0.05,0.3])/*(◆修正部分4)*/,
labIp:lab("Ip",pIpL+[0,-0.2]), labIq:lab("Iq",pIqL+[-0.1,-0.2]), labJp:lab("Jp",pJpL+[-0.15,-0.15]), labJq:lab("Jq",pJqL+[-0.15,-0.15])/*(◆修正部分4)*/,
labR:lab("R",pRL+[0.2,-0.15]), labS:lab("S",pSL+[0.2,0])/*(◆修正部分4)*/,
lab:[11,[labO,labI,labJ,labP,labIp,labJp,labQ,labIq,labJq,labR,labS]],print(lab)/* グラフ出力すると (◆修正部分5) */,
pK:[[pPL,poL,pIpL,pPL,pJpL],[pQL,poL,pIqL,pQL,pJqL]]/**/,print(pK)/* グラフ出力すると (◆修正部分5) */,
pP:[pJL,poL,pRL,pIL,poL,pSL],print(pP)/* グラフ出力すると (◆修正部分5) */,
yL:1.5/2*3,xL:yL/6.1*7.5/* グラフ出力すると (◆修正部分5) */,
gr(T,c,x=0,pP,pK,lab,-1,xL,-1,yL) /* グラフ出力すると (◆修正部分5) */,
KATEI:["IO =1, ∠JpOP =∠IqOQ =t ", "...仮定"],print(KATEI)/*(◆修正部分6)*/,
ev21:["△OIR∽△SIO (∠OIR=∠SIO=直角, ∠ORI =∠OPIp =∠POJp =∠QOIq=∠SOI)"],print(ev21)/*(◆修正部分6)*/,
ev22:["OI:IR =SI:IO (△OIR∽△SIO)",float(dis(poL,pIL)/dis(pIL,pRL)),float(dis(pSL,pIL)/dis(pIL,poL))],print(ev22)/*(◆修正部分6)*/,
ev23:["IR =1/SI (外項積=内項積から)",float(dis(pIL,pRL)),float(1/dis(pSL,pIL))],print(ev23)/*(◆修正部分6)*/,
ev24:["LHS =tan(%pi/2-t)=IR=1/IS=1/tan(t) =RHS",float(Lhs(deg)),float(Rhs(deg))],print(ev24)/*(◆修正部分6)*/,
SUJIMITI:"左辺を加法定理で展開すると、(     )・・・"/*(◆修正部分7)*/,


◆コマンド番号40211
●補充問題・章末問題
●●●●●●●●●●●●●●●●
kill(all) /**/$
(MONDAI:"・章末問題8 40211 y =cos(t)^2 +2*sin(t) について、0<=t,t< 2*%pi で最小値を求めよ。そのときのtの値も。"/*(◆修正部分1)*/,
KOUSATU:"左辺を正弦だけで表して、・・・"/*(◆修正部分1)*/)$
(KANSUU:"",
gr(T,c,l,pP,pK,lab,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 =1,
/*....*/points_joined =true,point_size =1,points(pP) /* "点pPを青で打って、青線で結んで" */,
/*....*/color=red,lab[2][1],lab[2][2],lab[2][3],lab[2][4],lab[2][5],lab[2][6],lab[2][7],lab[2][8],lab[2][9],
/*....*/color=black)),
lab(nam,p):=label([nam,p[1],p[2]]) /* 図中の文字 */,
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))))
)$
(TEISUU:"",
Pi:%pi,
deg:25/180*Pi/**/
)$
(TEJUN: "1 解析的",
Y(t):=cos(t)^2 +2*sin(t) /*(◆修正部分2)*/,
ev11:["y = cos(t)^2 +2*sin(t) = (1-sin(t)^2) +2*sin(t)","(正弦だけで表して)",float(Y(deg)),float(subst(t=deg, (1-sin(t)^2) +2*sin(t)))],print(ev11)/*(◆修正部分2)*/,
ev12:[" = -X^2 +2*X +1 (-1<=X, X< 1)","(sin(t)=Xで表して)",float(subst(X=sin(deg), -X^2 +2*X +1))],print(ev12)/*(◆修正部分2)*/,
ev13:[" = -(X-1)^2 +2","(平方完成して)",float(subst(X=sin(deg),-(X-1)^2 +2))],print(ev13)/*(◆修正部分2)*/,
ev14:["頂点(1,2),軸X=1(t=%pi/2),上に凸で,最小値はX=-1(t=%pi*3/2)のときy =-2",float(Y(%pi*3/2))],print(ev14)/*(◆修正部分2)*/,
ev17:["最小値は,t=%pi*3/2 のときy =-2",float(Y(%pi*3/2))],print(ev17)/*(◆修正部分2)*/,
ansl:[ev17[1],"結論"],print(ansl)/**/,
print("QED"))$

(TEJUN:"グラフ準備",
poL:[0,0], pQL:[%pi*3/2,Y(%pi*3/2)],pPL:[%pi/2,Y(%pi/2)]/*(◆修正部分3)*/,
pIL:[%pi*2,0],pI1L:[%pi/3,0],pI2L:[%pi*2/3,0],pI3L:[%pi*3/3,0],pI4L:[%pi*4/3,0],pI5L:[%pi*5/3,0],pJL:[0,1],
labO:lab("O",poL+[0.2,-0.3]), labI:lab("2π",pIL+[-0.1,-0.3]), labI3:lab("π",pI3L+[0,-0.3]), labP:lab("P",pPL+[0,0.3]),labQ:lab("Q",pQL+[0,-0.3]),
print("GJEnd"))$

(kakunin:"グラフを書いて、視覚的に確認",
r:2,c:y =Y(x),
T:"" /**/,
lab:[9,[labO,labI,labO,labP,labQ,labI3,labO,labO,labO]],print(lab) /* グラフ出力すると */,
pK:[[pPL],[pQL]]/**/,print(pK) /* グラフ出力すると  */,
pP:[poL,pI1L,pI2L,pI3L,pI4L,pI5L,pIL],print(pP) /* グラフ出力すると */,
yL:r/2*3,xL:yL/6.1*7.5 /* グラフ出力すると */ ,
gr(T,c,x=0,pP,pK,lab,0,%pi*2,-yL,yL) /* グラフ出力すると  */,
print("GSend"))$

(KAITOU:ansl/*解答*//**/,
SUJIMITI:"左辺を正弦だけで表現すると、(     )・・・"/*(◆修正部分4)*/,
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)")$

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

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
(MONDAI:"・章末問題13 40211 y =sin(t) -sqrt(3)*cos(t) について、0<=t,t< 2*%pi で最大値・最小値を求めよ。そのときのtの値も。"/*(◆修正部分1)*/,
KOUSATU:"左辺を合成して、・・・"/*(◆修正部分1)*/)$
Y(t):=sin(t) -sqrt(3)*cos(t) /*(◆修正部分2)*/,
ev11:["y = sin(t) -sqrt(3)*cos(t) = 2*sin(t-%pi/3) (0<=t, t< %pi*2)","(合成して)",float(Y(deg)),float(subst(t=deg, 2*sin(t-%pi/3) ))],print(ev11)/*(◆修正部分2)*/,
ev12:[" = 2*sin(T) (-%pi/3<=T, T< %pi*5/3)","(t-%pi/3=Tで表して)",float(subst(T=deg-%pi/3, 2*sin(T) ))],print(ev12)/*(◆修正部分2)*/,
ev13:["T=%pi/2 (t=%pi*5/6)のとき,最大値y=2","(sin(T)の数表から)",float(subst(T=%pi/2, 2*sin(T) ))],print(ev13)/*(◆修正部分2)*/,
ev14:["T=%pi*3/2 (t=%pi*11/6)のとき,最小値y=-2","(sin(T)の数表から)",float(subst(T=%pi*3/2, 2*sin(T) ))],print(ev14)/*(◆修正部分2)*/,
ev17:["最大値は,t=%pi*5/6 のときy =2,最小値は,t=%pi*11/6 のときy =-2",float(Y(%pi*5/6)),float(Y(%pi*11/6))],print(ev17)/*(◆修正部分2)*/,
poL:[0,0], pQL:[%pi*11/6,Y(%pi*11/6)],pPL:[%pi*5/6,Y(%pi*5/6)]/*(◆修正部分3)*/,
SUJIMITI:"左辺を合成して、(     )・・・"/*(◆修正部分4)*/,


◆コマンド番号40212
●補充問題・章末問題
●●●●●●●●●●●●●●●●
kill(all) /**/$
(MONDAI:"・章末問題9 40212 sin(a) +sin(b) = 1/2, cos(a) +cos(b) = 1/3 のとき、cos(a-b) は。"/*(◆修正部分1)*/,
KOUSATU:"加法定理で展開して、・・・"/*(◆修正部分1)*/)$
(KANSUU:"",
gr(T,c,l,pP,pK,lab,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 =1,
/*....*/points_joined =true,point_size =1,points(pP) /* "点pPを青で打って、青線で結んで" */,
/*....*/color=red,lab[2][1],lab[2][2],lab[2][3],lab[2][4],lab[2][5],lab[2][6],lab[2][7],lab[2][8],lab[2][9],
/*....*/color=black)),
lab(nam,p):=label([nam,p[1],p[2]]) /* 図中の文字 */,
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))))
)$
(TEISUU:"",
Pi:%pi,
dega:25/180*Pi/*(◆修正部分2)*/,
degb:15/180*Pi/*(◆修正部分2)*/
)$
(TEJUN: "1 解析的",
Y(a,b):=cos(a-b) /*(◆修正部分3)*/,
ev11:["cos(a-b) = cos(a)*cos(b) +sin(a)*sin(b)","(加法定理で展開して)",float(Y(dega,degb)),float(subst([a=dega,b=degb], cos(a)*cos(b) +sin(a)*sin(b) ))],print(ev11)/*(◆修正部分3)*/,
ev12:["  (sin(a) +sin(b))^2 = sin(a)^2 +2*sin(a)*sin(b) +sin(b)^2 = 1/4","(2乗して)",float(subst([a=dega,b=degb], (sin(a) +sin(b))^2 )),float(subst([a=dega,b=degb], sin(a)^2 +2*sin(a)*sin(b) +sin(b)^2 ))],print(ev12)/*(◆修正部分3)*/,
ev13:["  (cos(a) +cos(b))^2 = cos(a)^2 +2*cos(a)*cos(b) +cos(b)^2 = 1/9","(2乗して)",float(subst([a=dega,b=degb], (cos(a) +cos(b))^2 )),float(subst([a=dega,b=degb], cos(a)^2 +2*cos(a)*cos(b) +cos(b)^2 ))],print(ev13)/*(◆修正部分3)*/,
ev14:[" = (1/4 -sin(a)^2-sin(b)^2)/2 +(1/9 -cos(a)^2 -cos(b)^2)/2","(sin(a)*sin(b),cos(a)*cos(b)について解いて代入して)",float(subst([a=dega,b=degb],(1/4 -sin(a)^2-sin(b)^2)/2 +(1/9 -cos(a)^2 -cos(b)^2)/2 ))],print(ev14)/*(◆修正部分3)*/,
ev15:[" = (1/4 +1/9 -2)/2 = -59/72","(正弦余弦の平方和を計算して)",float(subst([a=dega,b=degb],(1/4 +1/9 -2)/2 ))],print(ev15)/*(◆修正部分3)*/,
ev17:["cos(a-b) = -59/72",float(-59/72)],print(ev17)/*(◆修正部分3)*/,
ansl:[ev17[1],"結論"],print(ansl)/**/,
print("QED"))$

(TEJUN:"グラフ準備",
pOL:[0,0], pPL:[1/3,1/2],pQL:pPL/2 /*(◆修正部分4)*/,
dOQ:dis(pOL,pQL),nlOQ:nl(pOL,pQL),enlOQ:nlOQ/sqrt(nlOQ.nlOQ),pRL:pQL+sqrt(1-dOQ^2)*enlOQ,pSL:ng2pl(pRL,pQL,2,-1) /*(◆修正部分4)*/,
pIL:[1,0],pJL:[0,1] /*(◆修正部分4)*/,
labO:lab("O",pOL+[-0.1,-0.15]), labI:lab("I",pIL+[0.1,0.15]), labJ:lab("J",pJL+[-0.1,0.1]), labP:lab("P",pPL+[0.1,0.15]),labQ:lab("Q",pQL+[0,0.15]),labR:lab("R",pRL+[-0.1,0.15]),labS:lab("S",pSL+[0.1,-0.15]) /*(◆修正部分4)*/,
print("GJEnd"))$

(kakunin:"グラフを書いて、視覚的に確認",
r:1,c:x^2 +y^2 =r^2,
T:"R=[cos(a),sin(a)],S=[cos(b),sin(b)],aSOR=a-b" /*(◆修正部分5)*/,
lab:[9,[labO,labI,labJ,labP,labQ,labR,labS,labO,labO]],print(lab) /* グラフ出力すると(◆修正部分5)*/,
pK:[[pOL,pQL,pPL],[pRL,pQL,pSL,pOL,pRL]]/**/,print(pK) /* グラフ出力すると(◆修正部分5)*/,
pP:[pJL,pOL,pIL],print(pP) /* グラフ出力すると(◆修正部分5)*/,
yL:r/2*3,xL:yL/5.8*8.4 /* グラフ出力すると(◆修正部分5)*/,
gr(T,c,x=0,pP,pK,lab,-xL,xL,-yL,yL) /* グラフ出力すると(◆修正部分5)*/,
print("GSend"))$

(TEJUN: "2 図形的",
ev11:["R=[cos(a),sin(a)],S=[cos(b),sin(b)]とすると,P=R+S=[1/3,1/2],Q=P/2,PQはR,Sの垂直二等分線","(仮定の図形的解釈)",float(pPL),float(pQL)],print(ev11)/*(◆修正部分6)*/,
ev12:["cos(a-b)は、∠SORの余弦で、∠QORの余弦の2倍角","∠QORの余弦はOQ=sqrt((1/6)^2+(1/4)^2) =sqrt(13)/12",float(sqrt((1/6)^2+(1/4)^2)),float(sqrt(13)/12)],print(ev12)/*(◆修正部分6)*/,
ev13:["cos(a-b) =2*cos(∠QOR)^2 -1 =2*13/144 -1 =-59/72","(2倍角公式)",float(2*13/144 -1),float(-59/72)],print(ev13)/*(◆修正部分6)*/,
print("QED2"))$

(KAITOU:ansl/*解答*//**/,
SUJIMITI:"左辺を加法定理で展開すると、(     )・・・"/*(◆修正部分7)*/,
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)")$

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

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
(MONDAI:"・章末問題9 40212 tan(a)=2,tan(b)=4,tan(c)=13 のとき、tan(a+b+c) は。"/*(◆修正部分1)*/,
KOUSATU:"加法定理で展開して、・・・"/*(◆修正部分1)*/)$
dega:25/180*Pi/*(◆修正部分2)*/,
degb:15/180*Pi/*(◆修正部分2)*/,
degc:10/180*Pi/*(◆修正部分2)*/
Y(a,b,c):=tan(a+b+c) /*(◆修正部分3)*/,
ev11:["tan(a+b+c) = (tan(a+b) +tan(c))/(1-tan(a+b)*tan(c))","(加法定理でa+bとcに展開して)",float(Y(dega,degb,degc)),float(subst([a=dega,b=degb,c=degc], (tan(a+b) +tan(c))/(1-tan(a+b)*tan(c)) ))],print(ev11)/*(◆修正部分3)*/,
ev12:[" = ((tan(a)+tan(b))/(1-tan(a)*tan(b)) +tan(c))/(1-(tan(a)+tan(b))/(1-tan(a)*tan(b))*tan(c))","(加法定理でaとbに展開して)",float(subst([a=dega,b=degb,c=degc], ((tan(a)+tan(b))/(1-tan(a)*tan(b)) +tan(c))/(1-(tan(a)+tan(b))/(1-tan(a)*tan(b))*tan(c)) ))],print(ev12)/*(◆修正部分3)*/,
ev13:[" = ((tan(a)+tan(b)) +tan(c)*(1-tan(a)*tan(b)))/(1*(1-tan(a)*tan(b))-(tan(a)+tan(b))*tan(c))","(加法定理でaとbに展開して)",float(subst([a=dega,b=degb,c=degc], ((tan(a)+tan(b)) +tan(c)*(1-tan(a)*tan(b)))/(1*(1-tan(a)*tan(b))-(tan(a)+tan(b))*tan(c)) ))],print(ev13)/*(◆修正部分3)*/,
ev14:[" = ((2+4) +13*(1-2*4))/(1*(1-2*4)-(2+4)*13)","(加法定理でaとbに展開して)",float((2+4) +13*(1-2*4))/(1*(1-2*4)-(2+4)*13)],print(ev14)/*(◆修正部分3)*/,
ev17:["tan(a+b+c)=1"," pRL=",float(pPL)],print(ev17)/*(◆修正部分3)*/,
pOL:[0,0], pPL:[1,2], dOP:dis(pOL,pPL), pCpL:pPL/dOP /*(◆修正部分4)*/,
nlOP:nl(pOL,pPL),enlOP:nlOP/sqrt(nlOP.nlOP),pQL:pCpL+4*enlOP,dOQ:dis(pOL,pQL),pCqL:pQL/dOQ /*(◆修正部分4)*/,
nlOQ:nl(pOL,pQL),enlOQ:nlOQ/sqrt(nlOQ.nlOQ),pRL:pCqL+13*enlOQ,dOR:dis(pOL,pRL),pCrL:pRL/dOR /*(◆修正部分4)*/,
pIL:[1,0],pJL:[0,1] /*(◆修正部分4)*/,
labO:lab("O",pOL+[1,-1.5]), labI:lab("I",pIL+[0.1,0.15]), labJ:lab("J",pJL+[-0.1,0.1]), labP:lab("P",pPL+[0.8,0.8]),labQ:lab("Q",pQL+[-0.8,0.8]),labR:lab("R",pRL+[-0.8,+0.8]) /*(◆修正部分4)*/,
labCp:lab("Cp",pCpL+[-0.1,-0.15]), labCq:lab("Cq",pCqL+[0.1,0.15]), labCr:lab("Cr",pCrL+[-0.1,0.1]) /*(◆修正部分4)*/,
T:"" /*(◆修正部分5)*/,
lab:[9,[labO,labO,labO,labP,labQ,labR,labO,labO,labO]],print(float(lab)) /* グラフ出力すると (◆修正部分5)*/,
pK:[[pOL,pIL,pPL,pOL,pCpL,pQL,pOL],[pOL,pCqL,pRL,pOL,pCrL]]/**/,print(float(pK)) /* グラフ出力すると (◆修正部分5) */,
pP:[pJL,pOL,pIL],print(float(pP)) /* グラフ出力すると (◆修正部分5)*/,
yL:7/2*3,xL:yL/5.8*8.4 /* グラフ出力すると(◆修正部分5)*/ ,
gr(T,c,x=0,pP,pK,lab,-xL,xL,-yL,yL) /* グラフ出力すると (◆修正部分5) */,
ev11:["R=[- 9.219544457292885, - 9.219544457292887]なので、a+b+c=%pi*5/4","(グラフから)",float(pRL)],print(ev11)/*(◆修正部分6)*/,
ev12:["tan(a+b+c)=tan(%pi*5/4)=1",float(tan(%pi*5/4))],print(ev12)/*(◆修正部分6)*/,
SUJIMITI:"左辺を加法定理で展開すると、(     )・・・"/*(◆修正部分7)*/,


◆コマンド番号40213
●補充問題・章末問題
●●●●●●●●●●●●●●●●
kill(all) /**/$
(MONDAI:"・章末問題10 40213 (sin(a-b)/sin(a+b)=(tan(a)-tan(b))/(tan(a)+tan(b)) を示せ。"/**/,
KOUSATU:"加法定理で展開して、・・・"/**/)$
(KANSUU:"",
gr(T,c,l,pP,pK,lab,xm,xM,ym,yM):=block(
/**/wxdraw2d(
/*....*/title =T, yrange=[ym,yM] /* "タイトルと値域を確認し" */,
/*....*/color=red,line_width=2,
/*....*/implicit(c,x,xm,xM,y,ym,yM),
/*....*/color=blue,line_width=1,
/*....*/implicit(l,x,xm,xM,y,ym,yM),
/*....*/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軸を引く" */,
/*....*/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=black,point_type =1,line_width=1,
/*....*/points_joined =true,point_size =1,points(pP) /* "点pPを青で打って、青線で結んで" */,
/*....*/color=red,lab[2][1],lab[2][2],lab[2][3],lab[2][4],lab[2][5],lab[2][6],lab[2][7],lab[2][8],lab[2][9],
/*....*/color=black)),
lab(nam,p):=label([nam,p[1],p[2]]) /* 図中の文字 */,
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))))
)$
(TEISUU:"",
Pi:%pi,
dega:25/180*Pi/**/,
degb:20/180*Pi/*(◆修正部分1)*/
)$
(TEJUN: "1 解析的",
Lhs(a,b):=sin(a-b)/sin(a+b),Rhs(a,b):=(tan(a)-tan(b))/(tan(a)+tan(b)) /**/,
ev11:["LHS = sin(a-b)/sin(a+b) = (sin(a)*cos(b) -cos(a)*sin(b))/(sin(a)*cos(b) +cos(a)*sin(b))","(加法定理)",float(Lhs(dega,degb)),float(subst([a=dega,b=degb], (sin(a)*cos(b) -cos(a)*sin(b))/(sin(a)*cos(b) +cos(a)*sin(b)) ))],print(ev11)/**/,
ev12:[" = (sin(a)/cos(a) -sin(b)/cos(b))/(sin(a)/cos(a) +sin(b)/cos(b)) ","(分母分子をcos(a)*cos(b)で割る)",float(subst([a=dega,b=degb], (sin(a)/cos(a) -sin(b)/cos(b))/(sin(a)/cos(a) +sin(b)/cos(b)) ))],print(ev12)/**/,
ev13:[" = (tan(a) -tan(b))/(tan(a) +tan(b)) = RHS","(正接で表して)",float(subst([a=dega,b=degb], (tan(a) -tan(b))/(tan(a) +tan(b)) )),float(Rhs(dega,degb))],print(ev13)/**/,
ev17:["sin(a-b)/sin(a+b) =(tan(a)-tan(b))/(tan(a)+tan(b))","(結論)",float(Lhs(dega,degb)),float(Rhs(dega,degb))],print(ev17)/**/,
ansl:[ev17[1],"結論"],print(ansl)/**/,
print("QED"))$

(TEJUN:"グラフ準備",
pOL:[0,0]/**/,
pIL:[%pi*2,0],pI1L:[%pi/3,0],pI2L:[%pi*2/3,0],pI3L:[%pi*3/3,0],pI4L:[%pi*4/3,0],pI5L:[%pi*5/3,0],pJL:[0,1],
labO:lab("O",pOL+[0.2,-0.3]), labI:lab("2π",pIL+[-0.1,-0.3]), labI3:lab("π",pI3L+[0,-0.3]),
print("GJEnd"))$

(kakunin:"グラフを書いて、視覚的に確認",
r:2,c:y =Lhs(x,degb),
T:"" /**/,
lab:[9,[labO,labI,labO,labO,labO,labI3,labO,labO,labO]],print(lab) /* グラフ出力すると */,
pK:[[pOL],[pOL]]/**/,print(pK) /* グラフ出力すると  */,
pP:[pOL,pI1L,pI2L,pI3L,pI4L,pI5L,pIL],print(pP) /* グラフ出力すると */,
yL:r/2*3,xL:yL/6.1*7.5 /* グラフ出力すると */ ,
gr(T,c,y=Rhs(x,degb),pP,pK,lab,0,%pi*2,-yL,yL) /* グラフ出力すると  */,
print("GSend"))$
(TEJUN: "2 図形的",
ev11:["y1=Lhs(x,degb) (red line), y2=Rhs(x,degb) (blue line),y1 = y2","(in the graph)",float(Lhs(x,degb)),float(Rhs(x,degb))],print(ev11)/**/,
ev12:["等式は成立","(結論)"],print(ev12)/**/,
print("QED2"))$
(KAITOU:ansl/*解答*//**/,
SUJIMITI:"左辺を加法定理で展開すると、(     )・・・"/**/,
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)")$

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

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
degb:40/180*Pi/*(◆修正部分1)*/


◆コマンド番号40214
●補充問題・章末問題
●●●●●●●●●●●●●●●●
kill(all) /**/$
(MONDAI:"・章末問題11 40214 y = cos(x)^2 のグラフを書き、周期を求めよ。"/*(◆修正部分1)*/,
KOUSATU:"半角公式で余弦の1次式にして、・・・"/*(◆修正部分1)*/)$
(KANSUU:"",
gr(T,c,l,pP,pK,lab,xm,xM,ym,yM):=block(
/**/wxdraw2d(
/*....*/title =T, yrange=[ym,yM] /* "タイトルと値域を確認し" */,
/*....*/color=red,line_width=2,
/*....*/implicit(c,x,xm,xM,y,ym,yM),
/*....*/color=blue,line_width=1,
/*....*/implicit(l,x,xm,xM,y,ym,yM),
/*....*/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軸を引く" */,
/*....*/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=black,point_type =1,line_width=1,
/*....*/points_joined =true,point_size =1,points(pP) /* "点pPを青で打って、青線で結んで" */,
/*....*/color=red,lab[2][1],lab[2][2],lab[2][3],lab[2][4],lab[2][5],lab[2][6],lab[2][7],lab[2][8],lab[2][9],
/*....*/color=black)),
lab(nam,p):=label([nam,p[1],p[2]]) /* 図中の文字 */,
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))))
)$
(TEISUU:"",
Pi:%pi,
deg:25/180*Pi/**/,
TEISUU:"end")$

(TEJUN: "1 解析的",
Y(x):= cos(x)^2 /*(◆修正部分2)*/,
ev11:["cos(x)^2 = (cos(2*x) +1)/2 = 1/2 *cos(2*x) +1/2 ", "(半角公式)",float(Y(deg)),float(subst(x=deg, 1/2 *cos(2*x) +1/2 ))],print(ev11)/*(◆修正部分2)*/,
ev12:[" X=2*x で、Xでの余弦の周期は%pi*2で、xでの周期は%pi、振幅は1/2、cos(x)^2 = (cos(2*x) +1)/2 = 1/2 *cos(2*x) +1/2 ", "(2倍角公式)",float(Y(deg)),float(subst(x=deg, 1/2 *cos(2*x) +1/2 ))],print(ev12)/*(◆修正部分2)*/,
ev17:[" y=cos(x) のグラフを、周期%pi,振幅1/2にして、y軸方向に1/2平行移動", "(グラフの概形)"],print(ev17)/*(◆修正部分2)*/,
ansl:[ev17[1],"結論"],print(ansl)/**/,
print("QED"))$
(TEJUN:"グラフ準備",
pOL:[0,0]/**/,
pIL:[%pi*2,0],pI1L:[%pi/3,0],pI2L:[%pi*2/3,0],pI3L:[%pi*3/3,0],pI4L:[%pi*4/3,0],pI5L:[%pi*5/3,0],pJL:[0,1],
labO:lab("O",pOL+[0.2,-0.3]), labI:lab("2π",pIL+[-0.1,-0.3]), labI3:lab("π",pI3L+[0,-0.3]),
print("GJEnd"))$

(kakunin:"グラフを書いて、視覚的に確認",
r:2,c:y =Y(x),c1:y =cos(x)/*(◆修正部分3)*/,
T:"Red y=cos(x)^2, Blue y=cos(x)" ,print([r,c,T]) /*(◆修正部分3)*/,
lab:[9,[labO,labI,labO,labO,labO,labI3,labO,labO,labO]],print(lab) /* グラフ出力すると */,
pK:[[pOL],[pOL]]/**/,print(pK) /* グラフ出力すると  */,
pP:[pOL,pI1L,pI2L,pI3L,pI4L,pI5L,pIL],print(pP) /* グラフ出力すると */,
yL:r/2*3,xL:yL/6.1*7.5 /* グラフ出力すると  */ ,
gr(T,c,y=cos(x),pP,pK,lab,0,%pi*2,-yL,yL) /* グラフ出力すると  */,
print("GSend"))$

(KAITOU:ansl/*解答*//**/,
SUJIMITI:"半角公式で余弦の1次式にして、(     )・・・"/*(◆修正部分4)**/,
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)")$

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

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
(MONDAI:"・章末問題11 40214 y = 1/2 *sin(2*x) のグラフを書き、周期を求めよ。"/*(◆修正部分1)*/,
KOUSATU:"周期と振幅は、・・・"/*(◆修正部分1)*/)$
Y(x):= 1/2 *sin(2*x) /*(◆修正部分2)*/,
ev11:[" X=2*x で、Xでの正弦の周期は%pi*2で、xでの周期は%pi、振幅は1/2、1/2 *sin(2*x) = 1/2 *sin(2*x +%pi*2) = 1/2 *sin(2*(x +%pi))", "(周期)",float(Y(deg)),float(subst(x=deg,1/2 *sin(2*deg +%pi*2) )),float(subst(x=deg, 1/2 *sin(2*(x +%pi)) ))],print(ev11)/*(◆修正部分2)*/,
ev17:[" y=sin(x) のグラフを、周期%pi,振幅1/2に", "(グラフの概形)"],print(ev17)/*(◆修正部分2)*/,
r:2,c:y =Y(x),c1:y=sin(x)/*(◆修正部分3)*/,
T:"Red y=1/2 *sin(2*x), Blue y=sin(x)" ,print([r,c,T]) /*(◆修正部分3)*/,
SUJIMITI:"周期と振幅は、(     )・・・"/*(◆修正部分4)*/,


◆コマンド番号40215
●補充問題・章末問題
●●●●●●●●●●●●●●●●
kill(all) /**/$
(MONDAI:"・章末問題12 40215 sin(3*x) +sin(x) = 2*sin(2x)*cos(x) を示せ。"/*(◆修正部分1)*/,
KOUSATU:"和積公式で積にして、・・・"/**/)$
(KANSUU:"",
gr(T,c,l,pP,pK,lab,xm,xM,ym,yM):=block(
/**/wxdraw2d(
/*....*/title =T, yrange=[ym,yM] /* "タイトルと値域を確認し" */,
/*....*/color=red,line_width=2,
/*....*/implicit(c,x,xm,xM,y,ym,yM),
/*....*/color=blue,line_width=1,
/*....*/implicit(l,x,xm,xM,y,ym,yM),
/*....*/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軸を引く" */,
/*....*/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=black,point_type =1,line_width=1,
/*....*/points_joined =true,point_size =1,points(pP) /* "点pPを青で打って、青線で結んで" */,
/*....*/color=red,lab[2][1],lab[2][2],lab[2][3],lab[2][4],lab[2][5],lab[2][6],lab[2][7],lab[2][8],lab[2][9],
/*....*/color=black)),
lab(nam,p):=label([nam,p[1],p[2]]) /* 図中の文字 */,
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))))
)$
(TEISUU:"",
Pi:%pi,
deg:25/180*Pi/**/,
TEISUU:"end")$

(TEJUN: "1 解析的",
Y(x):= sin(3*x) +sin(x) /**/,
ev11:["LHS = sin(3*x) +sin(x) = 2*cos(x)*sin(2*x)", "(積和公式)",float(Y(deg)),float(subst(x=deg, 2*cos(x)*sin(2*x) ))],print(ev11)/**/,
ev17:[" = 2*sin(2*x)*cos(x)= RHS",float(subst(x=deg, 2*sin(2*x)*cos(x) )), "(交換)" ],print(ev17)/*(◆修正部分2)*/,
ansl:[ev17[1],"結論"],print(ansl)/**/,
print("QED"))$

(TEJUN:"グラフ準備",
pOL:[0,0]/**/,
pIL:[%pi*2,0],pI1L:[%pi/3,0],pI2L:[%pi*2/3,0],pI3L:[%pi*3/3,0],pI4L:[%pi*4/3,0],pI5L:[%pi*5/3,0],pJL:[0,1],
labO:lab("O",pOL+[0.2,-0.3]), labI:lab("2π",pIL+[-0.1,-0.3]), labI3:lab("π",pI3L+[0,-0.3]),
print("GJEnd"))$

(kakunin:"グラフを書いて、視覚的に確認",
r:2,c:y =Y(x),c1:y =2*sin(2*x)*cos(x)/**/,
T:"Red y=sin(3*x) +sin(x), Blue y=2*sin(2*x)*cos(x)" ,print([r,c,T]) /**/,
lab:[9,[labO,labI,labO,labO,labO,labI3,labO,labO,labO]],print(lab) /* グラフ出力すると */,
pK:[[pOL],[pOL]]/**/,print(pK) /* グラフ出力すると  */,
pP:[pOL,pI1L,pI2L,pI3L,pI4L,pI5L,pIL],print(pP) /* グラフ出力すると */,
yL:r/2*3,xL:yL/6.1*7.5 /* グラフ出力すると  */ ,
gr(T,c,c1,pP,pK,lab,0,%pi*2,-yL,yL) /* グラフ出力すると  */,
print("GSend"))$

(KAITOU:ansl/*解答*//**/,
SUJIMITI:"和積公式で積にして、(     )・・・"/**/,
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)")$

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

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
(MONDAI:"・章末問題12 40215 sin(3*x) +sin(x) =0 を、0<= x,x< %pi*2 で解け。"/*(◆修正部分1)*/,
ev12:["2*sin(2*x)*cos(x) = 0", "(方程式にして)"],print(ev12)/*(◆修正部分2)*/,
ev13:[" sin(2*x)=0 から、2*x =0,%pi,%pi*2,%pi*3", "(第1因子から)"],print(ev13)/*(◆修正部分2)*/,
ev14:["  x =0,%pi/2,%pi,%pi*3/2", "(第1因子から)",float(Y(0)),float(Y(%pi/2)),float(Y(%pi)),float(Y(%pi*3/2))],print(ev14)/*(◆修正部分2)*/,
ev15:[" cos(x)=0 から、x =%pi/2,%pi*3/2", "(第2因子から)",float(Y(%pi/2)),float(Y(%pi*3/2))],print(ev15)/*(◆修正部分2)*/,
ev17:["x =0,%pi/2,%pi,%pi*3/2", "(解)",float(Y(0)),float(Y(%pi/2)),float(Y(%pi)),float(Y(%pi*3/2)) ],print(ev17)/*(◆修正部分2)*/,


◆コマンド番号40216
●補充問題・章末問題
●●●●●●●●●●●●●●●●
kill(all) /**/$
(MONDAI:"・章末問題13 40216 y =sin(x) -sqrt(3)*cos(x) について、0<=x,x< 2*%pi で y =0 となるxの値を求めよ。"/*(◆修正部分1)*/,
KOUSATU:"左辺を合成して、・・・"/**/)$
(KANSUU:"",
gr(T,c,l,pP,pK,lab,xm,xM,ym,yM):=block(
/**/wxdraw2d(
/*....*/title =T, yrange=[ym,yM] /* "タイトルと値域を確認し" */,
/*....*/color=red,
/*....*/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 =1,
/*....*/points_joined =true,point_size =1,points(pP) /* "点pPを青で打って、青線で結んで" */,
/*....*/color=red,lab[2][1],lab[2][2],lab[2][3],lab[2][4],lab[2][5],lab[2][6],lab[2][7],lab[2][8],lab[2][9],
/*....*/color=black)),
lab(nam,p):=label([nam,p[1],p[2]]) /* 図中の文字 */,
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))))
)$

(TEISUU:"",
Pi:%pi,
deg:25/180*Pi/**/
)$

(TEJUN: "1 解析的",
Y(x):=sin(x) -sqrt(3)*cos(x) /**/,
Ym(x):=if Y(x)<=0 then Y(x) else 0 /**/,
Yp(x):=if Y(x) > 0 then Y(x) else 0 /**/,
ev11:["y = sin(x) -sqrt(3)*cos(x) = 2*sin(x-%pi/3) (0<=x, x< %pi*2)","(合成して)",float(Y(deg)),float(subst(x=deg, 2*sin(x-%pi/3) ))],print(ev11)/**/,
ev12:[" = 2*sin(X) (-%pi/3<=X, X< %pi*5/3)","(x-%pi/3=Xで表して)",float(subst(X=deg-%pi/3, 2*sin(X) ))],print(ev12)/**/,
ev13:["X=0 (x=%pi/3), %pi (x=%pi*4/3)のとき, y =0","(sin(X)の数表から)",float(subst(X=0, 2*sin(X) )),float(subst(X=%pi, 2*sin(X) ))],print(ev13)/*(◆修正部分2)*/,
ev17:["x=%pi/3,%pi*4/3 のときy =0",float(Y(%pi/3)),float(Y(%pi*4/3))],print(ev17)/*(◆修正部分2)*/,
ansl:[ev17[1],"解"],print(ansl)/**/,
print("QED"))$

(TEJUN:"グラフ準備",poL:[0,0],pPL:[%pi/3,Y(%pi/3)], pQL:[%pi*4/3,Y(%pi*4/3)]/**/,
pIL:[%pi*2,0],pI1L:[%pi/3,0],pI2L:[%pi*2/3,0],pI3L:[%pi*3/3,0],pI4L:[%pi*4/3,0],pI5L:[%pi*5/3,0],pJL:[0,1],
labO:lab("O",poL+[0.2,-0.3]), labI:lab("2π",pIL+[-0.1,-0.3]), labI3:lab("π",pI3L+[0,-0.3]), labP:lab("P",pPL+[0,0.3]),labQ:lab("Q",pQL+[0,-0.3]),
print("GJEnd"))$

(kakunin:"グラフを書いて、視覚的に確認",
r:2,c:y =Y(x),c1:y=Yp(x),
T:"" /**/,
lab:[9,[labO,labI,labO,labP,labQ,labI3,labO,labO,labO]],print(lab) /* グラフ出力すると */,
pK:[[poL],[pPL,pQL]]/**/,print(pK) /* グラフ出力すると  */,
pP:[poL,pI1L,pI2L,pI3L,pI4L,pI5L,pIL],print(pP) /* グラフ出力すると */,
yL:r/2*3,xL:yL/6.1*7.5 /* グラフ出力すると */ ,
gr(T,c,x=0,pP,pK,lab,0,%pi*2,-yL,yL) /* グラフ出力すると(◆修正部分3) */,
print("GSend"))$

(KAITOU:ansl/*解答*//**/,
SUJIMITI:"左辺を合成して、(     )・・・"/**/,
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)")$

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

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
(MONDAI:"・章末問題13 40216 y =sin(x) -sqrt(3)*cos(x) について、0<=x,x< 2*%pi で y <=0 となるxの値の範囲を求めよ。"/*(◆修正部分1)*/,
ev13:["-%pi/3 <= X, X <= 0 (0 <= x, x <=%pi/3), %pi <= X, X < %pi*5/3 (%pi*4/3 <= x, x < %pi*2 )のとき, y <=0","(sin(X)の数表から)",float(subst(X=-%pi/3, 2*sin(X) )),float(subst(X=0, 2*sin(X) )),float(subst(X=%pi, 2*sin(X) )),float(subst(X=%pi*5/3, 2*sin(X) ))],print(ev13)/*(◆修正部分2)*/,
ev17:["0 <= x, x <= %pi/3,%pi*4/3 <= x, x <%pi*2 のときy <=0",float(Y(0)),float(Y(%pi/3)),float(Y(%pi*4/3)),float(Y(%pi*2))],print(ev17)/*(◆修正部分2)*/,
gr(T,c,c1,pP,pK,lab,0,%pi*2,-yL,yL) /* グラフ出力すると(◆修正部分3)*/,