: Maxima数学I自習教材開発
教材の概要
図形と計量 2)三角形への応用
 4.正弦定理
 5.余弦定理
 6.正弦定理と余弦定理の応用
 7.三角形の面積
 8.空間図形への応用
 補充問題・章末問題
Maxima数学I自習教材試行報告用紙(Word)
Maxima数学I自習教材試行報告用紙(PDF)
Maxima数学I自習教材試行報告用紙(html)

: 教材の概要

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


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

: 第3章図形と計量
 第2節三角形への応用
  4.正弦定理

   A 三角形の外接円と正弦
▼コマンド番号401

弦と円周角●●●●●●●●●●●●●●●●
kill(all) /* "401 弦と円周角(Maxima on lineでは削除)" */$
MONDAI:"401 下の問題で";
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;
MONDAI:"原点中心で半径2の円において、円周上の点B(-sqrt(3),-1),C(sqrt(3),-1)がある。";
MONDAI2:"さらに円周上の点Aが、弦BCについて中心と同じ側にある。" /* "(◆修正部分)" */;
MONDAI3:"∠ABCが30°のとき、∠BACの大きさは" /* "(◆修正部分)" */;
aK2:30 /* "∠Bが30度で(◆修正部分)" */;
T:"A/BC" /* "()" */;
c:x^2+y^2=4 /* "半径2の円の式と" */;
pP:[[-sqrt(3),-1],[sqrt(3),-1]] /* "2点B,Cを打って" */;
k:tand(aK2),numer /* "傾き30度の直線の傾きは" */;
l:y=k*(x+sqrt(3))-1,numer /* "Bを通る、傾き30度の直線の式は" */;
xyL:solve([l,c],[x,y]) /* "上の、円と直線の交点は" */;
xyL:xyL,numer /* "交点を小数表示して" */;
if abs(rhs(xyL[1][2])-(-1))<0.00001 then (pA:[[rhs(xyL[2][1]),rhs(xyL[2][2])]],numer) /**/else (pA:[[rhs(xyL[1][1]),rhs(xyL[1][2])]],numer) /* "Bと異なる交点は" */;
pP:endcons(pA[1],pP) /* "3点をまとめて" */;
gr(T,c,l,pP,pA,-4.5,4.5,-3,3) /* "グラフにすると" */$
if abs(pA[1][1]-sqrt(3))<0.00001 then aK3:90
/**/else( /*....*/tanC:(pA[1][2]-(-1))/(pA[1][1]-sqrt(3)),
/*....*/aK3:atand(tanC) /**/) /* "∠Cを求めて" */;
abs(aK3),numer;
aK:180-abs(aK2)-abs(aK3),numer /* "∠Aを求めると" */;

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI2:"さらに円周上の点Aが、弦BCについて中心と同じ側にある。" /* "(◆修正部分)" */;
MONDAI3:"∠ABCが35°のとき、∠BACの大きさは" /* "(◆修正部分)" */;
aK2:35 /* "∠Bが35度で(◆修正部分)" */;
◎上のコマンドを、さらに次により修正して実行し、結果を比較して考察せよ。
MONDAI2:"さらに円周上の点Aが、弦BCについて中心と反対側にある。" /* "(◆修正部分)" */;
MONDAI3:"∠ABCが30°のとき、∠BACの大きさは" /* "(◆修正部分)" */;
aK2:-20 /* "∠Bが下方向へ20度で(◆修正部分)" */;


   B 正弦定理
▼コマンド番号402
●例10、練習17
正弦定理●●●●●●●●●●●●●●●●
kill(all) /* "402 正弦定理(Maxima on lineでは削除)" */$
MONDAI:"402 下の問題で";
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;
se:H/sind(K)=2*R /* "正弦定理" */;
MONDAI:"1辺の長さが10の正三角形の外接円の半径Rは" /* "(◆修正部分)" */;
T:"C/AB" /* "(◆修正部分)" */;
lH:(10) /* "(◆修正部分)" */;
aK:(60) /* "(◆修正部分)" */;
aK2:(60) /* "(◆修正部分)" */;
sL:solve(subst([H=lH,K=aK],se),R) /* "正弦定理をRで解いて" */;
kakunin:"グラフを書いて、確認";
r:rhs(sL[1]);
c:x^2+y^2=r^2;
lH:2*r*sind(aK),numer$lH2:2*r*sind(aK2),numer$lH3:2*r*sind(180-aK-aK2),numer$
pK:[[r*cosd(270-aK),r*sind(270-aK)],[r*cosd(270+aK),r*sind(270+aK)],[r*cosd(270+aK+2*aK2),r*sind(270+aK+2*aK2)],[r*cosd(270-aK),r*sind(270-aK)]] /* "()" */;
pP:[[r*cosd(270-aK),r*sind(270-aK)],[-r*cosd(270-aK),-r*sind(270-aK)],[r*cosd(270+aK),r*sind(270+aK)]] /* "()" */;
yL:fix(r/2+1)*2;xL:yL/2*3;
gr(T,c,x=0,pP,pK,-xL,xL,-yL,yL) /* "グラフ出力すると" */$
print(MONDAI," aK,aK2,aK3=",aK,aK2,180-aK-aK2) /* "()" */$
print(" lH=",lH," lH2=",lH2," lH3=",lH3) /* "()" */$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"△ABCで、b=sqrt(3),B=120°のとき、外接円の半径Rは" /* "(◆修正部分)" */;
T:"B/AC" /* "(◆修正部分)" */;
lH:(sqrt(3)) /* "(◆修正部分)" */;
aK:(120) /* "(◆修正部分)" */;
aK2:(15) /* "(◆修正部分)" */;


▼コマンド番号403
●練習18
正弦定理●●●●●●●●●●●●●●●●
kill(all) /* "403 正弦定理(Maxima on lineでは削除)" */$
MONDAI:"403 下の問題で";
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;
se:H/sind(K)=2*R /* "正弦定理" */;
MONDAI:"△ABCで、c=10,外接円の半径R=10のとき、Cは" /* "(◆修正部分)" */;
T:"C/AB" /* "(◆修正部分)" */;
aK2:(45) /* "(◆修正部分)" */;
lH:(10) /* "辺の長さと(◆修正部分)" */;
R:(10) /* "外接円の半径を確認して、(◆修正部分)" */;
sL:solve(subst([H=lH,R=10],se),K) /* "正弦定理に代入して、∠Kについて解いて" */;
sL:sL,numer;
aK:rhs(sL[1]) /* "∠Kの値を求めると" */;
kakunin:"グラフを書いて、視覚的に確認";
r:R;
c:x^2+y^2=r^2;
lH:2*r*sind(aK),numer$lH2:2*r*sind(aK2),numer$lH3:2*r*sind(180-aK-aK2),numer$
pK:[[r*cosd(270-aK),r*sind(270-aK)],[r*cosd(270+aK),r*sind(270+aK)],[r*cosd(270+aK+2*aK2),r*sind(270+aK+2*aK2)],[r*cosd(270-aK),r*sind(270-aK)]] /* "()" */;
pP:[[r*cosd(270-aK),r*sind(270-aK)],[-r*cosd(270-aK),-r*sind(270-aK)],[r*cosd(270+aK),r*sind(270+aK)]] /* "()" */;
yL:fix(r/2+1)*2;xL:yL/2*3;
gr(T,c,x=0,pP,pK,-xL,xL,-yL,yL) /* "グラフ出力すると" */$
print(MONDAI," aK,aK2,aK3=",aK,aK2,180-aK-aK2) /* "()" */$
print(" lH=",lH," lH2=",lH2," lH3=",lH3) /* "()" */$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"△ABCで、c=6,外接円の半径R=3*sqrt(2)のとき、Cは" /* "(◆修正部分)" */;
T:"C/AB" /* "(◆修正部分)" */;
aK2:(60) /* "(◆修正部分)" */;
lH:(6) /* "辺の長さと(◆修正部分)" */;
R:(3*sqrt(2)) /* "外接円の半径を確認して、(◆修正部分)" */;


▼コマンド番号404
●例題5、練習19
正弦定理●●●●●●●●●●●●●●●●
kill(all) /* "404 正弦定理(Maxima on lineでは削除)" */$
MONDAI:"404 下の問題で";
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;
se:H/sind(K)=2*R /* "正弦定理" */;
MONDAI:"△ABCで、A=45°、B=60°、b=sqrt(6)のとき、aは" /* "(◆修正部分)" */;
T:"B/AC" /* "(◆修正部分)" */;
aK:(60) /* "∠Bと、(◆修正部分)" */;
lH:(sqrt(6)) /* "辺bの長さを確認して(◆修正部分)" */;
aK2:(45) /* "∠Aと、(◆修正部分)" */;
sL:solve(subst([H=(lH),K=(aK)],se),R) /* "lH,aKを正弦定理に代入して、Rについて解いて()" */;
r:rhs(sL[1]) /* "Rの値を求め" */;
sL:solve(subst([K=(aK2),R=r],se),H) /* "aK2,Rを正弦定理に代入して、lH2について解いて()" */;
lH2:rhs(sL[1]) /* "aの値を求め()" */;
kakunin:"グラフを書いて、視覚的に確認";
c:x^2+y^2=r^2;
lH:2*r*sind(aK),numer$lH2:2*r*sind(aK2),numer$lH3:2*r*sind(180-aK-aK2),numer$
pK:[[r*cosd(270-aK),r*sind(270-aK)],[r*cosd(270+aK),r*sind(270+aK)],[r*cosd(270+aK+2*aK2),r*sind(270+aK+2*aK2)],[r*cosd(270-aK),r*sind(270-aK)]] /* "()" */;
pP:[[r*cosd(270-aK),r*sind(270-aK)],[-r*cosd(270-aK),-r*sind(270-aK)],[r*cosd(270+aK),r*sind(270+aK)]] /* "()" */;
yL:fix(r/2+1)*2;xL:yL/2*3;
gr(T,c,x=0,pP,pK,-xL,xL,-yL,yL) /* "グラフ出力すると" */$
print(MONDAI," aK,aK2,aK3=",aK,aK2,180-aK-aK2) /* "()" */$
print(" lH=",lH," lH2=",lH2," lH3=",lH3) /* "()" */$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"△ABCで、B=45°、C=60°、b=4のとき、cは" /* "(◆修正部分)" */;
T:"B/CA" /* "(◆修正部分)" */;
aK:(45) /* "∠Bと、(◆修正部分)" */;
aK2:(60) /* "∠Cと、(◆修正部分)" */;
lH:(4) /* "辺bの長さを確認して(◆修正部分)" */;


