:
Maxima数学II自習教材開発
教材の概要
3 図形と方程式 2)円
5.円の方程式
6.円と直線
7.2つの円
302.補充問題
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
:
5.円の方程式
A. 円の方程式
◆コマンド番号501
●円の方程式
●●●●●●●●●●●●●●●●
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:"・例11・練習19 501 (4,-3)を中心とする半径5の円の方程式は"/*(◆修正部分1)*/$
KOUSATU:"(x,y)と中心との距離の平方を考えると、・・・"/**/;
KANSUU:"";
dis(p1l,p2l):=block([ans],ans:sqrt((p2l-p1l).(p2l-p1l)));
TEJUN:""$
declare(x,real,y,real);
p1L:[4,-3];r:5;e:dis(p1L,[x,y])^2=r^2/*(◆修正部分2)*/;
ansl:[e]/**/;
KAKUNIN:"図で確認"/**/$
xm:-15; xM:15; ym:xm/8.7*6.7; yM:xM/8.7*6.7/**/;
pl:[p1L];g1:implicit(e,x,xm,xM,y,ym,yM);
yL:[[0,ym],[0,yM]]/*y軸*/;
wxdraw2d(yrange=[ym,yM] /* "()" */,
/**/color=black,explicit(0,x,xm,xM),points_joined=true,points(yL),points_joined=false/*xy軸*/,
/**/points_joined=true, color=red, point_type=filled_circle, point_size=2, g1,
/**/points_joined=true, color=blue, point_type=filled_circle, point_size=1, points(pl)
/**/) /* "青が与えられたもの、赤が求めるもの(〇〇修正時y,y2の定義域変更に注意)" */;
KAITOU:ansl/*解答*//**/$
SUJIMITI:"(x,y)と中心との距離の平方を考えると、( )となり、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・例11・練習19 501 (-2,1)を中心とする半径sqrt(10)の円の方程式は"/*(◆修正部分1)*/$
p1L:[-2,1];r:sqrt(10);e:dis(p1L,[x,y])^2=r^2/*(◆修正部分2)*/;
◆コマンド番号502
●円の方程式
●●●●●●●●●●●●●●●●
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:"・練習20 502 円(x+3)^2+y^2=8の中心と半径は"/*(◆修正部分1)*/$
KOUSATU:"(x-p)^2+(y-q)^2=r^2の形に見て、・・・"/**/;
KANSUU:"";
dis(p1l,p2l):=block([ans],ans:sqrt((p2l-p1l).(p2l-p1l)));
TEJUN:""$
declare(x,real,y,real);
e:(x+3)^2+y^2=8/*(◆修正部分2)*/;
e1:lhs(expand(e));cx2:coeff(e1,x,2);cx1:coeff(e1,x,1);cy2:coeff(e1,y,2);cy1:coeff(e1,y,1);
poL:[-cx1/(2*cx2),-cy1/(2*cy2)];r:sqrt(subst([x=poL[1],y=poL[2]],rhs(e)-lhs(e)));
ansl:[poL,r,"[中心、半径]"]/**/;
KAKUNIN:"図で確認"/**/$
xm:-15; xM:15; ym:xm/8.7*6.7; yM:xM/8.7*6.7/**/;
pl:[poL];g1:implicit(e,x,xm,xM,y,ym,yM);
yL:[[0,ym],[0,yM]]/*y軸*/;
wxdraw2d(yrange=[ym,yM] /* "()" */,
/**/color=black,explicit(0,x,xm,xM),points_joined=true,points(yL),points_joined=false/*xy軸*/,
/**/points_joined=true, color=red, point_type=filled_circle, point_size=2, g1,
/**/points_joined=true, color=blue, point_type=filled_circle, point_size=1, points(pl)
/**/) /* "青が与えられたもの、赤が求めるもの(〇〇修正時y,y2の定義域変更に注意)" */;
KAITOU:ansl/*解答*//**/$
SUJIMITI:"(x,y)と中心との距離の平方を考えると、( )となり、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・練習20 502 円(x-3)^2+(y+1)^2=9の中心と半径は"/*(◆修正部分1)*/$
e:(x-3)^2+(y+1)^2=9/*(◆修正部分2)*/;
◆コマンド番号503
●円の方程式
●●●●●●●●●●●●●●●●
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:"・例題3・練習21 503 2点A(3,4),B(-1,2)を直径の両端とする円の中心、半径、方程式は"/*(◆修正部分1)*/$
KOUSATU:"中心は、2点の中点で、半径は中点と端点との距離だから、・・・"/**/;
KANSUU:"";
dis(p1l,p2l):=block([ans],ans:sqrt((p2l-p1l).(p2l-p1l)));
TEJUN:""$
declare(x,real,y,real);
p1L:[3,4];p2L:[-1,2];poL:(p1L+p2L)/2;r:dis(poL,p1L)/*(◆修正部分2)*/;
e:(x-poL[1])^2+(y-poL[2])^2=r^2;
ansl:[poL,r,e,"[中心、半径、方程式]"]/**/;
KAKUNIN:"図で確認"/**/$
xm:-10; xM:10; ym:xm/8.7*6.7; yM:xM/8.7*6.7/**/;
pl:[p1L,p2L];p1l:[poL];g1:implicit(e,x,xm,xM,y,ym,yM);
yL:[[0,ym],[0,yM]]/*y軸*/;
wxdraw2d(yrange=[ym,yM] /* "()" */,
/**/color=black,explicit(0,x,xm,xM),points_joined=true,points(yL),points_joined=false/*xy軸*/,
/**/points_joined=true, color=red, point_type=filled_circle, point_size=2, points(p1l),g1,
/**/points_joined=true, color=blue, point_type=filled_circle, point_size=1, points(pl)
/**/) /* "青が与えられたもの、赤が求めるもの(〇〇修正時y,y2の定義域変更に注意)" */;
KAITOU:ansl/*解答*//**/$
SUJIMITI:"中心は、2点の中点で、( )となり、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・例題3・練習21 503 2点A(4,0),B(0,2)を直径の両端とする円の中心、半径、方程式は"/*(◆修正部分1)*/$
KOUSATU:"中心は、2点の中点で、半径は中点と端点との距離だから、・・・"/**/;
p1L:[4,0];p2L:[0,2];poL:(p1L+p2L)/2;r:dis(poL,p1L)/*(◆修正部分2)*/;
B. x^2+y^2+l*x+m*y+n=0の表す図形
◆コマンド番号504
●x^2+y^2+l*x+m*y+n=0の表す図形
●●●●●●●●●●●●●●●●
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:"・例12・練習22 504 x^2+y^2-6*x+2*y-6=0の表す図形は"/*(◆修正部分1)*/$
KOUSATU:"x,yそれぞれの部分を平方完成すると、・・・"/**/;
KANSUU:"";
dis(p1l,p2l):=block([ans],ans:sqrt((p2l-p1l).(p2l-p1l)));
TEJUN:""$
declare(x,real,y,real);
e:x^2+y^2-6*x+2*y-6=0;e1:expand(lhs(e));cx1:coeff(e1,x,1);cy1:coeff(e1,y,1)/*(◆修正部分2)*/;
r2:subst([x=-cx1/2,y=-cy1/2],rhs(e1)-lhs(e1));poL:[-cx1/2,-cy1/2];r:sqrt(r2);
e2:(x-poL[1])^2+(y-poL[2])^2=r^2;
ansl:[poL,r,e2,"[中心、半径、方程式]"]/**/;
KAKUNIN:"図で確認"/**/$
xm:-10; xM:10; ym:xm/8.7*6.7; yM:xM/8.7*6.7/**/;
p1l:[poL];g1:implicit(e,x,xm,xM,y,ym,yM);g2:implicit(e2,x,xm,xM,y,ym,yM);
yL:[[0,ym],[0,yM]]/*y軸*/;
wxdraw2d(yrange=[ym,yM] /* "()" */,
/**/color=black,explicit(0,x,xm,xM),points_joined=true,points(yL),points_joined=false/*xy軸*/,
/**/points_joined=true, color=red, point_type=filled_circle, point_size=2, points(p1l),line_width=2,g2,
/**/points_joined=true, color=blue, point_type=filled_circle, point_size=1,g1
/**/) /* "青が与えられたもの、赤が求めるもの(〇〇修正時y,y2の定義域変更に注意)" */;
KAITOU:ansl/*解答*//**/$
SUJIMITI:"xの部分を平方完成すると、( )となり、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・例12・練習22 504 x^2+y^2+6*x+8*y+9=0の表す図形は"/*(◆修正部分1)*/$
e:x^2+y^2+6*x+8*y+9=0;e1:expand(lhs(e));cx1:coeff(e1,x,1);cy1:coeff(e1,y,1)/*(◆修正部分2)*/;
C. 3点を通る円の方程式
◆コマンド番号505
●3点を通る円の方程式
●●●●●●●●●●●●●●●●
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:"・例題4・練習23 505 点A(2,4),B(2,0),C(-1,3)を通る円の方程式は"/*(◆修正部分1)*/$
KOUSATU:"A,Bの垂直二等分線、A,Cの垂直二等分線の交点が中心、中心とAの距離が半径だから、・・・"/**/;
KANSUU:"";
dis(p1l,p2l):=block([ans],ans:sqrt((p2l-p1l).(p2l-p1l)))/*2点間の距離*/;
r2e(p1l,p2l):=block([anse,p3l,gr],p3l:(p1l+p2l)/2,gr:p2l-p1l,anse:gr[1]*(x-p3l[1])+gr[2]*(y-p3l[2])=0);/*垂直二等分線*/
TEJUN:""$
declare(x,real,y,real);
p1L:[2,4];p2L:[2,0];p3L:[-1,3]/*(◆修正部分2)*/;
e1:r2e(p1L,p2L);e2:r2e(p1L,p3L);
p4L:solve([e1,e2],[x,y])[1];p4L:[rhs(p4L[1]),rhs(p4L[2])];r:dis(p1L,p4L);
e3:(x-p4L[1])^2+(y-p4L[2])^2=r^2;ansl:[p4L,r,e3,["中心、半径、方程式"]];
KAKUNIN:"図で確認"/**/$
xm:-10; xM:10; ym:xm/8.7*6.7; yM:xM/8.7*6.7/**/;
p1:points([p1L,p2L,p3L,p1L]);
p2:points([p4L]);g1:implicit(e1,x,xm,xM,y,ym,yM);g2:implicit(e2,x,xm,xM,y,ym,yM);g3:implicit(e3,x,xm,xM,y,ym,yM);
yL:[[0,ym],[0,yM]]/*y軸*/;
wxdraw2d(yrange=[ym,yM] /* "()" */,
/**/color=black,explicit(0,x,xm,xM),points_joined=true,points(yL),points_joined=false/*xy軸*/,
/**/points_joined=true, color=red, point_type=filled_circle, point_size=2, p2,line_width=2,g1,g2,g3,/*求めるもの*/
/**/points_joined=true, color=blue, point_type=filled_circle, point_size=1,p1/*与えられたもの*/
/**/) /* "青が与えられたもの、赤が求めるもの(〇〇修正時y,y2の定義域変更に注意)" */;
KAITOU:ansl/*解答*//**/$
SUJIMITI:"A,Bの中点は( )となり、垂直2等分線の垂直方向は( )となるので、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・例題4・練習23 505 点A(2,3),B(-2,-1),C(2,-3)を通る円の方程式は"/*(◆修正部分1)*/$
p1L:[2,3];p2L:[-2,-1];p3L:[2,-3]/*(◆修正部分2)*/;
:
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:"・例題5・練習24 601 円x^2+y^2=5とy=x-1の共有点の座標は"/*(◆修正部分1)*/$
KOUSATU:"円の中心から直線へ垂線をおろした点までの距離と、円の中心から共有点までの距離から、・・・"/**/;
KANSUU:"";
dis(p1l,p2l):=block([ans],ans:sqrt((p2l-p1l).(p2l-p1l)))/*2点間の距離*/;
rpl(p1l,e):=block([ansl,e1,p2l,re1l,p3l],e1:expand(lhs(e)-rhs(e)),
/**/p2l:if coeff(e1,x,1)#0 then [0,rhs(solve(subst(x=0,e1=0),y)[1])] else [rhs(solve(subst(y=0,e1=0),x)[1]),0],
/**/ne1l:[coeff(e1,x,1),coeff(e1,y,1)],Ne1l:ne1l/sqrt(ne1l.ne1l),E1l:[Ne1l[2],-Ne1l[1]],
/**/d13:(p2l-p1l).Ne1l,p3l:p1l+d13*Ne1l,ansl:p3l)/*p1lからeに垂線を下した点*/$
r2e(p1l,p2l):=block([anse,p3l,gr],p3l:(p1l+p2l)/2,gr:p2l-p1l,anse:gr[1]*(x-p3l[1])+gr[2]*(y-p3l[2])=0);/*垂直二等分線*/
TEJUN:""$
declare(x,real,y,real);
e1:x^2+y^2=5;e2:y=x-1/*(◆修正部分2)*/;
p1L:[-coeff(lhs(e1),x,1)/2,-coeff(lhs(e1),y,1)/2];p2L:rpl(p1L,e2);
r:sqrt(rhs(e1));hs:dis(p1L,p2L);bs2:r^2-hs^2;
e21:expand(lhs(e2)-rhs(e2));e2l:[coeff(e21,y,1),-coeff(e21,x,1)];E2l:rat(e2l/sqrt(e2l.e2l)),algebraic:true;
if bs2>0 then (p3L:p2L+sqrt(bs2)*E2l,p4L:p2L-sqrt(bs2)*E2l,p2l:[p3L,p4L])
/**/elseif bs2=0 then (p3L:p2L,p2l:[p3L])
/**/else (p2l:[]);
ansl:[r,p1L,p2L,p2l,["半径、中心、中心から直線に垂線を下した点、[共有点(2点か1点か無し)]"]];
KAKUNIN:"図で確認"/**/$
xm:-10; xM:10; ym:xm/8.7*6.7; yM:xM/8.7*6.7/**/;
p1:points([p1L]);
p2:points(append([p1L,p2L],p2l));g1:implicit(e1,x,xm,xM,y,ym,yM);g2:implicit(e2,x,xm,xM,y,ym,yM);
yL:[[0,ym],[0,yM]]/*y軸*/;
wxdraw2d(yrange=[ym,yM] /* "()" */,
/**/color=black,explicit(0,x,xm,xM),points_joined=true,points(yL),points_joined=false/*xy軸*/,
/**/points_joined=true, color=red, point_type=filled_circle, point_size=2, p2/*求めるもの*/,
/**/points_joined=true, color=blue, point_type=filled_circle, point_size=1,p1,g1,g2/*与えられたもの*/
/**/) /* "青が与えられたもの、赤が求めるもの(〇〇修正時y,y2の定義域変更に注意)" */;
KAITOU:ansl/*解答*//**/$
SUJIMITI:"円の中心は( )となり、中心から直線に垂線を下した点は( )となるので、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・例題5・練習24 601 円x^2+y^2=8とx+y=4の共有点の座標は"/*(◆修正部分1)*/$
e1:x^2+y^2=8;e2:x+y=4/*(◆修正部分2)*/;
◆コマンド番号602
●共有点をもつ条件
●●●●●●●●●●●●●●●●
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:"・例題6・練習25 602 円x^2+y^2=8とy=x+mが共有点をもつとき、定数mの範囲は"/*(◆修正部分1)*/$
KOUSATU:"共有点をもつのは、連立方程式の解があるときだから、・・・"/**/;
KANSUU:"";
dis(p1l,p2l):=block([ans],ans:sqrt((p2l-p1l).(p2l-p1l)))/*2点間の距離*/;
rpl(p1l,e):=block([ansl,e1,ne1l,Ne1l,d12,p2l],e1:expand(lhs(e)-rhs(e)),
/**/ne1l:[coeff(e1,x,1),coeff(e1,y,1)],Ne1l:ne1l/sqrt(ne1l.ne1l),
/**/d12:dpe(p1l,e),p2l:p1l+d12*Ne1l,ansl:p2l)/*p1lからeに垂線を下した点*/$
dpe(p1l,e):=block([ans,e1,a,b],e1:expand(lhs(e)-rhs(e)),
/**/a:coeff(e1,x,1),b:coeff(e1,y,1),
/**/d13:-subst([x=p1l[1],y=p1l[2]],e1)/sqrt(a^2+b^2),ans:d13)/*p1lからeまでの(a,b)/sqrt(a^2+b^2)方向の距離*/$
r2e(p1l,p2l):=block([anse,p3l,gr],p3l:(p1l+p2l)/2,gr:p2l-p1l,anse:gr[1]*(x-p3l[1])+gr[2]*(y-p3l[2])=0);/*垂直二等分線*/
TEJUN:""$
declare(x,real,y,real,m,real);load(fourier_elim)$
e1:x^2+y^2=8;e2:y=x+m/*(◆修正部分2)*/;
sxyl:solve([e1,e2],[x,y])/*解を求めて*/;
atb:rhs(sxyl[1][1])+rhs(sxyl[2][1]);axb:rhs(sxyl[1][1])*rhs(sxyl[2][1]);D:expand(atb^2-4*axb);
p34L:[[rhs(sxyl[1][1]),rhs(sxyl[1][2])],[rhs(sxyl[2][1]),rhs(sxyl[2][2])]];
p34l(M):=if subst(m=M,D)>=0 then subst(m=M,p34L) else [[xm,ym]]/*if文実行のため関数処理*/;
e3:D>=0;ansl:[fourier_elim([e3],[m]),["共有点をもつmの範囲"]]/*(◆修正部分3)*/;
SAGYOU:"簡潔にすると";ansl:[[-4<=m and m<=4],["共有点をもつmの範囲"]]/*(◆修正部分3)*/;
KAKUNIN:"図で確認"/**/$
xm:-10; xM:10; ym:xm/8.7*6.7; yM:xM/8.7*6.7/**/;
M1:-5;M2:-4;M3:2;M4:4;M5:5/*(◆修正部分4)*/;
p1:points([p1L]);
g1:implicit(e1,x,xm,xM,y,ym,yM);
p31:points(p34l(M1));g21:implicit(subst(m=M1,e2),x,xm,xM,y,ym,yM);
p32:points(p34l(M2));g22:implicit(subst(m=M2,e2),x,xm,xM,y,ym,yM);
p33:points(p34l(M3));g23:implicit(subst(m=M3,e2),x,xm,xM,y,ym,yM);
p34:points(p34l(M4));g24:implicit(subst(m=M4,e2),x,xm,xM,y,ym,yM);
p35:points(p34l(M5));g25:implicit(subst(m=M5,e2),x,xm,xM,y,ym,yM);
yL:[[0,ym],[0,yM]]/*y軸*/;
wxdraw2d(yrange=[ym,yM] /* "()" */,
/**/color=black,explicit(0,x,xm,xM),points_joined=true,points(yL),points_joined=false/*xy軸*/,
/**/points_joined=true, color=red, point_type=filled_circle, point_size=2, p32,p33,p34,g22,g23,g24/*求めるもの*//*(◆修正部分5)*/,
/**/points_joined=true, color=cyan, point_type=filled_circle, point_size=1, p31,p35,g21,g25/*途中のもの*//*(◆修正部分5)*/,
/**/points_joined=true, color=white, point_type=filled_circle, point_size=2,p31,p35/*空の点リスト処理*/,
/**/points_joined=true, color=blue, point_type=filled_circle, point_size=1,g1/*与えられたもの*/
/**/) /* "青が与えられたもの、赤が求めるもの(〇〇修正時y,y2の定義域変更に注意)" */;
KAITOU:ansl/*解答*//**/$
KOUSATU:"共有点をもつのは、連立方程式の解があるときだから、判別式( )が・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・例題6・練習25 602 円x^2+y^2=5とy=2*x+mが接するとき、定数mの値は"/*(◆修正部分1)*/$
e1:x^2+y^2=5;e2:y=2*x+m/*(◆修正部分2)*/;
e3:D=0;ansl:[solve(e3,m),["接するときのmの値"]]/*(◆修正部分3)*/;
M1:-7;M2:-5;M3:2;M4:5;M5:7/*(◆修正部分4)*/;
/**/points_joined=true, color=red, point_type=filled_circle, point_size=2, p32,p34,g22,g24/*求めるもの*//*(◆修正部分5)*/,
/**/points_joined=true, color=cyan, point_type=filled_circle, point_size=1, p31,p33,p35,g21,g23,g25/*途中のもの*//*(◆修正部分5)*/,
◆コマンド番号603
●共有点をもつ条件
●●●●●●●●●●●●●●●●
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:"・例題6・練習25 603 円x^2+y^2=8とy=x+mが共有点をもつとき、定数mの範囲は"/*(◆修正部分1)*/$
KOUSATU:"円の中心から直線へ垂線をおろした点までの距離と、円の半径から、・・・"/**/;
KANSUU:"";
dis(p1l,p2l):=block([ans],ans:sqrt((p2l-p1l).(p2l-p1l)))/*2点間の距離*/;
rpl(p1l,e):=block([ansl,e1,ne1l,Ne1l,d12,p2l],e1:expand(lhs(e)-rhs(e)),
/**/ne1l:[coeff(e1,x,1),coeff(e1,y,1)],Ne1l:ne1l/sqrt(ne1l.ne1l),
/**/d12:dpe(p1l,e),p2l:p1l+d12*Ne1l,ansl:p2l)/*p1lからeに垂線を下した点*/$
dpe(p1l,e):=block([ans,e1,a,b],e1:expand(lhs(e)-rhs(e)),
/**/a:coeff(e1,x,1),b:coeff(e1,y,1),
/**/d13:-subst([x=p1l[1],y=p1l[2]],e1)/sqrt(a^2+b^2),ans:d13)/*p1lからeまでの(a,b)/sqrt(a^2+b^2)方向の距離*/$
r2e(p1l,p2l):=block([anse,p3l,gr],p3l:(p1l+p2l)/2,gr:p2l-p1l,anse:gr[1]*(x-p3l[1])+gr[2]*(y-p3l[2])=0);/*垂直二等分線*/
TEJUN:""$
declare(x,real,y,real,m,real);load(fourier_elim)$
e1:x^2+y^2=8;e2:y=x+m/*(◆修正部分2)*/;
p1L:[-coeff(lhs(e1),x,1)/2,-coeff(lhs(e1),y,1)/2];p2L:rpl(p1L,e2)/*中心から直線へ垂線を下した点*/;
r:sqrt(rhs(e1));hs:dis(p1L,p2L);bs2:r^2-hs^2;e21:lhs(e2)-rhs(e2);e2l:[coeff(e21,y,1),-coeff(e21,x,1)];E2l:e2l/sqrt(e2l.e2l);
p34l(M):=if subst(m=M,bs2)>=0 then subst(m=M,[p2L+sqrt(bs2)*E2l,p2L-sqrt(bs2)*E2l]) else [[xm,ym]]/*if文実行のため関数処理*/;
e3:r>=hs;ansl:[fourier_elim([e3],[m]),["共有点をもつmの範囲"]]/*(◆修正部分3)*/;
SAGYOU:"簡潔にすると";ansl:[[-4<=m and m<=4],["共有点をもつmの範囲"]]/*(◆修正部分3)*/;
KAKUNIN:"図で確認"/**/$
xm:-10; xM:10; ym:xm/8.7*6.7; yM:xM/8.7*6.7/**/;
M1:-5;M2:-4;M3:2;M4:4;M5:5/*(◆修正部分4)*/;
p1:points([p1L]);
g1:implicit(e1,x,xm,xM,y,ym,yM);
p21:points([subst(m=M1,p2L)]);p31:points(p34l(M1));g21:implicit(subst(m=M1,e2),x,xm,xM,y,ym,yM);
p22:points([subst(m=M2,p2L)]);p32:points(p34l(M2));g22:implicit(subst(m=M2,e2),x,xm,xM,y,ym,yM);
p23:points([subst(m=M3,p2L)]);p33:points(p34l(M3));g23:implicit(subst(m=M3,e2),x,xm,xM,y,ym,yM);
p24:points([subst(m=M4,p2L)]);p34:points(p34l(M4));g24:implicit(subst(m=M4,e2),x,xm,xM,y,ym,yM);
p25:points([subst(m=M5,p2L)]);p35:points(p34l(M5));g25:implicit(subst(m=M5,e2),x,xm,xM,y,ym,yM);
yL:[[0,ym],[0,yM]]/*y軸*/;
wxdraw2d(yrange=[ym,yM] /* "()" */,
/**/color=black,explicit(0,x,xm,xM),points_joined=true,points(yL),points_joined=false/*xy軸*/,
/**/points_joined=true, color=red, point_type=filled_circle, point_size=2, p32,p33,p34,g22,g23,g24/*求めるもの*//*(◆修正部分5)*/,
/**/points_joined=true, color=cyan, point_type=filled_circle, point_size=1, p21,p22,p23,p24,p25,p31,p35,g21,g25/*途中のもの*//*(◆修正部分5)*/,
/**/points_joined=true, color=white, point_type=filled_circle, point_size=2,p31,p35/*空の点リスト処理*/,
/**/points_joined=true, color=blue, point_type=filled_circle, point_size=1,p1,g1/*与えられたもの*/
/**/) /* "青が与えられたもの、赤が求めるもの(〇〇修正時y,y2の定義域変更に注意)" */;
KAITOU:ansl/*解答*//**/$
SUJIMITI:"円の中心は( )、半径は( )となり、中心から直線への距離により、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・例題6・練習25 603 円x^2+y^2=5とy=2*x+mが接するとき、定数mの値は"/*(◆修正部分1)*/$
e1:x^2+y^2=5;e2:y=2*x+m/*(◆修正部分2)*/;
e3:r=hs;ansl:[solve(e3,m),["接するときのmの値"]]/*(◆修正部分3)*/;
M1:-7;M2:-5;M3:2;M4:5;M5:7/*(◆修正部分4)*/;
/**/points_joined=true, color=red, point_type=filled_circle, point_size=2, p32,p34,g22,g24/*求めるもの*//*(◆修正部分5)*/,
/**/points_joined=true, color=cyan, point_type=filled_circle, point_size=1, p21,p22,p23,p24,p25,p31,p33,p35,g21,g23,g25/*途中のもの*//*(◆修正部分5)*/,
◆コマンド番号604
●共有点をもつ条件
●●●●●●●●●●●●●●●●
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:"・例題7・練習26 603 円x^2+y^2=r^2と直線3*x+4*y-10=0が接するとき、rの値は"/*(◆修正部分1)*/$
KOUSATU:"円の中心から直線へ垂線をおろした点までの距離と、円の半径から、・・・"/**/;
KANSUU:"";
dis(p1l,p2l):=block([ans],ans:sqrt((p2l-p1l).(p2l-p1l)))/*2点間の距離*/;
rpl(p1l,e):=block([ansl,e1,ne1l,Ne1l,d12,p2l],e1:expand(lhs(e)-rhs(e)),
/**/ne1l:[coeff(e1,x,1),coeff(e1,y,1)],Ne1l:ne1l/sqrt(ne1l.ne1l),
/**/d12:dpe(p1l,e),p2l:p1l+d12*Ne1l,ansl:p2l)/*p1lからeに垂線を下した点*/$
dpe(p1l,e):=block([ans,e1,a,b],e1:expand(lhs(e)-rhs(e)),
/**/a:coeff(e1,x,1),b:coeff(e1,y,1),
/**/d13:-subst([x=p1l[1],y=p1l[2]],e1)/sqrt(a^2+b^2),ans:d13)/*p1lからeまでの(a,b)/sqrt(a^2+b^2)方向の距離*/$
r2e(p1l,p2l):=block([anse,p3l,gr],p3l:(p1l+p2l)/2,gr:p2l-p1l,anse:gr[1]*(x-p3l[1])+gr[2]*(y-p3l[2])=0);/*垂直二等分線*/
TEJUN:""$
declare(x,real,y,real,r,real);assume(r>=0);load(fourier_elim)$
e1:x^2+y^2=r^2;e2:3*x+4*y-10=0/*(◆修正部分2)*/;
p1L:[-coeff(lhs(e1),x,1)/2,-coeff(lhs(e1),y,1)/2];p2L:rpl(p1L,e2)/*中心から直線へ垂線を下した点*/;
R:sqrt(rhs(e1));hs:dis(p1L,p2L);bs2:R^2-hs^2;e21:lhs(e2)-rhs(e2);e2l:[coeff(e21,y,1),-coeff(e21,x,1)];E2l:e2l/sqrt(e2l.e2l);
p34l(r):=if subst(R=r,bs2)>=0 then subst(R=r,[p2L+sqrt(bs2)*E2l,p2L-sqrt(bs2)*E2l]) else [[xm,ym]]/*if文実行の関数形利用*/;
e3:R=hs;ansl:[solve(e3,r),["接する場合のrの値"]];
KAKUNIN:"図で確認"/**/$
xm:-10; xM:10; ym:xm/8.7*6.7; yM:xM/8.7*6.7/**/;
r1:1;r2:2;r3:3/*(◆修正部分3)*/;
p1:points([p1L,p2L]);
g2:implicit(e2,x,xm,xM,y,ym,yM);
g11:implicit(subst(r=r1,e1),x,xm,xM,y,ym,yM);p31:points(p34l(r1));
g12:implicit(subst(r=r2,e1),x,xm,xM,y,ym,yM);p32:points(p34l(r2));
g13:implicit(subst(r=r3,e1),x,xm,xM,y,ym,yM);p33:points(p34l(r3));
yL:[[0,ym],[0,yM]]/*y軸*/;
wxdraw2d(yrange=[ym,yM] /* "()" */,
/**/color=black,explicit(0,x,xm,xM),points_joined=true,points(yL),points_joined=false/*xy軸*/,
/**/points_joined=true, color=red, point_type=filled_circle, point_size=2, p32,g12/*求めるもの*//**/,
/**/points_joined=true, color=cyan, point_type=filled_circle, point_size=1, p31,p33,g11,g13/*途中のもの*//**/,
/**/points_joined=true, color=white, point_type=filled_circle, point_size=2,p31/*空の点リスト処理*/,
/**/points_joined=true, color=blue, point_type=filled_circle, point_size=1,p1,g2/*与えられたもの*/
/**/) /* "青が与えられたもの、赤が求めるもの(〇〇修正時y,y2の定義域変更に注意)" */;
KAITOU:ansl/*解答*//**/$
SUJIMITI:"円の中心は( )、半径は( )となり、中心から直線への距離により、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・例題7・練習26 604 円x^2+y^2=r^2と直線4*x-3*y+25=0が接するとき、rの値は"/*(◆修正部分1)*/$
e1:x^2+y^2=r^2;e2:4*x-3*y+25=0/*(◆修正部分2)*/;
r1:3;r2:5;r3:7/*(◆修正部分3)*/;
◆コマンド番号605
●共有点をもつ条件
●●●●●●●●●●●●●●●●
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:"・例題7・練習26 605 円x^2+y^2=r^2と直線3*x+4*y-10=0が接するとき、rの値は"/*(◆修正部分1)*/$
KOUSATU:"接するときは、解が1つとなるときだから、・・・"/**/;
KANSUU:"";
dis(p1l,p2l):=block([ans],ans:sqrt((p2l-p1l).(p2l-p1l)))/*2点間の距離*/;
rpl(p1l,e):=block([ansl,e1,ne1l,Ne1l,d12,p2l],e1:expand(lhs(e)-rhs(e)),
/**/ne1l:[coeff(e1,x,1),coeff(e1,y,1)],Ne1l:ne1l/sqrt(ne1l.ne1l),
/**/d12:dpe(p1l,e),p2l:p1l+d12*Ne1l,ansl:p2l)/*p1lからeに垂線を下した点*/$
dpe(p1l,e):=block([ans,e1,a,b],e1:expand(lhs(e)-rhs(e)),
/**/a:coeff(e1,x,1),b:coeff(e1,y,1),
/**/d13:-subst([x=p1l[1],y=p1l[2]],e1)/sqrt(a^2+b^2),ans:d13)/*p1lからeまでの(a,b)/sqrt(a^2+b^2)方向の距離*/$
r2e(p1l,p2l):=block([anse,p3l,gr],p3l:(p1l+p2l)/2,gr:p2l-p1l,anse:gr[1]*(x-p3l[1])+gr[2]*(y-p3l[2])=0);/*垂直二等分線*/
TEJUN:""$
declare(x,real,y,real,r,real);assume(r>=0);jk:r>=0;load(fourier_elim)$
e1:x^2+y^2=r^2;e2:3*x+4*y-10=0/*(◆修正部分2)*/;
sxyl:solve([e1,e2],[x,y]);e3:rhs(sxyl[1][1])=rhs(sxyl[2][1])/*解が1つとすると*/;
srl:solve(e3,r);kM:length(srl);Srl:[];for k:1 thru kM do(if subst(srl[k],jk) then Srl:endcons(srl[k],Srl));
ansl:[Srl,["接する場合のrの値"]];
KAKUNIN:"図で確認"/**/$
xm:-10; xM:10; ym:xm/8.7*6.7; yM:xM/8.7*6.7/**/;
r1:1;r2:2;r3:3/*(◆修正部分3)*/;
g2:implicit(e2,x,xm,xM,y,ym,yM);
prl(R):=if imagpart(subst(r=R,rhs(sxyl[1][1])))=0 then subst(r=R, [[rhs(sxyl[1][1]),rhs(sxyl[1][2])],[rhs(sxyl[2][1]),rhs(sxyl[2][2])]]) else [[xm,ym]];
p1l:prl(r1);p2l:prl(r2);p3l:prl(r3);
g11:implicit(subst(r=r1,e1),x,xm,xM,y,ym,yM);p1:points(p1l);
g12:implicit(subst(r=r2,e1),x,xm,xM,y,ym,yM);p2:points(p2l);
g13:implicit(subst(r=r3,e1),x,xm,xM,y,ym,yM);p3:points(p3l);
yL:[[0,ym],[0,yM]]/*y軸*/;
wxdraw2d(yrange=[ym,yM] /* "()" */,
/**/color=black,explicit(0,x,xm,xM),points_joined=true,points(yL),points_joined=false/*xy軸*/,
/**/points_joined=true, color=red, point_type=filled_circle, point_size=2, p2,g12/*求めるもの*//**/,
/**/points_joined=true, color=cyan, point_type=filled_circle, point_size=1, p1,p3,g11,g13/*途中のもの*//**/,
/**/points_joined=true, color=white, point_type=filled_circle, point_size=2,p1/*空の点リスト処理*/,
/**/points_joined=true, color=blue, point_type=filled_circle, point_size=1,g2/*与えられたもの*/
/**/) /* "青が与えられたもの、赤が求めるもの(〇〇修正時y,y2の定義域変更に注意)" */;
KAITOU:ansl/*解答*//**/$
SUJIMITI:"連立方程式のxの解は、( )となり、接するときは解は1つだから、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・例題7・練習26 605 円x^2+y^2=r^2と直線4*x-3*y+25=0が接するとき、rの値は"/*(◆修正部分1)*/$
e1:x^2+y^2=r^2;e2:4*x-3*y+25=0/*(◆修正部分2)*/;
r1:3;r2:5;r3:7/*(◆修正部分3)*/;
C. 円の接線の方程式
◆コマンド番号606
●円周上の点における接線の方程式
●●●●●●●●●●●●●●●●
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:"・例13・練習27 606 円x^2+y^2=25上の点(3,-4)における接線は"/*(◆修正部分1)*/$
KOUSATU:"中心から周上の点への大きさ1の方向と中心から直線上の点への方向との内積が半径となるから、・・・"/**/;
KANSUU:"";
dis(p1l,p2l):=block([ans],ans:sqrt((p2l-p1l).(p2l-p1l)))/*2点間の距離*/;
rpl(p1l,e):=block([ansl,e1,ne1l,Ne1l,d12,p2l],e1:expand(lhs(e)-rhs(e)),
/**/ne1l:[coeff(e1,x,1),coeff(e1,y,1)],Ne1l:ne1l/sqrt(ne1l.ne1l),
/**/d12:dpe(p1l,e),p2l:p1l+d12*Ne1l,ansl:p2l)/*p1lからeに垂線を下した点*/$
dpe(p1l,e):=block([ans,e1,a,b],e1:expand(lhs(e)-rhs(e)),
/**/a:coeff(e1,x,1),b:coeff(e1,y,1),
/**/d13:-subst([x=p1l[1],y=p1l[2]],e1)/sqrt(a^2+b^2),ans:d13)/*p1lからeまでの(a,b)/sqrt(a^2+b^2)方向の距離*/$
r2e(p1l,p2l):=block([anse,p3l,gr],p3l:(p1l+p2l)/2,gr:p2l-p1l,anse:gr[1]*(x-p3l[1])+gr[2]*(y-p3l[2])=0);/*垂直二等分線*/
TEJUN:""$
declare(x,real,y,real,m,real);load(fourier_elim)$
e1:x^2+y^2=25;p1L:[3,-4];e12:expand(lhs(e1))/*(◆修正部分2)*/;
p0L:[-coeff(e12,x,1)/2,-coeff(e12,y,1)/2];r:sqrt(rhs(e1));N1l:p1L/r/*円の中心、半径、中心から周上の点への大きさ1の方向*/;
xyl:[x,y];e2:N1l.xyl=r/*中心から直線上の点への方向,2方向の内積が半径という方程式(これが接線の公式になる)*/;
e2:e2*r/*方程式を簡潔にして*//*(◆修正部分3)*/;
ansl:[e2,["接線の方程式"]]/**/;
KAKUNIN:"図で確認"/**/$
xm:-10; xM:10; ym:xm/8.7*6.7; yM:xM/8.7*6.7/**/;
p1:points([p1L,p0L]);
g1:implicit(e1,x,xm,xM,y,ym,yM);
g2:implicit(e2,x,xm,xM,y,ym,yM);
yL:[[0,ym],[0,yM]]/*y軸*/;
wxdraw2d(yrange=[ym,yM] /* "()" */,
/**/color=black,explicit(0,x,xm,xM),points_joined=true,points(yL),points_joined=false/*xy軸*/,
/**/points_joined=true, color=red, point_type=filled_circle, point_size=2,line_width=2, g2/*求めるもの*//**/,
/**/points_joined=true, color=blue, point_type=filled_circle, point_size=1,p1,g1/*与えられたもの*/
/**/) /* "青が与えられたもの、赤が求めるもの(〇〇修正時y,y2の定義域変更に注意)" */;
KAITOU:ansl/*解答*//**/$
KOUSATU:"中心から周上の点への大きさ1の方向は( )で、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・例13・練習27 606 円x^2+y^2=16上の点(4,0)における接線は"/*(◆修正部分1)*/$
e1:x^2+y^2=16;p1L:[4,0];e12:expand(lhs(e1))/*(◆修正部分2)*/;
e2:e2/*方程式を簡潔にして*//*(◆修正部分3)*/;
◆コマンド番号607
●円外の点における接線の方程式1
●●●●●●●●●●●●●●●●
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:"・応用例題2・練習28 607 円x^2+y^2=5に点(1,3)から引いた接線の式と接点は"/*(◆修正部分1)*/,
KOUSATU:"中心から点への線分が斜辺、半径が垂辺で、点から接点へ線分が底辺となるから、・・・"/**/
)$
(KANSUU:"",
dis(p1l,p2l):=block([ans],ans:sqrt((p2l-p1l).(p2l-p1l)))/*2点間の距離*/,
rpl(p1l,e):=block([ansl,e1,ne1l,Ne1l,d12,p2l],e1:expand(lhs(e)-rhs(e)),
/**/ne1l:[coeff(e1,x,1),coeff(e1,y,1)],Ne1l:ne1l/sqrt(ne1l.ne1l),
/**/d12:dpe(p1l,e),p2l:p1l+d12*Ne1l,ansl:p2l)/*p1lからeに垂線を下した点*/,
dpe(p1l,e):=block([ans,e1,a,b],e1:expand(lhs(e)-rhs(e)),
/**/a:coeff(e1,x,1),b:coeff(e1,y,1),
/**/d13:-subst([x=p1l[1],y=p1l[2]],e1)/sqrt(a^2+b^2),ans:d13)/*p1lからeまでの(a,b)/sqrt(a^2+b^2)方向の距離*/,
r2e(p1l,p2l):=block([anse,p3l,gr],p3l:(p1l+p2l)/2,gr:p2l-p1l,anse:gr[1]*(x-p3l[1])+gr[2]*(y-p3l[2])=0)/*垂直二等分線*/
)$
(TEJUN:"",
declare(x,real,y,real,m,real),load(fourier_elim),
e1:x^2+y^2=5,p1L:[1,3],e12:expand(lhs(e1)),print([e1,p1L,"円の方程式,外部点"])/*(◆修正部分2)*/,
p0L:[-coeff(e12,x,1)/2,-coeff(e12,y,1)/2],r:sqrt(rhs(e1)),print([p0L,r,"円の中心、半径"]),
dl:p1L-p0L,Dl:dl/sqrt(dl.dl),Nl:[-Dl[2],Dl[1]],print([dl,Dl,Nl,"方向(中心⇒点)、その単位方向、その単位法線方向"]),
hs:sqrt(dl.dl),bs:sqrt(hs^2-r^2),p2L:p0L+r^2/hs*Dl,p3L:p2L+r^2/hs*bs/r*Nl,p4L:p2L-r^2/hs*bs/r*Nl,
print([hs,bs,p2L,p3L,p4L,"長さ(中心,外部点),長さ(接点,外部点),接点から方向(中心⇒点)への垂直降下点,接点1,接点2"])/*tri(p0L,p1L,p3L)∽tri(p0L,p3L,p2L)*/,
e3:expand([x-p3L[1],y-p3L[2]].[-(p1L[2]-p3L[2]),p1L[1]-p3L[1]])=0,
e4:expand([x-p4L[1],y-p4L[2]].[-(p1L[2]-p4L[2]),p1L[1]-p4L[1]])=0,
ansl:[[e3,p3L],[e4,p4L],["接線の方程式,接点"]],print(ansl)/**/
)$
(KAKUNIN:"図で確認"/**/,
xm:-10, xM:10, ym:xm/8.7*6.7, yM:xM/8.7*6.7/**/,
p1:points([p1L,p0L]),p2:points([p2L]),p3:points([p3L,p4L]),
g1:implicit(e1,x,xm,xM,y,ym,yM),
g3:implicit(e3,x,xm,xM,y,ym,yM),
g4:implicit(e4,x,xm,xM,y,ym,yM),
yL:[[0,ym],[0,yM]]/*y軸*/,
wxdraw2d(yrange=[ym,yM] /* "()" */,
/**/color=black,explicit(0,x,xm,xM),points_joined=true,points(yL),points_joined=false/*xy軸*/,
/**/points_joined=true, color=red, point_type=filled_circle, point_size=2,line_width=2, p3,g3,g4/*求めるもの*//**/,
/**/points_joined=true, color=cyan, point_type=filled_circle, point_size=1,line_width=1, p2/*求めるもの*//**/,
/**/points_joined=true, color=blue, point_type=filled_circle, point_size=1,p1,g1/*与えられたもの*/
/**/) /* "青が与えられたもの、赤が求めるもの(〇〇修正時y,y2の定義域変更に注意)" */
)$
(KAITOU:ansl/*解答*//**/,
SUJIMITI:"中心から点への大きさ1の方向は( )で、・・・"/**/,
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)",
print(MONDAI),
print(SUJIMITI),
print(KAITOU),
print(FURIKAERI)
)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・応用例題2・練習28 607 円x^2+y^2=1に点(2,1)から引いた接線の式と接点は"/*(◆修正部分1)*/,
e1:x^2+y^2=1,p1L:[2,1],e12:expand(lhs(e1)),print([e1,p1L,"円の方程式,外部点"])/*(◆修正部分2)*/,
◆コマンド番号608
●円外の点における接線の方程式2
●●●●●●●●●●●●●●●●
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:"・応用例題2・練習28 608 円x^2+y^2=5に点(1,3)から引いた接線の式と接点は"/*(◆修正部分1)*/,
KOUSATU:"円周上の点を(p,q)として、接線の方程式を作り、(1,3)を通るように、・・・"/**/
)$
(KANSUU:"",
dis(p1l,p2l):=block([ans],ans:sqrt((p2l-p1l).(p2l-p1l)))/*2点間の距離*/,
rpl(p1l,e):=block([ansl,e1,ne1l,Ne1l,d12,p2l],e1:expand(lhs(e)-rhs(e)),
/**/ne1l:[coeff(e1,x,1),coeff(e1,y,1)],Ne1l:ne1l/sqrt(ne1l.ne1l),
/**/d12:dpe(p1l,e),p2l:p1l+d12*Ne1l,ansl:p2l)/*p1lからeに垂線を下した点*/,
dpe(p1l,e):=block([ans,e1,a,b],e1:expand(lhs(e)-rhs(e)),
/**/a:coeff(e1,x,1),b:coeff(e1,y,1),
/**/d13:-subst([x=p1l[1],y=p1l[2]],e1)/sqrt(a^2+b^2),ans:d13)/*p1lからeまでの(a,b)/sqrt(a^2+b^2)方向の距離*/,
r2e(p1l,p2l):=block([anse,p3l,gr],p3l:(p1l+p2l)/2,gr:p2l-p1l,anse:gr[1]*(x-p3l[1])+gr[2]*(y-p3l[2])=0)/*垂直二等分線*/
)$
(TEJUN:"",
declare(x,real,y,real,m,real),load(fourier_elim),
e1:x^2+y^2=5,p1L:[1,3],e12:expand(lhs(e1)),print([e1,p1L,"円の方程式,円外の点"])/*(◆修正部分2)*/,
p0L:[-coeff(e12,x,1)/2,-coeff(e12,y,1)/2],r:sqrt(rhs(e1)),print([p0L,r,"円の中心,半径"]),
p2L:[p,q],e2:p*x+q*y=r^2,e20:subst([x=p1L[1],y=p1L[2]],e2),e3:(p2L-p0L).(p2L-p0L)=r^2,spql:solve([e20,e3],[p,q]),
print([p2L,[e20,e3],spql,"接点[p,q],連立方程式,その解"]),
e21:subst(spql[1],e2),e22:subst(spql[2],e2),p21L:subst(spql[1],p2L),p22L:subst(spql[2],p2L),
print([[e21,e22],[p21L,p22L],"接線の方程式,接点"]),
ansl:[[e21,p21L],[e22,p22L],["接線の方程式,接点"]],print(ansl)/**/
)$
(KAKUNIN:"図で確認"/**/,
xm:-10, xM:10, ym:xm/8.7*6.7, yM:xM/8.7*6.7/**/,
p1:points([p1L,p0L]),p3:points([p21L,p22L]),
g1:implicit(e1,x,xm,xM,y,ym,yM),
g21:implicit(e21,x,xm,xM,y,ym,yM),
g22:implicit(e22,x,xm,xM,y,ym,yM),
yL:[[0,ym],[0,yM]]/*y軸*/,
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=filled_circle, point_size=2,line_width=2, p3,g21,g22/*求めるもの*//**/,
/**/points_joined=false, color=blue, point_type=filled_circle, point_size=1,p1,g1/*与えられたもの*/
/**/) /* "青が与えられたもの、赤が求めるもの(〇〇修正時y,y2の定義域変更に注意)" */
)$
(KETURON:"",
KAITOU:ansl/*解答*//**/,
SUJIMITI:"円周上の点を(p,q)として、接線の方程式を作ると( )で、・・・"/**/,
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)",
print(MONDAI),
print(SUJIMITI),
print(KAITOU),
print(FURIKAERI)
)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
(MONDAI:"・応用例題2・練習28 608 円x^2+y^2=1に点(2,1)から引いた接線の式と接点は"/*(◆修正部分1)*/,
e1:x^2+y^2=1,p1L:[2,1],e12:expand(lhs(e1))/*(◆修正部分2)*/,
:
7.2つの円
A. 2つの円の位置関係
◆コマンド番号701
●2つの円の位置関係
●●●●●●●●●●●●●●●●
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:"・練習29 701 円x^2+y^2=4と、円(x+3)^2+(y-4)^2=9との位置関係は"/*(◆修正部分1)*/$
KOUSATU:"2つの円の中心と半径から、・・・"/**/;
KANSUU:"";
dis(p1l,p2l):=block([ans],ans:sqrt((p2l-p1l).(p2l-p1l)))/*2点間の距離*/;
rpl(p1l,e):=block([ansl,e1,ne1l,Ne1l,d12,p2l],e1:expand(lhs(e)-rhs(e)),
/**/ne1l:[coeff(e1,x,1),coeff(e1,y,1)],Ne1l:ne1l/sqrt(ne1l.ne1l),
/**/d12:dpe(p1l,e),p2l:p1l+d12*Ne1l,ansl:p2l)/*p1lからeに垂線を下した点*/$
dpe(p1l,e):=block([ans,e1,a,b],e1:expand(lhs(e)-rhs(e)),
/**/a:coeff(e1,x,1),b:coeff(e1,y,1),
/**/d13:-subst([x=p1l[1],y=p1l[2]],e1)/sqrt(a^2+b^2),ans:d13)/*p1lからeまでの(a,b)/sqrt(a^2+b^2)方向の距離*/$
r2e(p1l,p2l):=block([anse,p3l,gr],p3l:(p1l+p2l)/2,gr:p2l-p1l,anse:gr[1]*(x-p3l[1])+gr[2]*(y-p3l[2])=0);/*垂直二等分線*/
TEJUN:""$
declare(x,real,y,real,m,real);load(fourier_elim)$
e1:x^2+y^2=4;e2:(x+3)^2+(y-4)^2=9;e12:expand(lhs(e1));e22:expand(lhs(e2))/*(◆修正部分2)*/;
p10L:[-coeff(e12,x,1)/2,-coeff(e12,y,1)/2];r1:sqrt(rhs(e1))/*円1の中心、半径*/;
p20L:[-coeff(e22,x,1)/2,-coeff(e22,y,1)/2];r2:sqrt(rhs(e2))/*円2の中心、半径*/;
d12:dis(p10L,p20L);
itim(r1,r2,d12):=if r1+r2< d12 then "一方が他方の外部"
/**/elseif r1+r2=d12 then "外接" elseif abs(r1-r2)< d12 and d12< r1+r2 then "2点で交わる"
/**/elseif abs(r1-r2)=d12 then "内接" else "一方が他方の内部"$
ansl:[r1,r2,d12,itim(r1,r2,d12),"[半径1、半径2、中心間の距離、2つの円の位置関係]"];
KAKUNIN:"図で確認"/**/$
xm:-10; xM:10; ym:xm/8.7*6.7; yM:xM/8.7*6.7/**/;
p1:points([p10L,p20L]);
g1:implicit(e1,x,xm,xM,y,ym,yM);
g2:implicit(e2,x,xm,xM,y,ym,yM);
yL:[[0,ym],[0,yM]]/*y軸*/;
wxdraw2d(yrange=[ym,yM] /* "()" */,
/**/color=black,explicit(0,x,xm,xM),points_joined=true,points(yL),points_joined=false/*xy軸*/,
/**/points_joined=true, color=red, point_type=filled_circle, point_size=2,line_width=2, p1/*求めるもの*//**/,
/**/points_joined=true, color=blue, point_type=filled_circle, point_size=1,line_width=1,p1,g1,g2/*与えられたもの*/
/**/) /* "青が与えられたもの、赤が求めるもの(〇〇修正時y,y2の定義域変更に注意)" */;
KAITOU:ansl/*解答*//**/$
SUJIMITI:"2つの円の中心は( ),( )で、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・練習28・29 701 円x^2+y^2=4と、円(x-3)^2+(y-3)^2=8との位置関係は"/*(◆修正部分1)*/$
e1:x^2+y^2=4;e2:(x-3)^2+(y-3)^2=8;e12:expand(lhs(e1));e22:expand(lhs(e2))/*(◆修正部分2)*/;
◆コマンド番号702
●2つの円の位置関係
●●●●●●●●●●●●●●●●
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:"・例題8・練習30 702 中心が(4,3)で、円x^2+y^2=1に外接する円の方程式は"/*(◆修正部分1)*/$
KOUSATU:"2つの円の中心と半径から、・・・"/**/;
KANSUU:"";
dis(p1l,p2l):=block([ans],ans:sqrt((p2l-p1l).(p2l-p1l)))/*2点間の距離*/;
rpl(p1l,e):=block([ansl,e1,ne1l,Ne1l,d12,p2l],e1:expand(lhs(e)-rhs(e)),
/**/ne1l:[coeff(e1,x,1),coeff(e1,y,1)],Ne1l:ne1l/sqrt(ne1l.ne1l),
/**/d12:dpe(p1l,e),p2l:p1l+d12*Ne1l,ansl:p2l)/*p1lからeに垂線を下した点*/$
dpe(p1l,e):=block([ans,e1,a,b],e1:expand(lhs(e)-rhs(e)),
/**/a:coeff(e1,x,1),b:coeff(e1,y,1),
/**/d13:-subst([x=p1l[1],y=p1l[2]],e1)/sqrt(a^2+b^2),ans:d13)/*p1lからeまでの(a,b)/sqrt(a^2+b^2)方向の距離*/$
r2e(p1l,p2l):=block([anse,p3l,gr],p3l:(p1l+p2l)/2,gr:p2l-p1l,anse:gr[1]*(x-p3l[1])+gr[2]*(y-p3l[2])=0);/*垂直二等分線*/
TEJUN:""$
declare(x,real,y,real,m,real);load(fourier_elim)$
e1:x^2+y^2=1;e12:expand(lhs(e1));p20L:[4,3]/*(◆修正部分2)*/;
p10L:[-coeff(e12,x,1)/2,-coeff(e12,y,1)/2];r1:sqrt(rhs(e1))/*円1の中心、半径*/;
d12:dis(p10L,p20L);
r2:d12-r1/*"円2は円1と外接するので"*//*(◆修正部分3)*/;
e2:(x-p20L[1])^2+(y-p20L[2])^2=r2^2;
ansl:[p20L,r2,e2,"[円2の中心、半径、円2の方程式]"];
KAKUNIN:"図で確認"/**/$
xm:-10; xM:10; ym:xm/8.7*6.7; yM:xM/8.7*6.7/**/;
p1:points([p10L,p20L]);
g1:implicit(e1,x,xm,xM,y,ym,yM);
g2:implicit(e2,x,xm,xM,y,ym,yM);
yL:[[0,ym],[0,yM]]/*y軸*/;
wxdraw2d(yrange=[ym,yM] /* "()" */,
/**/color=black,explicit(0,x,xm,xM),points_joined=true,points(yL),points_joined=false/*xy軸*/,
/**/points_joined=true, color=red, point_type=filled_circle, point_size=2,line_width=2,g2/*求めるもの*//**/,
/**/points_joined=true, color=blue, point_type=filled_circle, point_size=1,line_width=1,p1,g1/*与えられたもの*/
/**/) /* "青が与えられたもの、赤が求めるもの(〇〇修正時y,y2の定義域変更に注意)" */;
KAITOU:ansl/*解答*//**/$
SUJIMITI:"2つの円の中心は( ),( )で、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・例題8・練習30 702 中心が(1,2)で、円x^2+y^2=20に内接する円の方程式は"/*(◆修正部分1)*/$
e1:x^2+y^2=20;e12:expand(lhs(e1));p20L:[1,2]/*(◆修正部分2)*/;
r2:r1-d12/*"円2は円1と内接するので"*//*(◆修正部分3)*/;
:
.補充問題
. 補充問題
◆コマンド番号30201
●三角形の外接円
●●●●●●●●●●●●●●●●
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:"・補充問題5 30201 A(-2,1),B(1,4),C(0,5)とし、△ABCの外接円の半径と中心は"/*(◆修正部分1)*/$
KOUSATU:"各辺の垂直2等分線の交点だから、・・・"/*(◆修正部分1)*/;
KANSUU:"";
dis(p1l,p2l):=block([ans],ans:sqrt((p2l-p1l).(p2l-p1l)))/*2点間の距離*/;
rpl(p1l,e):=block([ansl,e1,ne1l,Ne1l,d12,p2l],e1:expand(lhs(e)-rhs(e)),
/**/ne1l:[coeff(e1,x,1),coeff(e1,y,1)],Ne1l:ne1l/sqrt(ne1l.ne1l),
/**/d12:dpe(p1l,e),p2l:p1l+d12*Ne1l,ansl:p2l)/*p1lからeに垂線を下した点*/$
dpe(p1l,e):=block([ans,e1,a,b],e1:expand(lhs(e)-rhs(e)),
/**/a:coeff(e1,x,1),b:coeff(e1,y,1),
/**/d13:-subst([x=p1l[1],y=p1l[2]],e1)/sqrt(a^2+b^2),ans:d13)/*p1lからeまでの(a,b)/sqrt(a^2+b^2)方向の距離*/$
r2e(p1l,p2l):=block([anse,p3l,gr],p3l:(p1l+p2l)/2,gr:p2l-p1l,anse:gr[1]*(x-p3l[1])+gr[2]*(y-p3l[2])=0);/*垂直二等分線*/
TEJUN:""$
p1L:[-2,1];p2L:[1,4];p3L:[0,5]/*(◆修正部分2)*/;
e1:r2e(p1L,p2L);e2:r2e(p2L,p3L)/**/;
sxyl:solve([e1,e2],[x,y]);p0L:[rhs(sxyl[1][1]),rhs(sxyl[1][2])];r:dis(p1L,p0L)/*外接円の中心、半径*/;
r:rat(dis(p0L,p1L),algebraic:true);e3:(x-p0L[1])^2+(y-p0L[2])^2=r^2;
ansl:[p0L,r,e3,"[外接円の中心、半径、外接円の方程式]"];
KAKUNIN:"図で確認"/**/$
xm:-10; xM:10; ym:xm/8.7*6.7; yM:xM/8.7*6.7/**/;
p1:points([p1L,p2L,p3L,p1L]);
p3:points([p0L]);
g1:implicit(e1,x,xm,xM,y,ym,yM);
g2:implicit(e2,x,xm,xM,y,ym,yM);
g3:implicit(e3,x,xm,xM,y,ym,yM);
yL:[[0,ym],[0,yM]]/*y軸*/;
wxdraw2d(yrange=[ym,yM] /* "()" */,
/**/color=black,explicit(0,x,xm,xM),points_joined=true,points(yL),points_joined=false/*xy軸*/,
/**/points_joined=true, color=red, point_type=filled_circle, point_size=2,line_width=2,p3,g3/*求めるもの*//**/,
/**/points_joined=true, color=cyan, point_type=filled_circle, point_size=1,line_width=1,g1,g2/*途中のもの*//**/,
/**/points_joined=true, color=blue, point_type=filled_circle, point_size=1,line_width=1,p1/*与えられたもの*/
/**/) /* "青が与えられたもの、赤が求めるもの(〇〇修正時y,y2の定義域変更に注意)" */;
KAITOU:ansl/*解答*//**/$
SUJIMITI:"点A,Bの中点は( )で、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・補充問題5 30201 A(1,1),B(2,1),C(-1,0)とし、△ABCの外接円の半径と中心は"/*(◆修正部分1)*/$
KOUSATU:"各辺の垂直2等分線の交点だから、・・・"/*(◆修正部分1)*/;
p1L:[1,1];p2L:[2,1];p3L:[-1,0]/*(◆修正部分2)*/;
◆コマンド番号30202
●三角形の外接円
●●●●●●●●●●●●●●●●
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:"・補充問題5 30202 A(-2,1),B(1,4),C(0,5)とし、△ABCの外接円の半径と中心は"/*(◆修正部分1)*/$
KOUSATU:"各辺の垂直2等分線の交点で、線分ABの垂直二等分線と直線BCの交点は、ABの中点から垂線をBCに下した点から、・・・"/**/;
KANSUU:"";
dis(p1l,p2l):=block([ans],ans:sqrt((p2l-p1l).(p2l-p1l)))/*2点間の距離*/;
rpl(p1l,e):=block([ansl,e1,ne1l,Ne1l,d12,p2l],e1:expand(lhs(e)-rhs(e)),
/**/ne1l:[coeff(e1,x,1),coeff(e1,y,1)],Ne1l:ne1l/sqrt(ne1l.ne1l),
/**/d12:dpe(p1l,e),p2l:p1l+d12*Ne1l,ansl:p2l)/*p1lからeに垂線を下した点*/$
rppl(p1l,p2l,p3l):=block([ansl,d23l,n23l,p4l],d23l:p3l-p2l,
/**/n23l:[-d23l[2],d23l[1]],n23l:n23l/sqrt(n23l.n23l),p4l:p1l+(p2l-p1l).n23l*n23l,ansl:p4l);
dpe(p1l,e):=block([ans,e1,a,b],e1:expand(lhs(e)-rhs(e)),
/**/a:coeff(e1,x,1),b:coeff(e1,y,1),
/**/d13:-subst([x=p1l[1],y=p1l[2]],e1)/sqrt(a^2+b^2),ans:d13)/*p1lからeまでの(a,b)/sqrt(a^2+b^2)方向の距離*/$
r2e(p1l,p2l):=block([anse,p3l,gr],p3l:(p1l+p2l)/2,gr:p2l-p1l,anse:gr[1]*(x-p3l[1])+gr[2]*(y-p3l[2])=0);/*垂直二等分線*/
p1L:[-2,1];p2L:[0,5];p3L:[1,4]/*(◆修正部分2)*/;
hp12L:(p1L+p2L)/2;d21l:p1L-p2L;
hp23L:(p2L+p3L)/2;d23l:p3L-p2L;
rp123L:rppl(hp12L,p2L,p3L);p5L:p2L+d23l/sqrt(d23l.d23l)*dis(p2L,hp12L)^2/dis(p2L,rp123L);
rp312L:rppl(hp23L,p2L,p1L);p4L:p2L+d21l/sqrt(d21l.d21l)*dis(p2L,hp23L)^2/dis(p2L,rp312L);
p6L:(p4L*dis(hp12L,p2L)*dis(hp23L,p5L)+hp23L*dis(p4L,hp12L)*dis(p2L,p23L))/(dis(hp12L,p2L)*dis(hp23L,p5L)+dis(p4L,hp12L)*dis(p2L,hp23L))/*(◆修正部分3)*/;
p0L:p6L;r:dis(p1L,p0L);e3:(x-p0L[1])^2+(y-p0L[2])^2=r^2/*外接円の中心、半径*/;
ansl:[p0L,r,e3,"[外接円の中心、半径、外接円の方程式]"];
KAKUNIN:"図で確認"/**/$
xm:-10; xM:10; ym:xm/8.7*6.7; yM:xM/8.7*6.7/**/;
p1:points([p1L,p2L,p3L,p1L]);
p2:points([hp12L,p4L,hp23L,p5L,hp12L]);
p3:points([p0L]);
g3:implicit(e3,x,xm,xM,y,ym,yM);
yL:[[0,ym],[0,yM]]/*y軸*/;
wxdraw2d(yrange=[ym,yM] /* "()" */,
/**/color=black,explicit(0,x,xm,xM),points_joined=true,points(yL),points_joined=false/*xy軸*/,
/**/points_joined=true, color=red, point_type=filled_circle, point_size=2,line_width=2,p3,g3/*求めるもの*//**/,
/**/points_joined=true, color=cyan, point_type=filled_circle, point_size=1,line_width=1,p2/*途中のもの*//**/,
/**/points_joined=true, color=blue, point_type=filled_circle, point_size=1,line_width=1,p1/*与えられたもの*/
/**/) /* "青が与えられたもの、赤が求めるもの(〇〇修正時y,y2の定義域変更に注意)" */;
KAITOU:ansl/*解答*//**/$
SUJIMITI:"線分ABの中点から直線BCに垂線を下した点は( )で、直角三角形の相似により、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・補充問題5 30202 A(1,1),B(2,1),C(-1,0)とし、△ABCの外接円の半径と中心は"/*(◆修正部分1)*/$
p1L:[1,1];p2L:[2,1];p3L:[-1,0]/*(◆修正部分2)*/;
p6L:(-p4L*dis(hp12L,p2L)*dis(hp23L,p5L)+hp23L*dis(p4L,hp12L)*dis(p2L,p5L))/(-dis(hp12L,p2L)*dis(hp23L,p5L)+dis(p4L,hp12L)*dis(p2L,p5L))/*(◆修正部分3)*/;
◆コマンド番号30203
●円と直線の共有点
●●●●●●●●●●●●●●●●
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:"・補充問題6 30203 円x^2+y^2=20と直線3*x-y-10=0の共有点の個数は"/*(◆修正部分1)*/$
KOUSATU:"共有点の個数は、円の中心と半径、中心から直線までの距離で分かるから、・・・"/**/;
KANSUU:"";
dis(p1l,p2l):=block([ans],ans:sqrt((p2l-p1l).(p2l-p1l)))/*2点間の距離*/;
rpl(p1l,e):=block([ansl,e1,ne1l,Ne1l,d12,p2l],e1:expand(lhs(e)-rhs(e)),
/**/ne1l:[coeff(e1,x,1),coeff(e1,y,1)],Ne1l:ne1l/sqrt(ne1l.ne1l),
/**/d12:dpe(p1l,e),p2l:p1l+d12*Ne1l,ansl:p2l)/*p1lからeに垂線を下した点*/$
rppl(p1l,p2l,p3l):=block([ansl,d23l,n23l,p4l],d23l:p3l-p2l,
/**/n23l:[-d23l[2],d23l[1]],n23l:n23l/sqrt(n23l.n23l),p4l:p1l+(p2l-p1l).n23l*n23l,ansl:p4l);
dpe(p1l,e):=block([ans,e1,a,b],e1:expand(lhs(e)-rhs(e)),
/**/a:coeff(e1,x,1),b:coeff(e1,y,1),
/**/d13:-subst([x=p1l[1],y=p1l[2]],e1)/sqrt(a^2+b^2),ans:d13)/*p1lからeまでの(a,b)/sqrt(a^2+b^2)方向の距離*/$
r2e(p1l,p2l):=block([anse,p3l,gr],p3l:(p1l+p2l)/2,gr:p2l-p1l,anse:gr[1]*(x-p3l[1])+gr[2]*(y-p3l[2])=0)/*垂直二等分線*/;
TEJUN:"";
xm:-10; xM:10; ym:xm/8.7*6.7; yM:xM/8.7*6.7/**/;
e1:x^2+y^2=20;e12:lhs(e1);e2:3*x-y-10=0;e22:lhs(e2)/*(◆修正部分2)*/;
p0L:[-coeff(e12,x,1)/2, -coeff(e12,y,1)/2];r:sqrt(rhs(e1));
p1L:rpl(p0L,e2);d12:dis(p0L,p1L);cd2:r^2-d12^2;dl:[-coeff(e22,y,1),coeff(e22,x,1)];Dl:dl/sqrt(dl.dl);
if cd2>0 then (MES:"2点で交わる", p2L:p1L+sqrt(cd2)*Dl,p3L:p1L-sqrt(cd2)*Dl)
/**/elseif cd2=0 then (MES:"1点で接する",p2L:p1L,p3L:p1L) else (MES:"共有点なし",p2L:[xm,ym],p3L:p2L);
ansl:[MES,"[共有点の個数]"];
KAKUNIN:"図で確認"/**/$
p1:points([p0L]);
p2:points([p0L,p1L]);
p3:points([p2L]);p4:points([p3L]);
g1:implicit(e1,x,xm,xM,y,ym,yM);
g2:implicit(e2,x,xm,xM,y,ym,yM);
yL:[[0,ym],[0,yM]]/*y軸*/;
wxdraw2d(yrange=[ym,yM] /* "()" */,
/**/color=black,explicit(0,x,xm,xM),points_joined=true,points(yL),points_joined=false/*xy軸*/,
/**/points_joined=true, color=red, point_type=filled_circle, point_size=2,line_width=2,p3,p4/*求めるもの*//**/,
/**/points_joined=true, color=cyan, point_type=filled_circle, point_size=1,line_width=1,p2/*途中のもの*//**/,
/**/points_joined=true, color=white, point_type=filled_circle, point_size=2,line_width=2,points([[xm,ym]])/*ダミー点の消去*//**/,
/**/points_joined=true, color=blue, point_type=filled_circle, point_size=1,line_width=1,p1,g1,g2/*与えられたもの*/
/**/) /* "青が与えられたもの、赤が求めるもの(〇〇修正時y,y2の定義域変更に注意)" */;
KAITOU:ansl/*解答*//**/$
SUJIMITI:"円の中心から、線分までの距離は( )で、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・補充問題6 30203 円(x-1)^2+y^2=2と直線x+y-3=0の共有点の個数は"/*(◆修正部分1)*/$
e1:x^2+y^2=2;e12:lhs(e1);e2:x+y-3=0;e22:lhs(e2)/*(◆修正部分2)*/;
p6L:(-p4L*dis(hp12L,p2L)*dis(hp23L,p5L)+hp23L*dis(p4L,hp12L)*dis(p2L,p5L))/(-dis(hp12L,p2L)*dis(hp23L,p5L)+dis(p4L,hp12L)*dis(p2L,p5L))/*(◆修正部分3)*/;
◆コマンド番号30204
●円と直線の位置関係
●●●●●●●●●●●●●●●●
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:"・補充問題7 30204 円x^2+y^2=5と直線x+3*y+c=0が2つの点で交わるときcの値の範囲は
"/*(◆修正部分1)*/$
KOUSATU:"2つの点で交わるから、円の中心から直線までの距離は半径より小さいので、・・・"/*(◆修正部分1)*/;
KANSUU:"";
dis(p1l,p2l):=block([ans],ans:sqrt((p2l-p1l).(p2l-p1l)))/*2点間の距離*/;
rpl(p1l,e):=block([ansl,e1,ne1l,Ne1l,d12,p2l],e1:expand(lhs(e)-rhs(e)),
/**/ne1l:[coeff(e1,x,1),coeff(e1,y,1)],Ne1l:ne1l/sqrt(ne1l.ne1l),
/**/d12:dpe(p1l,e),p2l:p1l+d12*Ne1l,ansl:p2l)/*p1lからeに垂線を下した点*/$
rppl(p1l,p2l,p3l):=block([ansl,d23l,n23l,p4l],d23l:p3l-p2l,
/**/n23l:[-d23l[2],d23l[1]],n23l:n23l/sqrt(n23l.n23l),p4l:p1l+(p2l-p1l).n23l*n23l,ansl:p4l);
dpe(p1l,e):=block([ans,e1,a,b],e1:expand(lhs(e)-rhs(e)),
/**/a:coeff(e1,x,1),b:coeff(e1,y,1),
/**/d13:-subst([x=p1l[1],y=p1l[2]],e1)/sqrt(a^2+b^2),ans:d13)/*p1lからeまでの(a,b)/sqrt(a^2+b^2)方向の距離*/$
r2e(p1l,p2l):=block([anse,p3l,gr],p3l:(p1l+p2l)/2,gr:p2l-p1l,anse:gr[1]*(x-p3l[1])+gr[2]*(y-p3l[2])=0)/*垂直二等分線*/;
TEJUN:"";
load(fourier_elim)$
e1:x^2+y^2=5;e12:lhs(e1);e2:x+3*y+c=0;e22:lhs(e2)/*(◆修正部分2)*/;
p0L:[-coeff(e12,x,1)/2, -coeff(e12,y,1)/2];r:sqrt(rhs(e1));
p1L:rpl(p0L,e2);d12:dis(p0L,p1L);
scl:fourier_elim([r>d12],[c]);scl:rootscontract(scl);scl:[-5*sqrt(2)< c and c< 5*sqrt(2)]/*(◆修正部分3)*/;
ansl:[scl,"2つの交点をもつcの範囲"];C:3;p1L:subst(c=C,p1L);e2:subst(c=C,e2)/*(◆修正部分3)*/;
KAKUNIN:"図で確認"/**/$
xm:-10; xM:10; ym:xm/8.7*6.7; yM:xM/8.7*6.7/*(◆修正部分4)*/;
p1:points([p0L]);
p2:points([p0L,p1L]);
g1:implicit(e1,x,xm,xM,y,ym,yM);
g2:implicit(e2,x,xm,xM,y,ym,yM)/*(◆修正部分5)*/;
yL:[[0,ym],[0,yM]]/*y軸*/;
wxdraw2d(yrange=[ym,yM] /* "()" */,
/**/color=black,explicit(0,x,xm,xM),points_joined=true,points(yL),points_joined=false/*xy軸*/,
/**/points_joined=true, color=red, point_type=filled_circle, point_size=2,line_width=2,g2/*求めるもの*//*(◆修正部分6)*/,
/**/points_joined=true, color=cyan, point_type=filled_circle, point_size=1,line_width=1,p2/*途中のもの*//**/,
/**/points_joined=true, color=blue, point_type=filled_circle, point_size=1,line_width=1,p1,g1/*与えられたもの*/
/**/) /* "青が与えられたもの、赤が求めるもの(〇〇修正時y,y2の定義域変更に注意)" */;
KAITOU:ansl/*解答*//**/$
SUJIMITI:"円の中心から、線分までの距離は( )で、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・補充問題7 30204 円x^2+y^2=10と直線y=3*x+mが接するときmの値は"/*(◆修正部分1)*/$
KOUSATU:"接するから、円の中心から直線までの距離は半径と等しいので、・・・"/*(◆修正部分1)*/;
e1:x^2+y^2=10;e12:lhs(e1);e2:y=3*x+m;e22:lhs(e2)-rhs(e2)/*(◆修正部分2)*/;
sml:solve(r=d12,m);sml:[m=-10,m=10];m1:rhs(sml[1]);m2:rhs(sml[2])/*(◆修正部分3)*/;
ansl:[sml,"接するときのmの値"];p1L:subst(m=m1,p1L);e21:subst(m=m1,e2);p2L:subst(m=m2,p1L);e22:subst(m=m2,e2)/*(◆修正部分3)*/;
xm:-15; xM:15; ym:xm/8.7*6.7; yM:xM/8.7*6.7/*(◆修正部分4)*/;
g21:implicit(e21,x,xm,xM,y,ym,yM);g22:implicit(e22,x,xm,xM,y,ym,yM)/*(◆修正部分5)*/;
/**/points_joined=true, color=red, point_type=filled_circle, point_size=2,line_width=2,g21,g22/*求めるもの*//*(◆修正部分6)*/,