▼コマンド番号405
●練習20
正弦定理●●●●●●●●●●●●●●●●
kill(all) /* "405 正弦定理(Maxima on lineでは削除)" */$
MONDAI:"405 下の問題で";
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;
se:H/sind(K)=2*R /* "正弦定理" */;
MONDAI:"400m離れた2地点A,Bと川の向こう側のC地点について、∠A=105°、∠B=30°のとき、AC間は" /* "(◆修正部分)" */;
T:"C/AB" /* "()" */;
aK2:(105) /* "∠Aと、()" */;
aK3:(30) /* "∠Bと、()" */;
aK:180-aK2-aK3;
lH:(400) /* "辺c=ABの長さを確認して()" */;
sL:solve(subst([H=(lH),K=(aK)],se),R) /* "lc,aCを正弦定理に代入して、Rについて解いて" */;
r:rhs(sL[1]) /* "Rの値を求め" */;
sL:solve(subst([K=(aK3),R=r],se),H) /* "aB,Rを正弦定理に代入して、Hについて解いて(◆修正部分2)" */;
lH3:rhs(sL[1]) /* "bの値を求め(◆修正部分2)" */;
kakunin:"グラフを書いて、視覚的に確認";
c:x^2+y^2=r^2;
lH:2*r*sind(aK),numer$lH2:2*r*sind(aK2),numer$lH3:2*r*sind(180-aK-aK2),numer$
pK:[[r*cosd(270-aK),r*sind(270-aK)],[r*cosd(270+aK),r*sind(270+aK)],[r*cosd(270+aK+2*aK2),r*sind(270+aK+2*aK2)],[r*cosd(270-aK),r*sind(270-aK)]] /* "()" */;
pP:[[r*cosd(270-aK),r*sind(270-aK)],[-r*cosd(270-aK),-r*sind(270-aK)],[r*cosd(270+aK),r*sind(270+aK)]] /* "()" */;
yL:fix(r/2+1)*2;xL:yL/2*3;
gr(T,c,x=0,pP,pK,-xL,xL,-yL,yL) /* "グラフ出力すると" */$
print(MONDAI," aK,aK2,aK3=",aK,aK2,180-aK-aK2) /* "()" */$
print(" lH=",lH," lH2=",lH2," lH3=",lH3) /* "()" */$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"400m離れた2地点A,Bと川の向こう側のC地点について、∠A=105°、∠B=30°のとき、BC間は" /* "(◆修正部分)" */;
sL:solve(subst([K=(aK2),R=r],se),H) /* "aA,Rを正弦定理に代入して、Hについて解いて(◆修正部分2)" */;
lH2:rhs(sL[1]) /* "aの値を求め(◆修正部分2)" */;


:
  5.余弦定理

   A 余弦定理
▼コマンド番号501
●練習21
余弦定理●●●●●●●●●●●●●●●●
kill(all) /* "501 余弦定理(Maxima on lineでは削除)" */$
MONDAI:"501 下の問題で";
ordergreat(x,y,z,a,b,c) /* "できるだけ、x,y,z,a,b,cの順に並べる" */;
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;
se:H/sind(K)=2*R /* "正弦定理" */;
MONDAI:"△ABCで、Aが鋭角、残りの2角のうち鋭角の方をBとして、CからABに垂線を下すと足DはAB上にある。" /* "(◆修正部分)" */;
MONDAI:"AB=c、AC=bとして、BCは" /* "(◆修正部分)" */;
e1:BC^2=CD^2+DB^2 /* "三平方の定理" */;
e2:CD=b*sinA /* "正弦の定義" */;
e3:DB=c-b*cosA /* "余弦の定義から" */;
e12:subst([e2,e3],e1);
e12:expand(e12);
e12:ratsubst(1-cosA^2,sinA^2,e12);
e12:rat(e12);

kakunin:"上式が解。以下、グラフを書いて、視覚的に確認";
aA:(35) /* "Aと、(◆修正時訂正)" */;
lb:(2) /* "b=ACと、(◆修正時訂正)" */;
lc:(4) /* "c=ABの長さを確認して(◆修正時訂正)" */;
La:sqrt(lb^2+lc^2-2*lb*lc*cosd(aA)) /* "b,c,Aを余弦定理に代入して、aについて解いて(◆修正時訂正)" */;
sL:solve(subst([H=La,K=aA],se),R) /* "a,Aを正弦定理に代入して、Rについて解いて(◆修正時訂正)" */;
Lr:rhs(sL[1]) /* "Rの値を求め" */;
la:La,numer;r:Lr,numer;
sL:solve(subst([H=lb,R=r],se),K),numer /* "b,Rを正弦定理に代入して、Bについて解いて(◆修正時訂正)" */;
aB:rhs(sL[1]) /* "Bを求めて(◆修正時訂正)" */;
aC:180-aA-aB /* "Cを求めて(◆修正時訂正)" */;
kakunin:"グラフを書いて、視覚的に確認";
c:x^2+y^2=r^2;
T:"C/AB,D";
aK:aC;aK2:aA;aK3:aB;lH:lc;lH2:la;lH3:lb;
lH:2*r*sind(aK),numer$lH2:2*r*sind(aK2),numer$lH3:2*r*sind(180-aK-aK2),numer$
zP2:[r*cosd(270-aK),r*sind(270-aK)];zP3:[r*cosd(270+aK),r*sind(270+aK)];zP:[r*cosd(270+aK+2*aK2),r*sind(270+aK+2*aK2)];
zP4:zP2+(zP3-zP2)*lH3*cosd(aK2)/lH;
pK:[zP2,zP3,zP,zP2],numer;
pP:[zP,zP4,zP2],numer;
yL:fix(r/2+1)*2;xL:yL/2*3;
gr(T,c,x=0,pP,pK,-xL,xL,-yL,yL) /* "グラフ出力すると" */$
print(MONDAI," aK,aK2,aK3=",aK,aK2,180-aK-aK2) /* "()" */$
print(" lH=",lH," lH2=",lH2," lH3=",lH3) /* "()" */$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"△ABCで、Aが鈍角、CからABに垂線を下すと足DはBAの延長上にある。" /* "(◆修正部分)" */;
MONDAI:"AB=c、AC=bとして、BCは" /* "(◆修正部分)" */;


▼コマンド番号502
●例題6・練習22
余弦定理●●●●●●●●●●●●●●●●
kill(all) /* "502 余弦定理(Maxima on lineでは削除)" */$
MONDAI:"502 下の問題で";
ordergreat(x,y,z,a,b,c) /* "できるだけ、x,y,z,a,b,cの順に並べる" */;
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;
se:H/sind(K)=2*R /* "正弦定理" */;
ce:H^2=H2^2+H3^2-2*H2*H3*cosd(K);
MONDAI:"△ABCで、b=sqrt(3),c=2,A=150°のとき、aは" /* "(◆修正部分)" */;
aA:(150) /* "Aと、(◆修正時訂正)" */;
lb:(sqrt(3)) /* "b=ACと、(◆修正時訂正)" */;
lc:(2) /* "c=ABの長さを確認して(◆修正時訂正)" */;
sL:solve(subst([H2=lb,H3=lc,K=aA],ce),H) /* "b,c,Aを余弦定理に代入して、aについて解いて(◆修正時訂正)" */;
L:abs(rhs(sL[1])) /* "aの値を求め" */;
la:L,numer /* "aを小数表示して(◆修正時訂正)" */;
sL:solve(subst([H=la,K=aA],se),R),numer /* "a,Aを正弦定理に代入して、Rについて解いて(◆修正時訂正)" */;
r:rhs(sL[1]) /* "Rの値を求め" */;
sL:solve(subst([H=lb,H2=lc,H3=la],ce),K),numer /* "b,c,aを余弦定理に代入して、Bについて解いて(◆修正時訂正)" */;
aB:rhs(sL[1]) /* "Bを求めて(◆修正時訂正)" */;
aC:180-aA-aB /* "Cを求めて(◆修正時訂正)" */;
kakunin:"グラフを書いて、視覚的に確認";
c:x^2+y^2=r^2;
T:"C/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)];
pK:[zP2,zP3,zP,zP2],numer;
pP:[zP3,zP],numer;
yL:fix(r/2+1)*2;xL:yL/2*3;
gr(T,c,x=0,pP,pK,-xL,xL,-yL,yL) /* "グラフ出力すると" */$
print(MONDAI," aK,aK2,aK3=",aK,aK2,180-aK-aK2) /* "()" */$
print(" lH=",lH," lH2=",lH2," lH3=",lH3) /* "()" */$
print("解は、",L) /* "()" */;


◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"△ABCで、a=3,b=2*sqrt(2),C=45°のとき、cは" /* "(◆修正部分)" */;


▼コマンド番号503
●練習23
余弦定理●●●●●●●●●●●●●●●●
kill(all) /* "503 余弦定理(Maxima on lineでは削除)" */$
MONDAI:"503 下の問題で";
ordergreat(x,y,z,a,b,c) /* "できるだけ、x,y,z,a,b,cの順に並べる" */;
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;
se:H/sind(K)=2*R /* "正弦定理" */;
ce:H^2=H2^2+H3^2-2*H2*H3*cosd(K);
MONDAI:"2地点A,Bと地点Cについて、CA=50m、CB=80m、∠C=60°のとき、ABは" /* "(◆修正部分)" */;
aC:(60) /* "Aと、(◆修正時訂正)" */;
la:(80) /* "a=CBと、(◆修正時訂正)" */;
lb:(50) /* "b=CAの長さを確認して(◆修正時訂正)" */;
sL:solve(subst([H2=la,H3=lb,K=aC],ce),H) /* "a,b,Cを余弦定理に代入して、cについて解いて(◆修正時訂正)" */;
L:abs(rhs(sL[1])) /* "cの値を求め" */;
lc:L,numer /* "cを小数表示して"*/;
sL:solve(subst([H=lc,K=aC],se),R),numer /* "c,Cを正弦定理に代入して、Rについて解いて(◆修正時訂正)" */;
r:rhs(sL[1]) /* "Rの値を求め" */;
sL:solve(subst([H=la,H2=lb,H3=lc],ce),K),numer /* "a,b,cを余弦定理に代入して、Aについて解いて(◆修正時訂正)" */;
aA:rhs(sL[1]) /* "Aを求めて(◆修正時訂正)" */;
aB:180-aA-aC /* "Bを求めて(◆修正時訂正)" */;
kakunin:"グラフを書いて、視覚的に確認";
c:x^2+y^2=r^2;
T:"C/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)];
pK:[zP2,zP3,zP,zP2],numer;
pP:[zP2,zP3],numer;
yL:fix(r/2+1)*2;xL:yL/2*3;
gr(T,c,x=0,pP,pK,-xL,xL,-yL,yL) /* "グラフ出力すると" */$
print(MONDAI," aK,aK2,aK3=",aK,aK2,180-aK-aK2) /* "()" */$
print(" lH=",lH," lH2=",lH2," lH3=",lH3) /* "()" */$
print("解は、",L) /* "()" */;

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"2地点A,Bと地点Cについて、CA=60m、CB=50m、∠C=120°のとき、ABは" /* "(◆修正部分)" */;
MONDAI2:"AB=c、AC=bとして、BCは" /* "(◆修正部分)" */;


   B 三角形の角の余弦を表す式
▼コマンド番号504
●例題7・練習24
三角形の角の余弦を表す式●●●●●●●●●●●●●●●●
kill(all) /* "504 三角形の角の余弦を表す式(Maxima on lineでは削除)" */$
MONDAI:"504 下の問題で";
ordergreat(x,y,z,a,b,c) /* "できるだけ、x,y,z,a,b,cの順に並べる" */;
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;
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) /* "角の余弦の式" */;
MONDAI:"△ABCで、a=3,b=2,c=sqrt(7)のとき、cosCの値とCは" /* "(◆修正部分)" */;
la:(3) /* "a=BCと、(◆修正時訂正)" */;
lb:(2) /* "b=CAと、(◆修正時訂正)" */;
lc:(sqrt(7)) /* "c=ABの長さを確認して(◆修正時訂正)" */;
sL:solve(subst([H=lc,H2=la,H3=lb],cKe),cosK) /* "c,a,bを角の余弦の式に代入して、cosCについて解いて(◆修正時訂正)" */;
L:rhs(sL[1]) /* "cosCの値を求め" */;
aC:acosd(L),numer /* "Cの値を求め" */;
lc:lc,numer /* "cを小数表示して"*/;
sL:solve(subst([H=lc,K=aC],se),R),numer /* "c,Cを正弦定理に代入して、Rについて解いて(◆修正時訂正)" */;
r:rhs(sL[1]) /* "Rの値を求め" */;
sL:solve(subst([H=la,H2=lb,H3=lc],cKe),cosK),numer /* "a,b,cを余弦定理に代入して、cosAについて解いて(◆修正時訂正)" */;
aA:acosd(rhs(sL[1])),numer /* "Aを求めて(◆修正時訂正)" */;
aB:180-aA-aC /* "Bを求めて(◆修正時訂正)" */;
kakunin:"グラフを書いて、視覚的に確認";
c:x^2+y^2=r^2;
T:"C/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)];
pK:[zP2,zP3,zP,zP2],numer;
pP:[zP],numer;
yL:fix(r/2+1)*2;xL:yL/2*3;
gr(T,c,x=0,pP,pK,-xL,xL,-yL,yL) /* "グラフ出力すると" */$
print(MONDAI," aK,aK2,aK3=",aK,aK2,180-aK-aK2) /* "()" */$
print(" lH=",lH," lH2=",lH2," lH3=",lH3) /* "()" */$
print(L,"が解") /* "()" */$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"△ABCで、a=1,b=sqrt(5),c=sqrt(2)のとき、cosBの値とBは" /* "(◆修正部分)" */;


:
  6.正弦定理と余弦定理の応用

   A 三角形の辺と角
▼コマンド番号601
●応用例題2
三角形の辺と角●●●●●●●●●●●●●●●●
kill(all) /* "601 三角形の辺と角(Maxima on lineでは削除)" */$
MONDAI:"601 下の問題で";
ordergreat(x,y,z,a,b,c) /* "できるだけ、x,y,z,a,b,cの順に並べる" */;
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;
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) /* "角の余弦の式" */;
MONDAI:"△ABCで、a=2,b=sqrt(3)+1,C=60°のとき、角A、Bと辺cは" /* "(◆修正部分)" */;
la:(2) /* "a=BCと、(◆修正時訂正)" */;
lb:(sqrt(3)+1) /* "b=CAと、(◆修正時訂正)" */;
aC:(60) /* "∠Cを確認して(◆修正時訂正)" */;
sL:solve(subst([H2=la,H3=lb,K=aC],ce),H) /* "a,b,Cを余弦定理の式に代入して、Hについて解いて(◆修正時訂正)" */;
L:abs(rhs(sL[1])) /* "cの値を求め" */;
lc:L,numer;
sL:solve(subst([H=la,H2=lb,H3=lc],ce),K) /* "b,c,aを余弦定理の式に代入して、Kについて解いて(◆修正時訂正)" */;
aA:rhs(sL[1]),numer /* "Aの値を求め" */;
sL:solve(subst([H=lc,K=aC],se),R),numer /* "c,Cを正弦定理に代入して、Rについて解いて(◆修正時訂正)" */;
r:rhs(sL[1]) /* "Rの値を求め" */;
aB:180-aA-aC /* "Bを求めて(◆修正時訂正)" */;
kakunin:"グラフを書いて、視覚的に確認";
c:x^2+y^2=r^2;
T:"C/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)];
pK:[zP2,zP3,zP,zP2],numer;
pP:[zP2,zP3],numer;
yL:fix(r/2+1)*2;xL:yL/2*3;
gr(T,c,x=0,pP,pK,-xL,xL,-yL,yL) /* "グラフ出力すると" */$
print(MONDAI," aK,aK2,aK3=",aK,aK2,180-aK-aK2) /* "()" */$
print(" lH=",lH," lH2=",lH2," lH3=",lH3) /* "()" */$
print(L,"が解") /* "()" */$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"△ABCで、a=sqrt(2),c=sqrt(3)+1,B=45°のとき、角A、Cと辺bは" /* "(◆修正部分)" */;


▼コマンド番号602
●応用例題3
三角形の辺と角●●●●●●●●●●●●●●●●
kill(all) /* "602 三角形の辺と角(Maxima on lineでは削除)" */$
MONDAI:"602 下の問題で";
ordergreat(x,y,z,a,b,c) /* "できるだけ、x,y,z,a,b,cの順に並べる" */;
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;
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) /* "角の余弦の式" */;
MONDAI:"△ABCで、sinA:sinB:sinC=7:5:3のとき、角Aは" /* "(◆修正部分)" */;
sinA:7*k /* "sinA=7*k、(◆修正時訂正)" */;
sinB:5*k /* "sinA=5*k、(◆修正時訂正)" */;
sinC:3*k /* "sinA=3*kとして、(◆修正時訂正)" */;
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;
vk:rhs(solve(sinA=sind(aA),k)[1]) /* "kの値を求め(◆修正時訂正)" */;
lR:1 /* "R=1として" */;
la:subst([k=vk,R=lR],la),numer /* "aを小数表示して"*/;
lb:subst([k=vk,R=lR],lb),numer /* "bを小数表示して"*/;
lc:subst([k=vk,R=lR],lc),numer /* "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:"C/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)];
pK:[zP2,zP3,zP,zP2],numer;
pP:[zP2,zP3],numer;
yL:fix(r/2+1)*2;xL:yL/2*3;
gr(T,c,x=0,pP,pK,-xL,xL,-yL,yL) /* "グラフ出力すると" */$
print(MONDAI," aK,aK2,aK3=",aK,aK2,180-aK-aK2) /* "()" */$
print(" lH=",lH," lH2=",lH2," lH3=",lH3) /* "()" */$
print(L,"が解") /* "()" */$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"△ABCで、sinA:sinB:sinC=8:7:3のとき、角Bは" /* "(◆修正部分)" */;


:
  7.三角形の面積

   A 正弦と三角形の面積
▼コマンド番号701
●例11・練習27
正弦と三角形の面積●●●●●●●●●●●●●●●●
kill(all) /* "701 正弦と三角形の面積(Maxima on lineでは削除)" */$
MONDAI:"701 下の問題で";
ordergreat(x,y,z,a,b,c) /* "できるだけ、x,y,z,a,b,cの順に並べる" */;
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;
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) /* "角の余弦の式" */;
Se:S=(H1*H2*sind(K))/2 /* "三角形の面積の式" */;
MONDAI:"△ABCで、a=3,b=4,C=120°のとき、面積Sは" /* "(◆修正部分)" */;
la:3 /* "a=3、(◆修正時訂正)" */;
lb:4 /* "b=4、(◆修正時訂正)" */;
aC:120 /* "C=120として、(◆修正時訂正)" */;
vTe:la /* "a=3を底辺Teとして、(◆修正時訂正)" */;
vTa:lb*sind(aC) /* "b*sin120を高さTaとして、(◆修正時訂正)" */;
L:vTe*vTa/2 /* "面積S=Te*Ta/2だから(◆修正時訂正)" */;
vS:L,numer;
lc:sqrt(rhs(subst([H2=la,H3=lb,K=aC],ce))),numer /* "c=ABを確認して、(◆修正時訂正)" */;
sL:solve(subst([H=la,H2=lb,H3=lc],ce),K) /* "a,b,cを余弦定理の式に代入して、K(A)について解いて(◆修正時訂正)" */;
aA:abs(rhs(sL[1])),numer /* "Aの値を求め" */;
lR:rhs(solve(subst([H=lc,K=aC],se),R)[1]) /* "Rの値を求め" */;
r:lR,numer /* "r=lRとして" */;
aB:180-aA-aC /* "Bを求めて" */;
kakunin:"グラフを書いて、視覚的に確認";
c:x^2+y^2=r^2;
T:"C/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)];
pK:[zP2,zP3,zP,zP2],numer;
pP:[zP2,zP3],numer;
yL:fix(r/2+1)*2;xL:yL/2*3;
gr(T,c,x=0,pP,pK,-xL,xL,-yL,yL) /* "グラフ出力すると" */$
print(MONDAI," aK,aK2,aK3=",aK,aK2,180-aK-aK2) /* "()" */$
print(" lH=",lH," lH2=",lH2," lH3=",lH3) /* "()" */$
print(L,"が解") /* "()" */$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"△ABCで、a=6,b=5,C=150°のとき、面積Sは" /* "(◆修正部分)" */;


   B 三角形の3辺の長さと面積
▼コマンド番号702
●例第8・練習28
三角形の3辺の長さと面積●●●●●●●●●●●●●●●●
kill(all) /* "702 三角形の3辺の長さと面積(Maxima on lineでは削除)" */$
MONDAI:"702 下の問題で";
ordergreat(x,y,z,a,b,c) /* "できるだけ、x,y,z,a,b,cの順に並べる" */;
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;
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) /* "角の余弦の式" */;
Se:S=(H1*H2*sind(K))/2 /* "三角形の面積の式" */;
MONDAI:"△ABCで、a=7,b=8,c=9のとき、cosA,sinA,面積Sは" /* "(◆修正部分)" */;
la:7 /* "a=7、(◆修正時訂正)" */;
lb:8 /* "b=8、(◆修正時訂正)" */;
lc:9 /* "c=9、(◆修正時訂正)" */;
cosA:rhs(subst([H=la,H2=lb,H3=lc],cKe)) /* "b,c,aを角の余弦の式に代入して、cosAは" */;
sinA:sqrt(1-cosA^2) /* "sinA>0、sinA^2+cosA^2=1より、sinAは" */;
vS:rhs(subst([H1=lb,H2=lc,sind(K)=sinA],Se)) /* "b,c,sinAを三角形の面積の式に代入して、面積は" */;
L:["cosA=",cosA,"sinA=",sinA,"vS=",vS];
kakunin:"グラフを書いて、視覚的に確認";
aA:abs(acosd(cosA)),numer /* "Aの値を求め" */;
sL:solve(subst([H=lc,H2=la,H3=lb],ce),K) /* "a,b,cを余弦定理の式に代入して、K(C)について解いて" */;
aC:abs(rhs(sL[1])),numer /* "Cの値を求め" */;
lR:rhs(solve(subst([H=lc,K=aC],se),R)[1]),numer /* "Rの値を求め" */;
r:lR /* "r=lRとして" */;
aB:180-aA-aC /* "Bを求めて" */;
kakunin:"グラフを書いて、視覚的に確認";
c:x^2+y^2=r^2;
T:"C/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)];
pK:[zP2,zP3,zP,zP2],numer;
pP:[zP2],numer;
yL:fix(r/2+1)*2;xL:yL/2*3;
gr(T,c,x=0,pP,pK,-xL,xL,-yL,yL) /* "グラフ出力すると" */$
print(MONDAI," aK,aK2,aK3=",aK,aK2,180-aK-aK2) /* "()" */$
print(" lH=",lH," lH2=",lH2," lH3=",lH3) /* "()" */$
print(L,"が解") /* "()" */$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"△ABCで、a=13,b=14,c=15のとき、cosA,sinA,面積Sは" /* "(◆修正部分)" */;


▼コマンド番号703
●研究
三角形の3辺の長さと内接円、面積●●●●●●●●●●●●●●●●
kill(all) /* "703 三角形の3辺の長さと内接円、面積(Maxima on lineでは削除)" */$
MONDAI:"703 下の問題で";
ordergreat(x,y,z,a,b,c) /* "できるだけ、x,y,z,a,b,cの順に並べる" */;
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;
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) /* "角の余弦の式" */;
Se:S=(H1*H2*sind(K))/2 /* "三角形の面積の式" */;
MONDAI:"△ABCで、a=7,b=8,c=9のとき、cosA,sinA,面積Sは" /* "(◆修正部分)" */;
la:7 /* "a=7、(◆修正時訂正)" */;
lb:8 /* "b=8、(◆修正時訂正)" */;
lc:9 /* "c=9、(◆修正時訂正)" */;
cosA:rhs(subst([H=la,H2=lb,H3=lc],cKe)) /* "b,c,aを角の余弦の式に代入して、cosAは" */;
sinA:sqrt(1-cosA^2) /* "sinA>0、sinA^2+cosA^2=1より、sinAは" */;
vS:rhs(subst([H1=lb,H2=lc,sind(K)=sinA],Se));
L:["cosA=",cosA,"sinA=",sinA,"vS=",vS];
aA:abs(acosd(cosA)),numer /* "Aの値を求め" */;
cosB:rhs(subst([H=lb,H2=lc,H3=la],cKe)) /* "c,a,bを角の余弦の式に代入して、cosBは" */;
aB:abs(acosd(cosB)),numer /* "Bの値を求め" */;
aC:180-aA-aB /* "Cの値を求め" */;
tanA2:tand(aA/2);
tanB2:tand(aB/2);
e:r/tanA2+r/tanB2=lc;
rL:solve(e,r),numer;
vr:rhs(rL[1]),numer;
c:x^2+y^2=vr^2;
T:"C/AB,D";
zP:[-vr/tanA2+lb*cosA,-vr+lb*sind(aA)];zP2:[-vr/tanA2,-vr];zP3:[vr/tanB2,-vr];zP4:[0,-vr];
pK:[zP2,zP3,zP,zP2],numer;
pP:[[0,0],zP2,zP3,[0,0],zP4],numer;
lR:la/sind(aA),numer;
aK:aC;aK2:aA;aK3:aB;lH:lc;lH2:la;lH3:lb;
yL:fix(lR/2+1)*2;xL:yL/2*3;
gr(T,c,x=0,pP,pK,-xL,xL,-yL,yL) /* "グラフ出力すると" */$
print(MONDAI," aK,aK2,aK3=",aK,aK2,180-aK-aK2) /* "()" */$
print(" lH=",lH," lH2=",lH2," lH3=",lH3) /* "()" */$
print(L,"が解") /* "()" */$
print("a=",la,"b=",lb,"c=",lc,"-> r=",vr,"S=",vr*(la+lb+lc)/2)$
print("S=",lb*lc*sind(aA)/2),numer$

◎上のMaximaコマンドを実行せよ。
◎最後2行のSの値について考察せよ。


▼コマンド番号704
●発展
ヘロンの公式●●●●●●●●●●●●●●●●
kill(all) /* "704 ヘロンの公式(Maxima on lineでは削除)" */$
MONDAI:"704 下の問題で";
ordergreat(x,y,z,a,b,c) /* "できるだけ、x,y,z,a,b,cの順に並べる" */;
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;
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) /* "角の余弦の式" */;
Se:S=(H1*H2*sind(K))/2 /* "三角形の面積の式" */;
MONDAI:"△ABCで、3辺がa,b,cのとき、面積Sは" /* "(◆修正部分)" */;
la:a /* "a、(◆修正時訂正)" */;
lb:b /* "b、(◆修正時訂正)" */;
lc:c /* "c、(◆修正時訂正)" */;
cosA:rhs(subst([H=la,H2=lb,H3=lc],cKe)) /* "b,c,aを角の余弦の式に代入して、cosAは" */;
sinA:sqrt(1-cosA^2) /* "sinAは" */;
S:1/2*lb*lc*sinA /* "面積Sは" */;
S:sqrt(factor(S^2));
e:2*s=la+lb+lc;
aL:solve(e,la);
S2:factor(subst(aL,S));
e1:s*(s-b)*(s-c);
e2:b+c-s;
bL:solve(e,lb);
e2:subst(bL,e2);
S:sqrt(e1*e2);

◎上のMaximaコマンドを実行せよ。
◎△ABCで、3辺がa,b,cのとき、s-a,s-b,s-cが常に正であるかどうかを、考察せよ。


:
  8.空間図形への応用

▼コマンド番号801
●応用例題4・練習29
空間図形への応用●●●●●●●●●●●●●●●●
kill(all) /* "801 空間図形への応用(Maxima on lineでは削除)" */$
MONDAI:"801 下の問題で";
ordergreat(x,y,z,a,b,c) /* "できるだけ、x,y,z,a,b,cの順に並べる" */;
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;
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) /* "角の余弦の式" */;
Se:S=(H1*H2*sind(K))/2 /* "三角形の面積の式" */;
MONDAI:"200m離れたA,B地点から山頂Pを見ると、∠PAB=60°、∠PBA=75°、Bでの仰角∠PBH=30°のとき、PとBの標高差PHは" /* "(◆修正部分)" */;
lc:200 /* "AB=c=200、(◆修正時訂正)" */;
aA:60 /* "∠A=60°、" */;
aB:75 /* "∠B=75°、" */;
aPBH:30 /* "∠PBH=30°、" */;
aC:180-aA-aB /* "∠P=45°(◆修正時訂正)" */;
lR:rhs(solve(subst([H=lc,K=aC],se),R)[1]) /* "c,∠C(P)を正弦定理に代入して、外接円の半径Rは" */;
la:rhs(solve(subst([R=lR,K=aA],se),H)[1]) /* "R,∠Aを正弦定理に代入して、PB=aは" */;
L:la*sind(30) /* "aと∠PBHからPHは(◆修正時訂正)" */;
vPH:L,numer;
vBH:la*cosd(30) /* "aと∠PBHからBHは(◆修正時訂正)" */;
r:lR;
pO:[0,0,0] /* "y軸上にHがあるように原点を決めて、" */;
xB:la*cosd(aB),numer;
xA:xB-lc /* "()" */;
pA:[xA,0,0] /* "x軸上にAと" */;
pB:[xB,0,0] /* "Bを決めて、" */;
vOP:la*sind(aB),numer /* "(◆修正時削除)" */;
vOH:sqrt(vOP^2-vPH^2),numer /* "(◆修正時訂正)" */;
pH:[0,vOH,0] /* "y軸上にHを決めて、" */;
pP:[0,vOH,vPH] /* "Pを決めて、" */;
la:la,numer;
vPH:vPH,numer;
vBH:vBH,numer;
PK:[pP,pA,pB,pP,pH,pB] /* "P,A,B,P,H,Bの順に点を赤線で結ぶようにして、(◆修正時訂正)" */;
PL:[pP,pO,pH,pA] /* "P,O,H,Aの順に点を結ぶようにして、(◆修正時訂正)" */;
wxdraw3d(title="P/AB,O,H",color=red,point_type =6,
/**/points_joined =true,point_size =1,points(PK),
/**/color=blue,point_type =6,
/**/points_joined =true,point_size =1,points(PL));
print(MONDAI)$
print(L,"が解")$
print("AB=",lc,"aPAB=",aA,"aPBA=",aB,"aPBH=",aPBH,"-> PB=",la,"PH=",vPH,"BH=",vBH) /* "(◆修正時訂正)" */$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"100m離れたA,B地点から気球Pの真下で、A,Bと同じ標高の地点Hを見ると、∠HAB=60°、∠HBA=75°、Bでの気球Pの仰角∠PBH=30°のとき、気球の高さPHは" /* "(◆修正部分)" */;


▼コマンド番号802
●応用例題5・正四面体の体積
空間図形への応用●●●●●●●●●●●●●●●●
kill(all) /* "802 空間図形への応用(Maxima on lineでは削除)" */$
MONDAI:"802 下の問題で";
ordergreat(x,y,z,a,b,c) /* "できるだけ、x,y,z,a,b,cの順に並べる" */;
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;
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) /* "角の余弦の式" */;
Se:S=(H1*H2*sind(K))/2 /* "三角形の面積の式" */;
MONDAI:"1辺2の正四面体ABCDで、CDの中点をMとして、cos∠ABM、△ABMの面積は" /* "()" */;
lH:2 /* "各辺=2、" */;
aK:60 /* "各面の角=60°、" */;
vAM:lH*sind(aK);
vBM:vAM;
cosABM:rhs(subst([H=vAM,H2=vBM,H3=lH],cKe));
aABM:acosd(cosABM);
S:rhs(subst([H1=lH,H2=vBM,K=aABM],Se));

pM:[0,0,0];
pC:[-lH/2,0,0];
pD:[lH/2,0,0];
pB:[0,lH*sqrt(3)/2,0];
pA:[0,lH*sqrt(3)/2-lH*cosABM,lH*sind(aABM)];
pN:[0,lH*sqrt(3)/2-lH*cosABM,0];
PL:[pC,pD,pB,pC,pA,pB,pA,pD];
PKL:[pA,pM,pB,pA,pN];
xm:-lH/2-1;
xM:abs(xm);
ym:0;
yM:ym+0.7*(xM-xm);
zm:0;
zM:zm+0.41*(xM-xm);
wxdraw3d(title="A/CDB,M,N",
/**/xrange=[xm,xM],yrange=[ym,yM],zrange=[zm,zM],
/**/color=green,
/**/implicit(y^2+z^2=0,x,xm,xM,y,ym,yM,z,zm,zM),
/**/implicit(z^2+x^2=0,x,xm,xM,y,ym,yM,z,zm,zM),
/**/implicit(x^2+y^2=0,x,xm,xM,y,ym,yM,z,zm,zM),
/**/color=blue,point_type =6,
/**/points_joined =true,point_size =1,points(PL),
/**/color=red,point_type =6,
/**/points_joined =true,point_size =1,points(PKL));
print(MONDAI) /* "()" */$ print("KakuHen=",lH,"KakuKaku=",aK,"-> cosABM=",cosABM,"sABM=",S) /* "()" */$

◎上のMaximaコマンドを実行せよ。
◎最後の出力結果から、正四面体の体積を考察せよ。


▼コマンド番号803
●練習30
空間図形への応用●●●●●●●●●●●●●●●●
kill(all) /* "803 空間図形への応用(Maxima on lineでは削除)" */$
MONDAI:"803 下の問題で";
ordergreat(x,y,z,a,b,c) /* "できるだけ、x,y,z,a,b,cの順に並べる" */;
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;
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) /* "角の余弦の式" */;
Se:S=(H1*H2*sind(K))/2 /* "三角形の面積の式" */;
MONDAI:"AB=3,AD=2,AE=1の直方体ABCD-EFGHで、cos∠BED、△BEDの面積は" /* "(◆修正部分)" */; lb:3 /* "AB=3、" */;
ld:2 /* "AD=2、" */;
le:1 /* "AE=1、" */;
aK:90 /* "各面の角=90°、" */;
lED:sqrt(1+4) /* "三平方の定理により、" */;
lEB:sqrt(1+9);
lDB:sqrt(4+9) /* "三平方の定理により、" */;
cosBED:rhs(subst([H=lDB,H2=lED,H3=lEB],cKe)) /* "ED,EB,DBを角の余弦の式に代入して" */;
S:rhs(subst([H1=lED,H2=lEB,K=acosd(cosBED)],Se)) /* "ED,EB,aBEDを面積の式に代入して" */;
pE:[-lb/2,0,0];
pF:[lb/2,0,0];
pG:[lb/2,2,0];
pH:[-lb/2,2,0];
pA:[-lb/2,0,1];
pB:[lb/2,0,1];
pC:[lb/2,2,1];
pD:[-lb/2,2,1];
pM:[-lb/2+4/13*lb,2-4/13*ld,1];
PL:[pE,pF,pG,pH,pE,pA,pB,pC,pD,pA,pE,pF,pB,pC,pG,pH,pD];
PKL:[pE,pB,pD,pE,pM];
xm:-lb/2-1;
xM:abs(xm);
ym:0;
yM:ym+0.7*(xM-xm);
zm:0;
zM:zm+0.41*(xM-xm);
wxdraw3d(title="ABCD/EFGH,M",
/**/xrange=[xm,xM],yrange=[ym,yM],zrange=[zm,zM],
/**/color=green,
/**/implicit(y^2+z^2=0,x,xm,xM,y,ym,yM,z,zm,zM),
/**/implicit(z^2+x^2=0,x,xm,xM,y,ym,yM,z,zm,zM),
/**/implicit(x^2+y^2=0,x,xm,xM,y,ym,yM,z,zm,zM),
/**/color=blue,point_type =6,
/**/points_joined =true,point_size =1,points(PL),
/**/color=red,point_type =6,
/**/points_joined =true,point_size =1,points(PKL));
print("AB=",lb,"AD=",ld,"AE=",le,"-> cosBED=",cosBED,"sBED=",S) /* "(◆修正時訂正)" */$
◎上のMaximaコマンドを実行せよ。
◎最後の出力結果から、Eから対角線BDに下した垂線の足Mまでの長さEMについて考察せよ。


:
  補充問題・章末問題

▼コマンド番号30201
●補充問題5
三角形の辺と鋭角・直角・鈍角●●●●●●●●●●●●●●●●
kill(all) /* "30201 三角形の辺と鋭角・直角・鈍角(Maxima on lineでは削除)" */$
MONDAI:"917 下の問題で";
ordergreat(x,y,z,a,b,c) /* "できるだけ、x,y,z,a,b,cの順に並べる" */;
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;
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) /* "角の余弦の式" */;
Se:S=(H1*H2*sind(K))/2 /* "三角形の面積の式" */;
MONDAI:"△ABCで、3辺がa=9,b=4*sqrt(2),c=7のとき、∠Aは(鋭角、直角、鈍角)" /* "(◆修正部分)" */;
la:9 /* "a、(◆修正時訂正)" */;
lb:4*sqrt(2) /* "b、(◆修正時訂正)" */;
lc:7 /* "c、(◆修正時訂正)" */;
cosA:rhs(subst([H2=lb,H3=lc,H=la],cKe)) /* "b,c,aを角の余弦の式に代入して、cosAは" */;
aA:abs(acosd(cosA)),numer /* "Aの値を求め" */;
cosB:rhs(subst([H2=lc,H3=la,H=lb],cKe)) /* "c,a,bを角の余弦の式に代入して、cosBは" */;
aB:abs(acosd(cosB)),numer /* "Bの値を求め" */;
aC:180-aA-aB /* "Cの値を求め" */;
lR:rhs(solve(subst([H=la,K=aA],se),R)[1]),numer /* "外接円の半径を求め" */;
c:x^2+y^2=lR^2;
T:"C/AB"; pP:[[lR*cosd(270-aC),lR*sind(270-aC)],[lR*cosd(270+aC),lR*sind(270+aC)],[lR*cosd(270-aC-2*aB),lR*sind(270-aC-2*aB)],[lR*cosd(270-aC),lR*sind(270-aC)]],numer;
ym:-lR-1;
yM:lR+1;
xm:3/2*ym;
xM:3/2*yM;
gr(T,c,x=0,pP,[[0,0]],xm,xM,ym,yM)$
print(MONDAI);
print("a=",la,"b=",lb,"c=",lc,"-> R=",lR,"A=",aA)$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"△ABCで、3辺がa=2*sqrt(10),b=4,c=4のとき、∠Aは(鋭角、直角、鈍角)" /* "(◆修正部分)" */;


▼コマンド番号30202
●補充問題7
三角形の角の二等分線●●●●●●●●●●●●●●●●
kill(all) /* "30202 三角形の角の二等分線(Maxima on lineでは削除)" */$
MONDAI:"30202 下の問題の△ABCにおいて";
ordergreat(x,y,z,a,b,c) /* "できるだけ、x,y,z,a,b,cの順に並べる" */;
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;
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) /* "角の余弦の式" */;
Se:S=(H1*H2*sind(K))/2 /* "三角形の面積の式" */;
MONDAI:"△ABCで、3辺がAB=5,AC=3,∠A=120°のとき、∠Aの二等分線と辺BCの交点DとAの距離は" /* "(◆修正部分)" */;
lb:3 /* "AC、" */;
lc:5 /* "AB、" */;
aA:120 /* "∠A、(◆修正時訂正)" */;
la:abs(rhs(solve(subst([H2=lb,H3=lc,K=aA],ce),H)[1])) /* "b,c,Aを余弦定理に代入して、aは" */;
lDB:la*(lc/(lb+lc)) /* "Aの二等分線ADでCD:BD=CA:ABとなるので、DBは" */;
cosB:rhs(subst([H2=lc,H3=la,H=lb],cKe)) /* "c,a,bを角の余弦の式に代入して、cosBは" */;
lAD:sqrt(rhs(subst([H2=lc,H3=la*5/8,cosd(K)=cosB],ce))) /* "c,a*5/8,cosBを余弦定理に代入して、ADは" */;
aB:abs(acosd(cosB)),numer /* "Bの値を求め" */;
aC:180-aA-aB /* "Cの値を求め" */;
lR:rhs(solve(subst([H=la,K=aA],se),R)[1]),numer /* "外接円の半径Rを求め" */;
c:x^2+y^2=lR^2;
T:"C/AB,D";
pA:[lR*cosd(270-aC),lR*sind(270-aC)];
pB:[lR*cosd(270+aC),lR*sind(270+aC)];
pC:[lR*cosd(270-aC-2*aB),lR*sind(270-aC-2*aB)];
pD:pB*lb/(lb+lc)+pC*(lc/(lb+lc));
pK:[pA,pB,pC,pA],numer;
pP:[pA,pD],numer;
ym:-lR-1;
yM:lR+1;
xm:3/2*ym;
xM:3/2*yM;
gr(T,c,x=0,pP,pK,xm,xM,ym,yM)$
print(MONDAI);
print("b=",lb,"c=",lc,"A=",aA,"-> a=",la,"CD=",la-lDB,"DB=",lDB,"AD=",lAD)$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"△ABCで、3辺がAB=5,AC=3,∠A=60°のとき、∠Aの二等分線と辺BCの交点DとAの距離は" /* "(◆修正部分)" */;


▼コマンド番号30203
●章末問題1
三角形の底辺上の点での仰角と高さ●●●●●●●●●●●●●●●●
kill(all) /* "30203 三角形の底辺上の点での仰角と高さ(Maxima on lineでは削除)" */$
MONDAI:"30203 下の問題の△ABCにおいて";
ordergreat(x,y,z,a,b,c) /* "できるだけ、x,y,z,a,b,cの順に並べる" */;
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;
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) /* "角の余弦の式" */;
Se:S=(H1*H2*sind(K))/2 /* "三角形の面積の式" */;
MONDAI:"△PAHで、∠H=90°、∠A=45°、底辺AH上のAB=10mの点Bでの仰角∠PBH=60°のとき、PHは" /* "(◆修正部分)" */;
aA:45 /* "∠A、(◆修正時訂正)" */;
aPBH:60 /* "∠PBH、(◆修正時訂正)" */;
lAB:10 /* "AB、" */;
BH:PH*tand(90-aPBH) /* "PHを未知数として、BHは" */;
AH:PH*tand(90-aA) /* "PHを未知数として、AHは" */;
e:lAB=AH-BH /* "PHを未知数として、lAB=AH-BHとおいて、" */;
lPH:rhs(solve(e,PH)[1]) /* "方程式を解いて、PHは" */;
lPH:rat(lPH),algebraic:true;
la:lPH;
aH:90;
aP:180-aA-aH;
lR:rhs(solve(subst([H=la,K=aA],se),R)[1]),numer /* "外接円の半径Rを求め" */;
c:x^2+y^2=lR^2;
T:"P/AH,B";
pA:[lR*cosd(270-aP),lR*sind(270-aP)];
pB:pA+[10,0];
pH:[lR*cosd(270+aP),lR*sind(270+aP)];
PP:[lR*cosd(270-aP-2*aH),lR*sind(270-aP-2*aH)];
pK:[pA,pH,PP,pA],numer;
pP:[pB,PP],numer;
ym:-lR-1;
yM:lR+1;
xm:3/2*ym;
xM:3/2*yM;
gr(T,c,x=0,pP,pK,xm,xM,ym,yM)$
print(MONDAI)$
print("A=",aA,"aPBH=",aPBH,"AB=",lAB,"-> PH=",la,"BH=",la-lAB)$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"△PAHで、∠H=90°、∠A=30°、底辺AH上のAB=10mの点Bでの仰角∠PBH=45°のとき、PHは" /* "(◆修正部分)" */;


▼コマンド番号30204
●章末問題2
台形の面積●●●●●●●●●●●●●●●●
kill(all) /* "30204 台形の面積(Maxima on lineでは削除)" */$
MONDAI:"30204 下の問題の△ABCにおいて";
ordergreat(x,y,z,a,b,c) /* "できるだけ、x,y,z,a,b,cの順に並べる" */;
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;
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) /* "角の余弦の式" */;
Se:S=(H1*H2*sind(K))/2 /* "三角形の面積の式" */;
MONDAI:"AD//BCの台形ABCDで、AB=2,BC=4,CD=sqrt(7),DA=1のとき、面積Sは" /* "(◆修正部分)" */;
SUJIMITI:"BC上にAB//DEとなるEをとり、△DECの面積S1と平行四辺形ABEDの面積S2の和を考える" /* "(◆修正部分)" */;
lEC:3 /* "EC、(◆修正時訂正)" */;
lCD:sqrt(7) /* "CD(◆修正時訂正)" */;
lDE:2 /* "DE(◆修正時訂正)" */;
lDA:1 /* "DA(◆修正時訂正)" */;
cosDEC:rhs(subst([H2=lDE,H3=lEC,H=lCD],cKe)) /* "DE,EC,CDを角の余弦の式に代入して、cosDECは" */;
sinDEC:sqrt(1-cosDEC^2) /* "cosDECから、sinDECは" */;
sS1:rhs(subst([H1=lDE,H2=lEC,sind(K)=sinDEC],Se)) /* "DE,EC,sinDECを三角形の面積の公式に代入して、面積S1は" */;
sS2:lDA*lDE*sinDEC /* "平行四辺形は、底辺AD、高さDE*sinDECだから、面積S2は" */;
sS:sS1+sS2 /* "S=S1+S2だから、面積Sは" */;
sS:ratsimp(sS),algebraic:true;
aDEC:acosd(cosDEC),numer;
aC:acosd(rhs(subst([H2=lEC,H3=lCD,H=lDE],cKe))),numer;
aCDE:180-aDEC-aC; lR:rhs(solve(subst([H=lDE,K=aC],se),R)[1]),numer /* "△DECの外接円の半径Rを求め" */;
c:x^2+y^2=lR^2;
pE:[lR*cosd(270-aCDE),lR*sind(270-aCDE)];
pC:[lR*cosd(270+aCDE),lR*sind(270+aCDE)];
pD:[lR*cosd(270-aCDE-2*aC),lR*sind(270-aCDE-2*aC)];
pA:pD-[1,0];
pB:pE-[1,0];
pK:[pA,pB,pC,pD,pA],numer;
pP:[pE,pD],numer;
ym:-lR-1;
yM:lR+1;
xm:3/2*ym;
xM:3/2*yM;
T:"A/BC/D,E";
gr(c,x=0,pP,pK,xm,xM,ym,yM)$
print(MONDAI)$
print("AB=",lDE,"BC=",lEC+1,"CD=",lCD,"DA=",lDA,"-> aDEC=",aDEC,"S1=",sS1,"S2=",sS2,"S=",sS)$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"AD//BCの台形ABCDで、AB=5,BC=7,CD=sqrt(13),DA=1のとき、面積Sは" /* "(◆修正部分)" */;


▼コマンド番号30205
●章末問題3
三角形の2角と1辺から●●●●●●●●●●●●●●●●
kill(all) /* "30205 三角形の2角と1辺から(Maxima on lineでは削除)" */$
MONDAI:"30205 下の問題の△ABCにおいて";
ordergreat(x,y,z,a,b,c) /* "できるだけ、x,y,z,a,b,cの順に並べる" */;
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;
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) /* "角の余弦の式" */;
Se:S=(H1*H2*sind(K))/2 /* "三角形の面積の式" */;
MONDAI:"△ABCで、a=sqrt(6),B=15°,C=45°のとき、c,b,sin15=sinBは" /* "(◆修正部分)" */;
la:sqrt(6) /* "a、" */;
aB:15 /* "B、(◆修正時訂正)" */;
aC:45 /* "C、(◆修正時訂正)" */;
aA:180-aB-aC;
lR:rhs(solve(subst([H=la,K=aA],se),R)[1]) /* "a,Aを正弦定理に代入して、Rは" */;
lR:radcan(lR);
lc:rhs(solve(subst([K=aC,R=lR],se),H)[1]) /* "C,Rを正弦定理に代入して、cは" */;
lb:rhs(solve(subst([H2=la,H=lc,K=aC],ce),H3)[1]) /* "a,c,Cを余弦定理に代入して、小さい方がb" */;
sinB:rhs(solve(subst([H=lb,R=lR],se),sind(K))[1]) /* "b,Rを正弦定理に代入して、sinBは" */;
sinB:rat(sinB),algebraic:true;
KAKUNIN:"図で確認";
c:x^2+y^2=lR^2;
T:"A/BC";
pB:[lR*cosd(270-aA),lR*sind(270-aA)];
pC:[lR*cosd(270+aA),lR*sind(270+aA)];
pA:[lR*cosd(270-aA-2*aC),lR*sind(270-aA-2*aC)];
pP:[pB,pC,pA,pB],numer;
pK:[pA],numer;
ym:-lR-1;
yM:lR+1;
xm:3/2*ym;
xM:3/2*yM;
gr(T,c,x=0,pK,pP,xm,xM,ym,yM)$
print(MONDAI)$
print("a=",la,"B=",aB,"C=",aC,"-> c=",lc,"b=",lb,"sinB=",sinB)$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"△ABCで、a=sqrt(6),B=75°,C=60°のとき、c,b,sinB=sin75は" /* "(◆修正部分)" */;

▼コマンド番号30206
●章末問題4
三角形の1角1辺と2辺の比から●●●●●●●●●●●●●●●●
kill(all) /* "30206 三角形の1角1辺と2辺の比から(Maxima on lineでは削除)" */$
MONDAI:"30206 下の問題の△ABCにおいて";
ordergreat(x,y,z,a,b,c) /* "できるだけ、x,y,z,a,b,cの順に並べる" */;
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;
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) /* "角の余弦の式" */;
Se:S=(H1*H2*sind(K))/2 /* "三角形の面積の式" */;
MONDAI:"△ABCで、A=60°,a:b=2:1,c=6のとき、sinB,bは" /* "(◆修正部分)" */;
aA:60 /* "A、" */;
la:2*k /* "a、(◆修正時訂正)" */;
lb:k /* "b、(◆修正時訂正)" */;
lc:6 /* "C、(◆修正時訂正)" */;
nkL:solve(subst([H2=lb,H3=lc,H=la,K=aA],ce),k);
nk:rhs(nkL[2]) /* "kは正の値だから、(◆修正時訂正)" */;
la:subst(k=nk,la);
lb:subst(k=nk,lb);
lR:rhs(solve(subst([H=la,K=aA],se),R)[1]);
sinB:rhs(solve(subst([H=lb,R=lR],se),sind(K))[1]);
sinB:rat(sinB),algebraic:true;
aB:asind(sinB),numer;
aC:180-aA-aB,numer;
lR:rhs(solve(subst([H=la,K=aA],se),R)[1]),numer /* "a,Aを正弦定理に代入して、Rは" */;
KAKUNIN:"図で確認";
c:x^2+y^2=lR^2;
T:"C/AB";
pA:[lR*cosd(270-aC),lR*sind(270-aC)];
pB:[lR*cosd(270+aC),lR*sind(270+aC)];
pC:[lR*cosd(270-aC-2*aB),lR*sind(270-aC-2*aB)];
pP:[pA,pB],numer;
pK:[pB,pC,pA],numer;
ym:-lR-1;
yM:lR+1;
xm:3/2*ym;
xM:3/2*yM;
gr(T,c,x=0,pP,pK,xm,xM,ym,yM)$
print(MONDAI)$ print("c=",lc,"A=",aA,"a/b=",la/lb,"-> sinB=",sinB,"b=",lb,"a=",la)$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"△ABCで、A=60°,a:b=3:2,c=6のとき、sinB,bは" /* "(◆修正部分)" */;


▼コマンド番号30207
●章末問題5
三角形の1角と2辺から●●●●●●●●●●●●●●●●
kill(all) /* "30207 三角形の1角と2辺から(Maxima on lineでは削除)" */$
MONDAI:"30207 下の問題の△ABCにおいて";
ordergreat(x,y,z,a,b,c) /* "できるだけ、x,y,z,a,b,cの順に並べる" */;
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;
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) /* "角の余弦の式" */;
Se:S=(H1*H2*sind(K))/2 /* "三角形の面積の式" */;
MONDAI:"△ABCで、C=30°,b=2*sqrt(3),c=2のとき、a,A,Bは" /* "(◆修正部分)" */;
aC:30 /* "A、" */;
lb:2*sqrt(3) /* "b、(◆修正時訂正)" */;
lc:2 /* "c、(◆修正時訂正)" */;
lR:rhs(solve(subst([H=lc,K=aC],se),R)[1]) /* "c、Cを正弦定理に代入して、Rは(◆修正時訂正)" */;
sinB:rhs(solve(subst([H=lb,R=lR],se),sind(K))[1]) /* "b、Rを正弦定理に代入して、sinBは(◆修正時訂正)" */;
aL:solve(subst([H2=lb,H=lc,K=aC],ce),H3) /* "b,c,Cを余弦定理に代入して、aは(◆修正時訂正)" */;
la1:rhs(aL[1]);
aA1:acosd(rhs(subst([H2=lb,H3=lc,H=la1],cKe)));
aB1:180-aC-aA1;
la2:rhs(aL[2]);
aA2:acosd(rhs(subst([H2=lb,H3=lc,H=la2],cKe)));
aB2:180-aC-aA2;

KAKUNIN:"図で確認";
c:x^2+y^2=lR^2;
T:"C1/AB,C2/AB";
pA:[lR*cosd(270-aC),lR*sind(270-aC)];
pB:[lR*cosd(270+aC),lR*sind(270+aC)];
pC1:[lR*cosd(270-aC-2*aB1),lR*sind(270-aC-2*aB1)];
pC2:[lR*cosd(270-aC-2*aB2),lR*sind(270-aC-2*aB2)];
pP:[pA,pB,pC1,pA],numer;
pK:[pA,pC2,pB],numer;
ym:-lR-1;
yM:lR+1;
xm:3/2*ym;
xM:3/2*yM;
gr(T,c,x=0,pP,pK,xm,xM,ym,yM)$
print(MONDAI)$
print("b=",lb,"c=",lc,"C=",aC,"-> a1=",la1,"A1=",aA1,"B1=",aB1)$
print("b=",lb,"c=",lc,"C=",aC,"-> a2=",la2,"A2=",aA2,"B2=",aB2)$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"△ABCで、C=30°,b=4,c=3のとき、aは" /* "(◆修正部分)" */;


▼コマンド番号30208
●章末問題6
円に内接する四角形●●●●●●●●●●●●●●●●
kill(all) /* "30208 円に内接する四角形(Maxima on lineでは削除)" */$
MONDAI:"30208 下の問題の△ABCにおいて";
ordergreat(x,y,z,a,b,c) /* "できるだけ、x,y,z,a,b,cの順に並べる" */;
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;
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) /* "角の余弦の式" */;
Se:S=(H1*H2*sind(K))/2 /* "三角形の面積の式" */;
MONDAI:"円に内接する四角形ABCDで、AB=2,BC=1,CD=3,DA=3のとき、cosA,四角形ABCDの面積Sは" /* "(◆修正部分)" */;
lAB:2 /* "AB、(◆修正時訂正)" */;
lBC:1 /* "BC、(◆修正時訂正)" */;
lCD:3 /* "CD、(◆修正時訂正)" */;
lDA:3 /* "DA、(◆修正時訂正)" */;
aA:t /* "Aをtとして、" */;
aC:180-t /* "円に内接するからaCは、" */;
lBD21:rhs(subst([H2=lAB,H3=lDA,K=t],ce)) /* "△DABでの余弦定理より、BD^2は" */;
lBD22:rhs(subst([H2=lBC,H3=lCD,K=180-t],ce)) /* "△BCDでの余弦定理より、BD^2は" */;
lBD22:trigrat(lBD22) /* "lBD22を簡約して" */;
costL:solve(lBD21=lBD22,cosd(t)) /* "lBD21とlBD22が等しいので、costは" */;
cost:rhs(costL[1]);
sint:abs(rhs(solve(sint^2+cost^2=1,sint)[1]));
S1:rhs(subst([H1=lAB,H2=lDA,sind(K)=sint],Se)) /* "lAB,lDA,aAを三角形の面積の式に代入して、△DABの面積S1は" */;
S2:rhs(subst([H1=lBC,H2=lCD,sind(K)=sint],Se)) /* "lBC,lCD,aCを三角形の面積の式に代入して、△BCDの面積S1は" */;
S:S1+S2 /* "S1,S2から四角形ABCDの面積Sは" */;

KAKUNIN:"図で確認";
lBD:sqrt(subst(cosd(t)=cost,lBD21)) /* "lBD21にcostを代入して、lBDは" */;
aA:acosd(cost) /* "costから、Aは" */;
aC:180-aA /* "Aから、対角Cは" */;
cosaADB:subst([H2=lBD,H3=lDA,H=lAB],cKe),numer /* "lBD,lCD,lBCを角の余弦の式に代入して、cos(aADB)は" */;
cosaCDB:subst([H2=lCD,H3=lBD,H=lBC],cKe),numer /* "lBD,lCD,lBCを角の余弦の式に代入して、aCDBは" */;
aBDA:(acosd(rhs(cosaADB))),numer /* "lBD,lCD,lBCを角の余弦の式に代入して、aADBは" */;
aCDB:(acosd(rhs(cosaCDB))),numer /* "lBD,lCD,lBCを角の余弦の式に代入して、aCDBは" */;
aD:aBDA+aCDB;
aB:180-aD;
lR:rhs(solve(subst([H=lBD,sind(K)=sint],se),R)[1]) /* "lBD,sintを正弦定理に代入して、Rは" */;

c:x^2+y^2=lR^2;
T:"A/BD,B/CD";
aDBC:180-aC-aCDB;aABD:180-aA-aBDA;
pC:[lR*cosd(270-aDBC),lR*sind(270-aDBC)],numer;
pD:[lR*cosd(270+aDBC),lR*sind(270+aDBC)],numer;
pB:[lR*cosd(270-aDBC-2*aCDB),lR*sind(270-aDBC-2*aCDB)],numer;
pA:[lR*cosd(270-aDBC-2*aCDB-2*aBDA),lR*sind(270-aDBC-2*aCDB-2*aBDA)],numer;
pK:[pB,pC,pD,pA,pB],numer;
pP:[pB,pD],numer;
ym:-lR-1;
yM:lR+1;
xm:3/2*ym;
xM:3/2*yM;
gr(T,c,x=0,pP,pK,xm,xM,ym,yM)$
print("AB=",lAB,"BC=",lBC,"CD=",lCD,"DA=",lDA,"-> cost=",cost,"S=",S,"R=",lR,"BD=",lBD)$

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"円に内接する四角形ABCDで、AB=1,BC=3,CD=3,DA=2のとき、cosA,四角形ABCDの面積Sは" /* "(◆修正部分)" */;


▼コマンド番号30209
●章末問題7
直方体の切断●●●●●●●●●●●●●●●●
kill(all) /* "30209 直方体の切断(Maxima on lineでは削除)" */$
MONDAI:"30209 下の問題の△ABCにおいて";
ordergreat(x,y,z,a,b,c) /* "できるだけ、x,y,z,a,b,cの順に並べる" */;
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;
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) /* "角の余弦の式" */;
Se:S=(H1*H2*sind(K))/2 /* "三角形の面積の式" */;
MONDAI:"直方体ABCD-EFGHでAE=sqrt(10),AF=8,AH=10のとき、△AFHの面積S、Eから△AFHに下した垂線EPの長さは" /* "(◆修正部分)" */;
le:sqrt(10) /* "AE=r(10)、" */;
lAF:8 /* "AF=8、" */;
lAH:10 /* "AH=10、" */;
aK:90 /* "各面の角=90°、" */;
lb:sqrt(lAF^2-le^2) /* "三平方の定理により、" */;
ld:sqrt(lAH^2-le^2);
lFH:sqrt(lb^2+ld^2) /* "三平方の定理により、" */;
cosBED:rhs(subst([H2=lAF,H3=lAH,H=lFH],cKe)) /* "ED,EB,DBを角の余弦の式に代入して" */;
S:rhs(subst([H1=lAF,H2=lAH,K=acosd(cosBED)],Se)) /* "ED,EB,aBEDを面積の式に代入して" */;
lEP:lb*ld/2*le/3/S;
lAM:lb*ld/lFH;
lHM:ld^2/lFH;
lFM:lb^2/lFH;
lEM:lb*ld/lFH;
lEP:le*lEM/lAM;
lAP:le^2/lAM;
lMP:lEM^2/lAM;
pE:[-ld/2,lb,0],numer;
pF:[-ld/2,0,0],numer;
pG:[ld/2,0,0],numer;
pH:[ld/2,lb,0],numer;
pA:[-ld/2,lb,le],numer;
pB:[-ld/2,0,le],numer;
pC:[ld/2,0,le],numer;
pD:[ld/2,lb,le],numer;
pM:(pF*lHM+pH*lFM)/(lHM+lFM),numer;
pP:(pA*lMP+pM*lAP)/(lMP+lAP),numer;
PL:[pE,pF,pG,pH,pE,pA,pB,pF,pB,pC,pD,pH,pD,pA,pF,pH,pA,pE,pM,pA,pP,pE,pF,pG,pC];
xm:-ld/2-1;
xM:abs(xm);
ym:0;
yM:ym+0.7*(xM-xm);
zm:0;
zM:zm+0.41*(xM-xm);
wxdraw3d(title="ABCD/EFGH,M,P",
/*....*/xrange=[xm,xM],yrange=[ym,yM],zrange=[zm,zM],
/*....*/view=[45,60],
/*....*/color=red,
/*....*/implicit(y^2+z^2=0,x,xm,xM,y,ym,yM,z,zm,zM),
/*....*/implicit(z^2+x^2=0,x,xm,xM,y,ym,yM,z,zm,zM),
/*....*/implicit(x^2+y^2=0,x,xm,xM,y,ym,yM,z,zm,zM),
/*....*/color=blue,point_type =6,
/*....*/points_joined =true,point_size =1,points(PL));
print("AB=",lb,"AD=",ld,"AE=",le,"-> cosBED=",cosBED,"sBED=",S) /* "(◆修正時訂正)" */$


◎上のMaximaコマンドを実行せよ。
◎最後の出力結果から、Eから対角線BDに下した垂線の足Mまでの長さEMについて考察せよ。


▼コマンド番号30210
●章末問題8
正四面体●●●●●●●●●●●●●●●●
kill(all) /* "30210 正四面体(Maxima on lineでは削除)" */$
MONDAI:"30209 下の問題の△ABCにおいて";
ordergreat(x,y,z,a,b,c) /* "できるだけ、x,y,z,a,b,cの順に並べる" */;
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;
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) /* "角の余弦の式" */;
Se:S=(H1*H2*sind(K))/2 /* "三角形の面積の式" */;
MONDAI:"1辺1の正四面体ABCDで内接する球の中心をOとすると、四面体OBCDの体積、球の半径rは" ;
lH:1 /* "1辺=1、" */;
lBM:lH/2 /* "BCの中点M、ABD,ACDの両面に接する球の中心は、AMD上にある" */;
lAM:lH*sqrt(3)/2 /* "正三角形ABCの中線AM、" */;
cosAMD:rhs(subst([H2=lAM,H3=lAM,H=1],cKe)) /* "△AMDで余弦定理から、" */;
aAMD:acosd(cosAMD),numer;
sinAMD:sqrt(1-cosAMD^2);
lAN:rat(lAM*sinAMD),algebraic:true /* "CDの中点M'、ABD,ABCの両面に接する球の中心は、AM'B上にある。AMD,AM'Bの交線がANで、ANはBCDに垂直" */;
sABC:lH*lAM/2 /* "△ABCの面積" */;
sBCD:sABC /* "△BCDの面積" */;
vABCD:rat(sBCD*lAN/3),algebraic:true /* "四面体ABCDの体積" */;
vOBCD:vABCD/4 /* "四面体OBCDの体積" */;
lr:rootscontract(vOBCD*3/sBCD) /* "四面体OBCDの高さON" */;
lr:rat(lr),algebraic:true;

lMN:rat(lAM*cosAMD),algebraic:true;
lND:lAM-lMN;
e1:AO/ON*lMN/lAM=1;
e2:AO+ON=lAN;
aL:solve([e1,e2],[AO,ON]);
lON:rootscontract(rhs(aL[1][2]));
lON:rat(lON),algebraic:true;

pM:[0,0,0];
pB:[-lBM,0,0];
pC:[lBM,0,0];
pD:[0,lAM,0];
pA:[0,lAM/3,lAN];
pN:[0,lMN,0];
pO:[0,lMN,lAN/4];
pP:(pM*2+pA)/3;
pQ:(pC+pD+pA)/3;
pR:(pB+pD+pA)/3;

PL:[pA,pB,pD,pA,pP,pM,pN,pD,pA,pO,pN,pD,pC,pA,pB,pC,pA,pO,pQ,pO,pR,pO,pP];
xm:-lBM;
xM:abs(xm);
ym:0;
yM:ym+(xM-xm);
zm:0;
zM:zm+(xM-xm);
wxdraw3d(title="A/BCD,MN,PQR",
/*....*/xrange=[xm,xM],yrange=[ym,yM],zrange=[zm,zM],
/*....*/view=[75,45] /* "北極から75度、(0,-1,0)から反時計回りに45度の方向から原点を見る(◆修正部分)" */,
/*....*/color=red,
/*....*/implicit(x^2+(y-lMN)^2+(z-lAN/4)^2=lr^2,x,xm,xM,y,ym,yM,z,zm,zM),
/*....*/implicit(y^2+z^2=0,x,xm,xM,y,ym,yM,z,zm,zM),
/*....*/implicit(z^2+x^2=0,x,xm,xM,y,ym,yM,z,zm,zM),
/*....*/implicit(x^2+y^2=0,x,xm,xM,y,ym,yM,z,zm,zM),
/*....*/color=blue,point_type =6,
/*....*/points_joined =true,point_size =1,points(PL));
print("正四面体の辺=",lH) /* "(◆修正時訂正)" */$
print("-> AM=DM=",lAM,"MN=MP=",lMN,"cosAMD=",cosAMD,"sinAMD=",sinAMD) /* "(◆修正時訂正)" */$
print(" vOBCD=",vOBCD,"r=ON=OP=",lr) $

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次の3つそれぞれにより修正して実行し、各面に内接球が接していることを確認せよ。
/*....*/view=[90,30] /* "北極から90度、(0,-1,0)から反時計回りに30度の方向から原点を見る(◆修正部分)" */,
/*....*/view=[90,150] /* "北極から90度、(0,-1,0)から反時計回りに150度の方向から原点を見る(◆修正部分)" */,
/*....*/view=[90,270] /* "北極から90度、(0,-1,0)から反時計回りに270度の方向から原点を見る(◆修正部分)" */,