:
Maxima数学II自習教材開発
教材の概要
3 図形と方程式 3)軌跡と領域
8.軌跡と方程式
9.不等式の表す領域
303.補充問題・章末問題
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
:
8.軌跡と方程式
A. 座標平面上の点の軌跡
◆コマンド番号801
●座標平面上の点の軌跡
●●●●●●●●●●●●●●●●
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:"・例14・練習31 801 A(0,2),B(4,0)のとき、AP=BPを満たす点の軌跡は"/*(◆修正部分1)*/$
KOUSATU:"図形的には、A,Bの垂直二等分線が該当するが、それ以外にないか、方程式で確認するという趣旨で、・・・"/*(◆修正部分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);
p1L:[0,2];p2L:[4,0];pL:[x,y];e1:dis(p1L,pL)=dis(p2L,pL);e11:e1^2/*(◆修正部分2)*/;
e12:expand(e11-rhs(e11));gcdce:gcd(coeff(lhs(e12),x,1),factor(coeff(lhs(e12),x,0)));e12:expand(e12/gcdce);
ansl:[e12,"軌跡の方程式"]/**/;
KAKUNIN:"図で確認"/**/$
xm:-10; xM:10; ym:xm/8.3*6.7; yM:xM/8.3*6.7/**/;
p3L:(p1L+p2L)/2;dl:[-coeff(lhs(e12),y,1),coeff(lhs(e12),x,1)];Dl:dl/sqrt(dl.dl);p4L:p3L+2*Dl/*(◆修正部分3)*/;
p1:points([p1L,p2L]);p2:points([p2L,p3L,p4L,p1L,p2L,p4L]);
g1:implicit(e12,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, p2,g1/*求めるもの*//**/,
/**/points_joined=false, color=blue, point_type=filled_circle, point_size=1,p1/*与えられたもの*/
/**/) /* "青が与えられたもの、赤が求めるもの(〇〇修正時y,y2の定義域変更に注意)" */;
KAITOU:ansl/*解答*//**/$
SUJIMITI:"軌跡を描く点を(x,y)として、2点との距離が等しいという方程式を作ると( )で、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・例14・練習31 801 A(-1,0),B(1,0)のとき、AP^2-BP^2=8を満たす点の軌跡は"/*(◆修正部分1)*/$
KOUSATU:"3点の距離から方程式をつくり、・・・"/*(◆修正部分1)*/;
p1L:[-1,0];p2L:[1,0];pL:[x,y];e1:dis(p1L,pL)^2-dis(p2L,pL)^2=8;e11:e1/*(◆修正部分2)*/;
dl:p2L-p1L;nl:[-dl[2],dl[1]];e2:([x,y]-p1L).nl=0;sxyl:solve([e2,e12],[x,y]);p3L:subst(sxyl,[x,y]);p4L:p3L+nl/*(◆修正部分3)*/;
◆コマンド番号802
●座標平面上の点の軌跡
●●●●●●●●●●●●●●●●
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:"・例題9・練習32 802 O(0,0),A(3,0)のとき、OP:PA=2:1を満たす点Pの軌跡は"/*(◆修正部分1)*/$
KOUSATU:"図形的には、∠OPAとその外角の二等分線が直交することから円が導かれるが、それ以外にないか、方程式で確認するという趣旨で、・・・"/**/;
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);
p1L:[0,0];p2L:[3,0];pl:[2,1];pL:[x,y];e1:pl[2]*dis(p1L,pL)=pl[1]*dis(p2L,pL);e11:e1^2/*(◆修正部分2)*/;
e12:expand(e11-rhs(e11));gcdce:gcd(gcd(coeff(lhs(e12),x,2),coeff(lhs(e12),x,1)),factor(coeff(lhs(e12),x,0)));e12:-expand(e12/gcdce);
p3L:[-coeff(lhs(e12),x,1)/2, -coeff(lhs(e12),y,1)/2];e13:(x-p3L[1])^2+(y-p3L[2])^2=-subst([x=p3L[1],y=p3L[2]],lhs(e12));r:sqrt(rhs(e13));
ansl:[p3L,r,e13,"[中心、半径、軌跡の方程式]"]/**/;
KAKUNIN:"図で確認"/**/$
xm:-10; xM:10; ym:xm/8.3*6.7; yM:xM/8.3*6.7/**/;
nl:[-1,2];p4L: (p1L+2*p2L)/(1+2); e2:([x,y]-p4L).nl=0;p5L:rpl(p2L,e2);p6L:(-p2L+2*p5L)/(-1+2);p7L:(-pl[2]*p1L+pl[1]*p6L)/(-pl[2]+pl[1])/**/;
p1:points([p1L,p2L]);p2:points([p1L,p7L,p2L]);p3:points([p2L,p6L,p5L,p4L,p7L]); p4:points([p3L]);
g1:implicit(e13,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, p2,g1/*求めるもの*//**/,
/**/points_joined=true, color=cyan, point_type=filled_circle, point_size=1,p3,p4/*途中のもの*/,
/**/points_joined=false, color=blue, point_type=filled_circle, point_size=1,p1/*与えられたもの*/
/**/) /* "青が与えられたもの、赤が求めるもの(〇〇修正時y,y2の定義域変更に注意)" */;
KAITOU:ansl/*解答*//**/$
SUJIMITI:"軌跡を描く点を(x,y)として、2点との距離が等しいという方程式を作ると( )で、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・例題9・練習32 802 A(-3,0),B(2,0)のとき、AP:PB=2:1を満たす点Pの軌跡は"/*(◆修正部分1)*/$
p1L:[-3,0];p2L:[2,0];pl:[3,2];pL:[x,y];e1:pl[2]*dis(p1L,pL)=pl[1]*dis(p2L,pL);e11:e1^2/*(◆修正部分2)*/;
B. 線分の中点の軌跡
◆コマンド番号803
●線分の中点の軌跡
●●●●●●●●●●●●●●●●
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・練習33 803 点Qがx^2+y^2=4上を動くとき、点A(4,0)として、線分AQの中点Pの軌跡は"/*(◆修正部分1)*/$
KOUSATU:"図形的には、中心とAとの中点が中心、半径が半分の円が導かれるが、それ以外にないか、方程式で確認するという趣旨で、・・・"/**/;
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);
e1:x^2+y^2=4;p1L:[4,0];poL:[-coeff(expand(lhs(e1)),x,1)/2, -coeff(expnad(lhs(e1)),y,1)/2]/*(◆修正部分2)*/;
p2L:[x,y];p3L:[X,Y];e2:p3L=(p1L+p2L)/2;e2l:[lhs(e2)[1]=rhs(e2)[1],lhs(e2)[2]=rhs(e2)[2]];s2l:solve(e2l,p2L);
e3:subst(s2l[1],e1);e4:expand(lhs(e3));gcde4:gcd(coeff(e4,X,2),coeff(e4,X,1),coeff(e4,X,0));
e5:expand(e3/gcde4);p4L:[-coeff(lhs(e5),X,1)/2,-coeff(lhs(e5),Y,1)/2];
e6:(X-p4L[1])^2+(Y-p4L[2])^2=rhs(e5)-subst([X=p4L[1],Y=p4L[2]],lhs(e5));e7:subst([X=x,Y=y],e6);
ansl:[p4L,sqrt(rhs(e7)),e7,"[中心、半径、方程式]"];
KAKUNIN:"図で確認"/**/$
xm:-10; xM:10; ym:xm/8.3*6.7; yM:xM/8.3*6.7/*(◆修正部分3)*/;
p5L:[1,rhs(solve(subst(x=1,e1),y)[1])];p6L:(p5L+p1L)/2;
p1:points([p1L]);p2:points([poL,p4L,p1L]);p3:points([p5L,p6L,p1L]);
g1:implicit(e1,x,xm,xM,y,ym,yM);
g2:implicit(e7,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, p2,g2/*求めるもの*//**/,
/**/points_joined=true, color=cyan, point_type=filled_circle, point_size=1,p3/*途中のもの*/,
/**/points_joined=false, color=blue, point_type=filled_circle, point_size=1,p1,g1/*与えられたもの*/
/**/) /* "青が与えられたもの、赤が求めるもの(〇〇修正時y,y2の定義域変更に注意)" */;
KAITOU:ansl/*解答*//**/$
SUJIMITI:"軌跡を描く点を(X,Y)として、円上を動く動点(x,y)と定点Aから、方程式を作ると( )で、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・応用例題3・練習33 803 点Qがx^2+y^2=16上を動くとき、点A(0,8)として、線分AQの中点Pの軌跡は"/*(◆修正部分1)*/$
e1:x^2+y^2=16;p1L:[0,8];poL:[-coeff(expand(lhs(e1)),x,1)/2, -coeff(expnad(lhs(e1)),y,1)/2]/*(◆修正部分2)*/;
xm:-15; xM:15; ym:xm/8.3*6.7; yM:xM/8.3*6.7/*(◆修正部分3)*/;
:
9.不等式の表す領域
A. 直線を境界線とする領域
◆コマンド番号901
●不等式の表す領域
●●●●●●●●●●●●●●●●
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:"・例15・練習34 901 2*x+y-3<=0が表す領域は"/*(◆修正部分1)*/$
KOUSATU:"図形的には、垂直方向(2,1)が左辺の値を増大することになるので、・・・"/*(◆修正部分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);
e1:2*x+y-3<=0;e12:lhs(e1)-rhs(e1);sg:-1/*-2< ,-1< =,0=,1= >,2>*/;n1l:[coeff(e12,x,1),coeff(e12,y,1)]/*(◆修正部分2)*/;
p1L:[0,rhs(solve(subst(x=0,e12),y)[1])];p2L:p1L+sg*n1l;
ansl:[e12=0,sg*n1l,if abs(sg)=1 then "含む" else "含まず","[境界、領域の境界からの方向、境界を含むか否か]"];
KAKUNIN:"図で確認"/**/$
xm:-10; xM:10; ym:xm/8.3*6.7;yM:xM/8.3*6.7/**/;
p1:points([p1L]);v1:vector(p1L,p2L-p1L);
g1:implicit(e12=0,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/*(◆修正部分3)*/,
/**/head_length=1,head_angle = 10, v1/*求めるもの*/,
/**/points_joined=false, color=blue, point_type=filled_circle, point_size=1,g1/*与えられたもの*/
/**/) /* "青が与えられたもの、赤が求めるもの(〇〇修正時y,y2の定義域変更に注意)" */;
KAITOU:ansl/*解答*//**/$
SUJIMITI:"等式にして境界をもとめ、求める領域を境界からの方向で定めると、境界は( )で、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・例15・練習34 901 y>x+1が表す領域は"/*(◆修正部分1)*/$
KOUSATU:"図形的には、垂直方向(-1,1)が左辺-右辺の値を増大することになるので、・・・"/*(◆修正部分1)*/;
e1:y>x+1;e12:lhs(e1)-rhs(e1);sg:2/*-2< ,-1< =,0=,1= >,2>*/;n1l:[coeff(e12,x,1),coeff(e12,y,1)]/*(◆修正部分2)*/;
/**/points_joined=true, color=red, point_type=circle, point_size=2,line_width=2, p1/*(◆修正部分3)*/,
◆コマンド番号902
●不等式の表す領域
●●●●●●●●●●●●●●●●
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:"・例16・練習35 902 x>2が表す領域は"/*(◆修正部分1)*/$
KOUSATU:"図形的には、垂直方向(1,0)が左辺の値を増大することになるので、・・・"/**/;
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);
e1:x>2;e12:lhs(e1)-rhs(e1);sg:2/*-2< ,-1< =,0=,1= >,2>*/;n1l:[coeff(e12,x,1),coeff(e12,y,1)]/*(◆修正部分2)*/;
p1L:if n1l[2]#0 then [0,rhs(solve(subst(x=0,e12),y)[1])] else [rhs(solve(subst(y=0,e12=0),x)[1]),0];p2L:p1L+sg/abs(sg)*2*n1l;
ansl:[e12=0,sg*n1l,if abs(sg)=1 then "含む" else "含まず","[境界、領域の境界からの方向、境界を含むか否か]"];
KAKUNIN:"図で確認"/**/$
xm:-10; xM:10; ym:xm/8.3*6.7; yM:xM/8.3*6.7/**/;
p1:points([p1L]);v1:vector(p1L,p2L-p1L);
g1:implicit(e12=0,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=circle, point_size=2,line_width=2, p1/*(◆修正部分3)*/,
/**/head_length=1,head_angle = 25, v1/*求めるもの*/,
/**/points_joined=false, color=blue, point_type=filled_circle, point_size=1,g1/*与えられたもの*/
/**/) /* "青が与えられたもの、赤が求めるもの(〇〇修正時y,y2の定義域変更に注意)" */;
KAITOU:ansl/*解答*//**/$
SUJIMITI:"等式にして境界をもとめ、求める領域を境界からの方向で定めると、境界は( )で、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・例16・練習35 902 x+2>0が表す領域は"/*(◆修正部分1)*/$
e1:x+2>=0;e12:lhs(e1)-rhs(e1);sg:1/*-2< ,-1< =,0=,1>=,2>*/;n1l:[coeff(e12,x,1),coeff(e12,y,1)]/*(◆修正部分2)*/;
/**/points_joined=true, color=red, point_type=filled_circle, point_size=2,line_width=2, p1/*(◆修正部分3)*/,
B. 円を境界線とする領域
◆コマンド番号903
●不等式の表す領域
●●●●●●●●●●●●●●●●
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:"・練習36 903 x^2+y^2< 4が表す領域は"/*(◆修正部分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);
e1:x^2+y^2< 4;e12:expand(lhs(e1)-rhs(e1));sg:-2/*-2< ,-1< =,0=,1= >,2>*/;p1L:[-coeff(e12,x,1)/2,-coeff(e12,y,1)/2]/*(◆修正部分2)*/;
r:sqrt(rhs(e1));n1l:[0,r];N1l:n1l/r;p2L:p1L+n1l;p3L:p2L+sg/abs(sg)*N1l;
ansl:[e12=0,sg/abs(sg)*N1l,if abs(sg)=1 then "含む" else "含まず","[境界、領域の境界からの方向、境界を含むか否か]"];
KAKUNIN:"図で確認"/**/$
xm:-10; xM:10; ym:xm/8.3*6.7; yM:xM/8.3*6.7/**/;
p1:points([p1L]);p2:points([p2L]);v1:vector(p2L,p3L-p2L);
g1:implicit(e12=0,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=circle, point_size=2,line_width=2, p2/*(◆修正部分3)*/,
/**/head_length=1/2,head_angle = 30, v1/*求めるもの*//**/,
/**/points_joined=false, color=blue, point_type=filled_circle, point_size=1,g1,p1/*与えられたもの*/
/**/) /* "青が与えられたもの、赤が求めるもの(〇〇修正時y,y2の定義域変更に注意)" */;
KAITOU:ansl/*解答*//**/$
SUJIMITI:"等式にして境界をもとめ、求める領域を境界からの方向で定めると、境界は( )で、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・練習36 903 x^2+y^2>= 9が表す領域は"/*(◆修正部分1)*/$
e1:x^2+y^2>= 9;e12:expand(lhs(e1)-rhs(e1));sg:1/*-2< ,-1< =,0=,1= >,2>*/;p1L:[-coeff(e12,x,1)/2,-coeff(e12,y,1)/2]/*(◆修正部分2)*/;
/**/points_joined=true, color=red, point_type=filled_circle, point_size=2,line_width=2, p2/*(◆修正部分3)*/,
◆コマンド番号904
●不等式の表す領域
●●●●●●●●●●●●●●●●
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:"・例17・練習37 904 x^2+(y-2)^2< 4が表す領域は"/*(◆修正部分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);
e1:x^2+(y-2)^2< 4;e12:expand(lhs(e1)-rhs(e1));sg:-2/*-2< ,-1< =,0=,1= >,2>*/;p1L:[-coeff(e12,x,1)/2,-coeff(e12,y,1)/2]/*(◆修正部分2)*/;
r:sqrt(rhs(e1));n1l:[0,r];N1l:n1l/r;p2L:p1L+n1l;p3L:p2L+sg/abs(sg)*N1l;
ansl:[lhs(e1)=rhs(e1),if sg< 0 then "内部" else "外部",if abs(sg)=1 then "含む" else "含まず","[境界線、境界線の内部か外部か、境界を含むか否か]"];
KAKUNIN:"図で確認"/**/$
xm:-10; xM:10; ym:xm/8.3*6.7; yM:xM/8.3*6.7/**/;
p1:points([p1L]);p2:points([p2L]);v1:vector(p2L,p3L-p2L);
g1:implicit(e12=0,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, p2/*(◆修正部分3)*/,
/**/head_length=1/2,head_angle = 30, v1/*求めるもの*//**/,
/**/points_joined=false, color=blue, point_type=filled_circle, point_size=1,g1,p1/*与えられたもの*/
/**/) /* "青が与えられたもの、赤が求めるもの(〇〇修正時y,y2の定義域変更に注意)" */;
KAITOU:ansl/*解答*//**/$
SUJIMITI:"等式にして境界をもとめ、求める領域を境界からの方向で定めると、境界は( )で、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・例17・練習37 904 (x-1)^2+(y-2)^2> 9が表す領域は"/*(◆修正部分1)*/$
e1:(x-1)^2+(y-2)^2> 9;e12:expand(lhs(e1)-rhs(e1));sg:2/*-2< ,-1< =,0=,1= >,2>*/;p1L:[-coeff(e12,x,1)/2,-coeff(e12,y,1)/2]/*(◆修正部分2)*/;
/**/points_joined=true, color=red, point_type=circle, point_size=2,line_width=2, p2/*(◆修正部分3)*/,
C. 連立不等式の表す領域
◆コマンド番号905
●連立不等式の表す領域
●●●●●●●●●●●●●●●●
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:"・例18・練習38 905 連立不等式\{x+y-2>0,x-y< 0\}が表す領域は"/*(◆修正部分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)/*垂直二等分線*/;
el(p1l):=block([ansl,l],l:sqrt(p1l[1]^2+p1l[2]^2),ansl:p1l/l)/*単位ベクトル化*/;
TEJUN:""$
declare(x,real,y,real);
e1:x+y-2>0;e12:expand(lhs(e1)-rhs(e1));sg1:2/*-2< ,-1< =,0=,1= >,2>*/;n1l:el([coeff(e12,x,1),coeff(e12,y,1)])/abs(sg1)/*(◆修正部分2)*/;
e2:x-y< 0;e22:expand(lhs(e2)-rhs(e2));sg2:-2/*-2< ,-1< =,0=,1= >,2>*/;n2l:el([coeff(e22,x,1),coeff(e22,y,1)])/abs(sg2)/*(◆修正部分2)*/;
s12l:solve([e12,e22],[x,y]);p12L:[rhs(s12l[1][1]),rhs(s12l[1][2])];n12l:2*(sg1*n1l+sg2*n2l)/2/*(◆修正部分2)*/;
p3L:p12L+2*n12l;v1:vector(p12L,p3L-p12L);
ansl:[[lhs(e1)=rhs(e1),if abs(sg1)=1 then "含む" else "含まず"],[lhs(e2)=rhs(e2),if abs(sg2)=1 then "含む" else "含まず"],v1,"[境界線1、境界1を含むか否か],[境界線2、境界2を含むか否か],境界点とそこからの領域の方向"];
KAKUNIN:"図で確認"/**/$
xm:-10; xM:10; ym:xm/8.3*6.7; yM:xM/8.3*6.7/**/;
p1:points([p12L]);
g1:implicit(e12=0,x,xm,xM,y,ym,yM);
g2:implicit(e22=0,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=circle, point_size=2,line_width=2,p1/*(◆修正部分3)*/,
/**/head_length=1/2,head_angle = 30, v1/*求めるもの*//**/,
/**/points_joined=false, color=blue, point_type=filled_circle, point_size=1,g1,g2/*与えられたもの*/
/**/) /* "青が与えられたもの、赤が求めるもの(〇〇修正時y,y2の定義域変更に注意)" */;
KAITOU:ansl/*解答*//**/$
SUJIMITI:"等式にして境界をもとめ、求める領域を境界からの方向で定めると、境界は( )で、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・例18・練習38 905 連立不等式\{x^2+y^2< 25,2*x+y< 4\}が表す領域は"/*(◆修正部分1)*/$
e1:x^2+y^2< 25;e12:expand(lhs(e1)-rhs(e1));sg1:-2/*-2< ,-1< =,0=,1= >,2>*/;poL:[-coeff(e12,x,1)/2,-coeff(e12,y,1)/2]/*(◆修正部分2)*/;
e2:2*x+y< 4;e22:expand(lhs(e2)-rhs(e2));sg2:-2/*-2< ,-1< =,0=,1= >,2>*/;n2l:el([coeff(e22,x,1),coeff(e22,y,1)])/abs(sg2)/*(◆修正部分2)*/;
s12l:solve([e12,e22],[x,y]);p12L:[rhs(s12l[1][1]),rhs(s12l[1][2])];n1l:el(p12L)/abs(sg1);n12l:(sg1*n1l+sg2*n2l)/*(◆修正部分2)*/;
◆コマンド番号906
●二因子の積の不等式の表す領域
●●●●●●●●●●●●●●●●
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・練習39 906 不等式(x-y)*(x+y-1)< 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に垂線を下した点*/$
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)/*垂直二等分線*/;
el(p1l):=block([ansl,l],l:sqrt(p1l[1]^2+p1l[2]^2),ansl:p1l/l)/*単位ベクトル化*/;
TEJUN:""$
declare(x,real,y,real);
e1:x-y>0;e12:expand(lhs(e1)-rhs(e1));sg1:2/*-2< ,-1< =,0=,1= >,2>*/;n1l:el([coeff(e12,x,1),coeff(e12,y,1)])/abs(sg1)/*(◆修正部分2)*/;
e2:x+y-1< 0;e22:expand(lhs(e2)-rhs(e2));sg2:-2/*-2< ,-1< =,0=,1= >,2>*/;n2l:el([coeff(e22,x,1),coeff(e22,y,1)])/abs(sg2)/*(◆修正部分2)*/;
s12l:solve([e12,e22],[x,y]);p12L:[rhs(s12l[1][1]),rhs(s12l[1][2])];n12l:2*(sg1*n1l+sg2*n2l)/2/*(◆修正部分2)*/;
p3L:p12L+2*n12l;v1:vector(p12L,p3L-p12L);
sg3:-sg1;sg4:-sg2;n34l:2*(sg3*n1l+sg4*n2l)/2/*(◆修正部分2)*/;
p4L:p12L+2*n34l;v2:vector(p12L,p4L-p12L);
ansl:[[lhs(e1)=rhs(e1),if abs(sg1)=1 then "含む" else "含まず"],[lhs(e2)=rhs(e2),if abs(sg2)=1 then "含む" else "含まず"],v1,v2,"[境界線1、境界1を含むか否か],[境界線2、境界2を含むか否か],境界点とそこからの領域の方向1,境界点とそこからの領域の方向2"];
KAKUNIN:"図で確認"/**/$
xm:-10; xM:10; ym:xm/8.3*6.7; yM:xM/8.3*6.7/**/;
p1:points([p12L]);
g1:implicit(e12=0,x,xm,xM,y,ym,yM);
g2:implicit(e22=0,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=circle, point_size=2,line_width=2,p1/*(◆修正部分3)*/,
/**/head_length=1/2,head_angle = 30, v1,v2/*求めるもの*//**/,
/**/points_joined=false, color=blue, point_type=filled_circle, point_size=1,g1,g2/*与えられたもの*/
/**/) /* "青が与えられたもの、赤が求めるもの(〇〇修正時y,y2の定義域変更に注意)" */;
KAITOU:ansl/*解答*//**/$
SUJIMITI:"等式にして境界をもとめ、求める領域を境界からの方向で定めると、境界は( )で、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・応用例題4・練習39 906 不等式x*(x+2*y-2)<= 0が表す領域は"/*(◆修正部分1)*/$
e1:x>=0;e12:expand(lhs(e1)-rhs(e1));sg1:1/*-2< ,-1< =,0=,1= >,2>*/;n1l:el([coeff(e12,x,1),coeff(e12,y,1)])/abs(sg1)/*(◆修正部分2)*/;
e2:x+2*y-2<= 0;e22:expand(lhs(e2)-rhs(e2));sg2:-1/*-2< ,-1< =,0=,1= >,2>*/;n2l:el([coeff(e22,x,1),coeff(e22,y,1)])/abs(sg2)/*(◆修正部分2)*/;
D. 領域と最大最小
◆コマンド番号907
●領域と最大最小
●●●●●●●●●●●●●●●●
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・練習40 907 x,yが4つの不等式x>=0,y>=0,2*x+y<=8,2*x+3*y<=12を満たすとき、x+yの最小は"/*(◆修正部分1)*/$
KOUSATU:"不等式の表す領域を考えて、x+y=kの値が領域のなかで増える方向・減る方向に動かして、・・・"/**/;
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)/*垂直二等分線*/;
el(p1l):=block([ansl,l],l:sqrt(p1l[1]^2+p1l[2]^2),ansl:p1l/l)/*単位ベクトル化*/;
TEJUN:""$
declare(x,real,y,real);
e0:x+y;gr0:el([coeff(e0,x,1),coeff(e0,y,1)])/*(◆修正部分2)*/;
e1:x>=0; e12:expand(lhs(e1)-rhs(e1));sg1:1/*-2< ,-1< =,0=,1= >,2>*/;n1l:el([coeff(e12,x,1),coeff(e12,y,1)])/*(◆修正部分2)*/;
e2:y>=0; e22:expand(lhs(e2)-rhs(e2));sg2:1/*-2< ,-1< =,0=,1= >,2>*/;n2l:el([coeff(e22,x,1),coeff(e22,y,1)])/*(◆修正部分2)*/;
e3:2*x+y<=8; e32:expand(lhs(e3)-rhs(e3));sg3:-1/*-2< ,-1< =,0=,1= >,2>*/;n3l:el([coeff(e32,x,1),coeff(e32,y,1)])/*(◆修正部分2)*/;
e4:2*x+3*y<=12;e42:expand(lhs(e4)-rhs(e4));sg4:-1/*-2< ,-1< =,0=,1= >,2>*/;n4l:el([coeff(e42,x,1),coeff(e42,y,1)])/*(◆修正部分2)*/;
s12l:solve([e12,e22],[x,y]);p12L:[rhs(s12l[1][1]),rhs(s12l[1][2])];n12l:el(sg1*n1l+sg2*n2l)/**/;
s23l:solve([e22,e32],[x,y]);p23L:[rhs(s23l[1][1]),rhs(s23l[1][2])];n23l:el(sg2*n2l+sg3*n3l)/**/;
s34l:solve([e32,e42],[x,y]);p34L:[rhs(s34l[1][1]),rhs(s34l[1][2])];n34l:el(sg3*n3l+sg4*n4l)/**/;
s41l:solve([e42,e12],[x,y]);p41L:[rhs(s41l[1][1]),rhs(s41l[1][2])];n41l:el(sg4*n4l+sg1*n1l)/**/;
v1:vector(p12L,n12l);v2:vector(p23L,n23l);v3:vector(p34L,n34l);v4:vector(p41L,n41l);
print([float(v1),float(v2),float(v3),float(v4),"[境界直線1,2での交点と内部方向、2,3での交点と内部方向、3,4での交点と内部方向、4,1での交点と内部方向]"]);
vnl:[[subst(s12l[1],e0),gr0l.n12l],[subst(s23l[1],e0),gr0l.n23l],[subst(s34l[1],e0),gr0l.n34l],[subst(s41l[1],e0),gr0l.n41l],"[各交点での式e0の値、内部方向での変化率]"]$
print(float(vnl))/**/$
KOUSATU:"各交点での式e0のうちの最大値が求めるもの。交点での外部方向への移動と、内部方向での変化率に着目して、・・・";print(KOUSATU)$
ansl:[[subst(s34l[1],e0),s34l[1]],[subst(s12l[1],e0),s12l],"[[最大値、[そのx,y]],[最小値、[そのx,y]]]"];
KAKUNIN:"図で確認"/**/$
xm:-10; xM:10; ym:xm/8.3*6.7; yM:xM/8.3*6.7/**//*(◆修正部分3)*/;
p1:points([p12L,p23L,p34L,p41L,p12L]);
g1:implicit(e0=subst(s12l[1],e0),x,xm,xM,y,ym,yM);
g2:implicit(e0=subst(s23l[1],e0),x,xm,xM,y,ym,yM);
g3:implicit(e0=subst(s34l[1],e0),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=circle, point_size=2,line_width=2,p1/**/,
/**/head_length=1/2,head_angle = 30, v1,v2,v3,v4/*求めるもの*//**/,
/**/points_joined=false, color=cyan, point_type=filled_circle, point_size=1,g1,g2,g3/*与えられたもの*/,
/**/points_joined=false, color=blue, point_type=filled_circle, point_size=1,p1/*与えられたもの*/
/**/) /* "青が与えられたもの、赤が求めるもの(〇〇修正時y,y2の定義域変更に注意)" */;
KAITOU:ansl/*解答*//**/$
SUJIMITI:"等式にして境界をもとめ、求める領域を境界からの方向で定めると、境界の交点は( )で、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・応用例題5・練習40 907 x,yが不等式{ x>=0, y>=0, x+3*y<=5, 3*x+2*y<=8 }を満たすとき、x+yの最大・最小は"/*(◆修正部分1)*/$
e0:x+y;n0l:el([coeff(e0,x,1),coeff(e0,y,1)])/*(◆修正部分2)*/;
e1:x>=0;e12:expand(lhs(e1)-rhs(e1));sg1:1/*-2< ,-1< =,0=,1= >,2>*/;n1l:el([coeff(e12,x,1),coeff(e12,y,1)])/abs(sg1)/*(◆修正部分2)*/;
e2:y>=0;e22:expand(lhs(e2)-rhs(e2));sg2:1/*-2< ,-1< =,0=,1= >,2>*/;n2l:el([coeff(e22,x,1),coeff(e22,y,1)])/abs(sg2)/*(◆修正部分2)*/;
e3:3*x+2*y<=8;e32:expand(lhs(e3)-rhs(e3));sg3:-1/*-2< ,-1< =,0=,1= >,2>*/;n3l:el([coeff(e32,x,1),coeff(e32,y,1)])/abs(sg3)/*(◆修正部分2)*/;
e4:x+3*y<=5;e42:expand(lhs(e4)-rhs(e4));sg4:-1/*-2< ,-1< =,0=,1= >,2>*/;n4l:el([coeff(e42,x,1),coeff(e42,y,1)])/abs(sg4)/*(◆修正部分2)*/;
xm:-5; xM:5; ym:xm/8.3*6.7; yM:xM/8.3*6.7/**//*(◆修正部分3)*/;
:
303.補充問題・章末問題
. 補充問題
◆コマンド番号30301
●直線に対して同じ側
●●●●●●●●●●●●●●●●
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 30301 直線 3*x-2*y-4=0 に対して、点P(1,-2)と点A(-2,-6)は同じ側か"/*(◆修正部分1)*/$
KOUSATU:"直線上の点(X,Y)から各点への方向が、直線の垂直方向(直線の左辺の値の増加方向)(3,-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)/*垂直二等分線*/;
el(p1l):=block([ansl,l],l:sqrt(p1l[1]^2+p1l[2]^2),ansl:p1l/l)/*単位ベクトル化*/;
TEJUN:""$
declare(x,real,y,real);
e1:3*x-2*y-4=0;e12:expand(lhs(e1)-rhs(e1));n1l:el([coeff(e12,x,1),coeff(e12,y,1)])/**/;
pXYL:[X,Y];p1L:[1,-2];p2L:[-2,-6]/*(◆修正部分2)*/;
e2:subst([x=pXYL[1],y=pXYL[2]],e1);sYl:solve(e2,Y);ve1:rat(subst(sYl[1],(p1L-pXYL).n1l));ve2:rat(subst(sYl[1],(p2L-pXYL).n1l));
p0L:[0,subst(X=0,rhs(sYl[1]))];v1:vector(p0L,n1l);
MES:if ve1*ve2>0 then "p2Lはp1Lと同じ側" elseif ve1*ve2 < 0 then "p2Lはp1Lと異なる側"$
ansl:[p2L,p1L,MES,"[p2L,p1L,同じ側・異なる側]"]/**/;
KAKUNIN:"図で確認"/**/$
xm:-10; xM:10; ym:xm/8.3*6.7; yM:xM/8.3*6.7/**/;
p0:points([p0L]);p1:points([p1L,p2L]);
g1:implicit(e1,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=circle, point_size=2,line_width=2/**/,
/**/head_length=1/2,head_angle = 30, v1/*求めるもの*//**/,
/**/points_joined=false, color=blue, point_type=filled_circle, point_size=1,p1,p0,g1/*与えられたもの*/
/**/) /* "青が与えられたもの、赤が求めるもの(〇〇修正時y,y2の定義域変更に注意)" */;
KAITOU:ansl/*解答*//**/$
SUJIMITI:"等式にして境界をもとめ、求める領域を境界からの方向で定めると、境界は( )で、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・補充問題8 30301 直線 3*x-2*y-4=0 に対して、点P(1,-2)と点B(-1,3)は同じ側か"/*(◆修正部分1)*/$
pXYL:[X,Y];p1L:[1,-2];p2L:[-1,3]/*(◆修正部分2)*/;
◆コマンド番号30302
●不等式の表す領域
●●●●●●●●●●●●●●●●
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:"・補充問題9 30302 不等式 1<=x+y<=3 が表す領域は"/*(◆修正部分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)/*垂直二等分線*/;
el(p1l):=block([ansl,l],l:sqrt(p1l[1]^2+p1l[2]^2),ansl:p1l/l)/*単位ベクトル化*/;
TEJUN:""$
declare(x,real,y,real);
e1:x+y>=1;e12:expand(lhs(e1)-rhs(e1));sg1:1/*-2< ,-1< =,0=,1= >,2>*/;n1l:el([coeff(e12,x,1),coeff(e12,y,1)])/*(◆修正部分2)*/;
e2:x+y<=3;e22:expand(lhs(e2)-rhs(e2));sg2:-1/*-2< ,-1< =,0=,1= >,2>*/;n2l:el([coeff(e22,x,1),coeff(e22,y,1)])/*(◆修正部分2)*/;
p1L:[0,rhs(solve(subst(x=0,e12),y)[1])];p2L:[0,rhs(solve(subst(x=0,e22),y)[1])]/*(◆修正部分2)*/;
v1:vector(p1L,sg1/abs(sg1)*n1l);v2:vector(p2L,sg2/abs(sg2)*n2l);
ansl:[[lhs(e1)=rhs(e1),if abs(sg1)=1 then "含む" else "含まず",v1],[lhs(e2)=rhs(e2),if abs(sg2)=1 then "含む" else "含まず",v2],"[境界線1、境界1を含むか否か,境界点からの領域の方向],[境界線2、境界2を含むか否か,境界点からの領域の方向]"];
KAKUNIN:"図で確認"/**/$
xm:-10; xM:10; ym:xm/8.3*6.7; yM:xM/8.3*6.7/**/;
p1:points([p1L,p2L]);
g1:implicit(e12,x,xm,xM,y,ym,yM);
g2: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=circle, point_size=2,line_width=2/**/,
/**/head_length=1/2,head_angle = 30, v1,v2/*求めるもの*//**/,
/**/points_joined=false, 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:"・補充問題9 30302 不等式 4<=x^2+y^2<=9 が表す領域は"/*(◆修正部分1)*/$
e1:x^2+y^2>=4;e12:expand(lhs(e1)-rhs(e1));sg1:1/*-2< ,-1< =,0=,1= >,2>*/;n1l:el([2,0])/*(◆修正部分2)*/;
e2:x^2+y^2<=9;e22:expand(lhs(e2)-rhs(e2));sg2:-1/*-2< ,-1< =,0=,1= >,2>*/;n2l:el([0,3])/*(◆修正部分2)*/;
p1L:[2,0];p2L:[0,3]/*(◆修正部分2)*/;
◆コマンド番号30303
●不等式の表す領域
●●●●●●●●●●●●●●●●
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:"・補充問題10 30303 x,yについて、「x^2+y^2<=1ならばx+y<=sqrt(2)」を、領域の図示により示せ"/*(◆修正部分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)/*垂直二等分線*/;
el(p1l):=block([ansl,l],l:sqrt(p1l[1]^2+p1l[2]^2),ansl:p1l/l)/*単位ベクトル化*/;
TEJUN:""$
declare(x,real,y,real);
e1:x^2+y^2<=1;e12:expand(lhs(e1)-rhs(e1));sg1:-1/*-2< ,-1< =,0=,1= >,2>*/;n1l:el([1,0])/*(◆修正部分2)*/;
e2:x+y<=sqrt(2);e22:expand(lhs(e2)-rhs(e2));sg2:-1/*-2< ,-1< =,0=,1= >,2>*/;n2l:el([coeff(e22,x,1),coeff(e22,y,1)])/*(◆修正部分2)*/;
p1L:[1,0];p2L:[0,rhs(solve(subst(x=0,e22),y)[1])]/*(◆修正部分2)*/;
v1:vector(p1L,sg1/abs(sg1)*n1l);v2:vector(p2L,sg2/abs(sg2)*n2l);
ansl:[[lhs(e1)=rhs(e1),if abs(sg1)=1 then "含む" else "含まず",v1],[lhs(e2)=rhs(e2),if abs(sg2)=1 then "含む" else "含まず",v2],"[境界線1、境界1を含むか否か,境界点からの領域の方向],[境界線2、境界2を含むか否か,境界点からの領域の方向]"];
KAKUNIN:"図で確認"/**/$
xm:-3; xM:3; ym:xm/8.7*6.7; yM:xM/8.7*6.7/*(◆修正部分3)*/;
p1:points([p1L,p2L]);
g1:implicit(e12,x,xm,xM,y,ym,yM);
g2: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=circle, point_size=2,line_width=2/**/,
/**/head_length=1/2,head_angle = 30, v1,v2/*求めるもの*//**/,
/**/points_joined=false, 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:"・補充問題10 30303 x,yについて、「x^2+y^2<=1ならば(x-1)^2+y^2<=4」を、領域の図示により示せ"/*(◆修正部分1)*/$
e1:x^2+y^2<=1;e12:expand(lhs(e1)-rhs(e1));sg1:-1/*-2< ,-1< =,0=,1= >,2>*/;n1l:el([1,0])/*(◆修正部分2)*/;
e2:(x-1)^2+y^2<=4;e22:expand(lhs(e2)-rhs(e2));sg2:-1/*-2< ,-1< =,0=,1= >,2>*/;n2l:el([0,1])/*(◆修正部分2)*/;
p1L:[1,0];p2L:[1,2]/*(◆修正部分2)*/;
. 章末問題
◆コマンド番号30304
●軌跡と直線との交点
●●●●●●●●●●●●●●●●
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:"・章末問題1 30304 x軸上の点P(x,y)が、A(-1,2),B(4,3)から等距離にある。Pは"/**/$
KOUSATU:"x軸上の点(x,0)と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)/*垂直二等分線*/;
el(p1l):=block([ansl,l],l:sqrt(p1l[1]^2+p1l[2]^2),ansl:p1l/l)/*単位ベクトル化*/;
TEJUN:""$
declare(x,real,y,real);
p1L:[-1,2];p2L:[4,3]/**/;
e1:dis([x,0],p1L)=dis([x,0],p2L);e1:e1^2;s1xl:solve(e1,x);p3L:[rhs(s1xl[1]),0]/*(◆修正部分2)*/;
ansl:[e1,p3L,"[方程式、求める点]"]/*(◆修正部分2)*/;
KAKUNIN:"図で確認"/**/$
xm:-10; xM:10; ym:xm/8.3*6.7; yM:xM/8.3*6.7;
p1:points([p1L,p2L]);p2:points([p1L,p3L,p2L])/*(◆修正部分3)*/;
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=circle, point_size=2,line_width=2,p2/*求めるもの*//*(◆修正部分4)*/,
/**/points_joined=false, color=blue, point_type=filled_circle, point_size=1,p1/*与えられたもの*/
/**/) /* "青が与えられたもの、赤が求めるもの(〇〇修正時y,y2の定義域変更に注意)" */;
KAITOU:ansl/*解答*//**/$
SUJIMITI:"方程式は( )だから、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
KOUSATU:"2点から等距離にあるのは垂直二等分線上の点だから、・・・"/*(◆修正部分1)*/;
p3L:(p1L+p2L)/2;e1:r2e(p1L,p2L);s1xl:solve(subst(y=0,e1),x);p4L:[rhs(s1xl[1]),0]/*(◆修正部分2)*/;
ansl:[e1,p4L,"[垂直二等分線、求める点]"]/*(◆修正部分2)*/;
p1:points([p1L,p2L]);p2:points([p3L]);p3:points([p4L])/*(◆修正部分3)*/;
g1:implicit(e1,x,xm,xM,y,ym,yM)/*(◆修正部分3)*/;
/**/points_joined=false, color=red, point_type=circle, point_size=2,line_width=2,p3/*求めるもの*//*(◆修正部分4)*/,
/**/points_joined=false, color=cyan, point_type=filled_circle, point_size=1,p2,g1/*途中のもの*//*(◆修正部分4)*/,
◆コマンド番号30305
●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 30305 2直線3*x-4*y+5=0,2*x+y-4=0の交点を通り、2*x+3*y=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に垂線を下した点*/$
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)/*垂直二等分線*/;
el(p1l):=block([ansl,l],l:sqrt(p1l[1]^2+p1l[2]^2),ansl:p1l/l)/*単位ベクトル化*/;
TEJUN:""$
declare(x,real,y,real);
e1:3*x-4*y+5=0;e2:2*x+y-4=0;e3:2*x+3*y=0;
s12l:solve([e1,e2],[x,y])[1];p12L:[rhs(s12l[1]),rhs(s12l[2])];
n3l:[coeff(lhs(e3),x,1),coeff(lhs(e3),y,1)];e4:[x-p12L[1],y-p12L[2]].n3l=0;e4:expand(e4)/*(◆修正部分2)*/;
ansl:[p12L,e4,"[交点、方程式]"]/**/;
KAKUNIN:"図で確認"/**/$
xm:-10; xM:10; ym:xm/8.3*6.7; yM:xM/8.3*6.7;
p1:points([p12L])/**/;
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);
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=circle, point_size=2,line_width=2,p1,g4/*求めるもの*//**/,
/**/points_joined=false, color=blue, point_type=filled_circle, point_size=1,g1,g2,g3/*与えられたもの*/
/**/) /* "青が与えられたもの、赤が求めるもの(〇〇修正時y,y2の定義域変更に注意)" */;
KAITOU:ansl/*解答*//**/$
SUJIMITI:"交点は( )だから、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・章末問題2 30305 2直線3*x-4*y+5=0,2*x+y-4=0の交点を通り、2*x+3*y=0に垂直な直線は"/*(◆修正部分1)*/$
n3l:[coeff(lhs(e3),y,1),-coeff(lhs(e3),x,1)];e4:[x-p12L[1],y-p12L[2]].n3l=0;e4:expand(e4)/*(◆修正部分2)*/;
◆コマンド番号30306
●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:"・章末問題3 30306 2直線x-y+1=0,2*x+y-7=0の交点Aと、x+2*y−5=0との距離は、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)/*垂直二等分線*/;
el(p1l):=block([ansl,l],l:sqrt(p1l[1]^2+p1l[2]^2),ansl:p1l/l)/*単位ベクトル化*/;
TEJUN:""$
declare(x,real,y,real);
e1:x-y+1=0;e2:2*x+y-7=0;e3:x+2*y-5=0;
s12l:solve([e1,e2],[x,y])[1];p12L:[rhs(s12l[1]),rhs(s12l[2])];
s23l:solve([e2,e3],[x,y])[1];p23L:[rhs(s23l[1]),rhs(s23l[2])];
s31l:solve([e3,e1],[x,y])[1];p31L:[rhs(s31l[1]),rhs(s31l[2])];
p3L:rpl(p12L,e3);d:rat(dis(p12L,p3L)),algebraic:true/*(◆修正部分2)*/;
bs:dis(p23L,p31L);S:rootscontract(d*bs/2)/*(◆修正部分2)*/;
ansl:[p12L,p3L,d,p23L,p31L,S,"[交点、垂線を降した点、直線までの距離,底辺の交点1、交点2、面積]"]/*(◆修正部分2)*/;
KAKUNIN:"図で確認"/**/$
xm:-10; xM:10; ym:xm/8.3*6.7; yM:xM/8.3*6.7;
p1:points([p12L,p3L,p23L,p31L])/*(◆修正部分3)*/;
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=circle, point_size=2,line_width=2,p1/*求めるもの*//**/,
/**/points_joined=false, color=blue, point_type=filled_circle, point_size=1,g1,g2,g3/*与えられたもの*/
/**/) /* "青が与えられたもの、赤が求めるもの(〇〇修正時y,y2の定義域変更に注意)" */;
KAITOU:ansl/*解答*//**/$
SUJIMITI:"交点は( )だから、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・章末問題3 30306 2直線2*x+y-7=0,x+2*y−5=0の交点Bと、x-y+1=0との距離は、3直線で囲まれた面積は"/*(◆修正部分1)*/$
p3L:rpl(p23L,e1);d:rat(dis(p23L,p3L)),algebraic:true/*(◆修正部分2)*/;
bs:dis(p31L,p12L);S:rootscontract(d*bs/2)/*(◆修正部分2)*/;
ansl:[p23L,p3L,d,p31L,p12L,S,"[交点、垂線を降した点、直線までの距離,底辺の交点1、交点2、面積]"]/*(◆修正部分2)*/;
p1:points([p23L,p3L,p31L,p12L])/*(◆修正部分3)*/;
◆コマンド番号30307
●点対称な点の軌跡
●●●●●●●●●●●●●●●●
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 30307 点A(2,1)に対して、点Q(a,b)と対称な点をPとし、Qが直線2*x+y+1=0を動くとき、Pの軌跡は"/*(◆修正部分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)/*垂直二等分線*/;
el(p1l):=block([ansl,l],l:sqrt(p1l[1]^2+p1l[2]^2),ansl:p1l/l)/*単位ベクトル化*/;
TEJUN:""$
declare(x,real,y,real);
p1L:[2,1];p2L:[a,b];p3L:[X,Y];e1:2*x+y+1=0/*(◆修正部分2)*/;
c1:subst([x=0,y=0],lhs(e1));e1:e1-c1;
n1l:[coeff(lhs(e1),x,1),coeff(lhs(e1),y,1)];n1:sqrt(n1l.n1l);N1l:n1l/n1;
e3l:p3L=(p2L*(-1)+p1L*2)/(2-1);
e2:p2L.N1l=-c1/n1;sbl:solve(e2,b);
e4:e3l.n1l;e5:expand(subst(sbl,e4));e5:subst([X=x,Y=y],e5);
p4L:subst(sbl,p2L);p4L:subst(a=0,p4L);
p5L:subst(sbl,rhs(e3l));p5L:subst(a=0,p5L);
ansl:[p4L,p5L,e5,"[Qの1例、対応するP、求める方程式]"]/**/;
KAKUNIN:"図で確認"/**/$
xm:-10; xM:10; ym:xm/8.3*6.7; yM:xM/8.3*6.7/*(◆修正部分3)*/;
p1:points([p1L,p4L]);p2:points([p4L,p5L])/**/;
g1:implicit(e1,x,xm,xM,y,ym,yM);
g2:implicit(e5,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=circle, point_size=2,line_width=2,p2,g2/*求めるもの*//**/,
/**/points_joined=false, 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 30307 点A(2,1)に対して、点Q(a,b)と対称な点をPとし、Qが直線2*x+y-11=0を動くとき、Pの軌跡は"/*(◆修正部分1)*/$
p1L:[2,1];p2L:[a,b];p3L:[X,Y];e1:2*x+y-11=0/*(◆修正部分2)*/;
xm:-15; xM:15; ym:xm/8.3*6.7; yM:xM/8.3*6.7/*(◆修正部分3)*/;
◆コマンド番号30308
●同一直線上の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:"・章末問題8 30308 点A(1,-2),B(3,a),C(a,0)が同一直線上のとき、aは"/*(◆修正部分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)/*垂直二等分線*/;
el(p1l):=block([ansl,l],l:sqrt(p1l[1]^2+p1l[2]^2),ansl:p1l/l)/*単位ベクトル化*/;
TEJUN:""$
declare(x,real,y,real);
p1L:[1,-2];p2L:[3,a];p3L:[a,0];d12l:p2L-p1L;d13l:p3L-p1L/*(◆修正部分2)*/;
e1:d12l[1]*d13l[2]=d12l[2]*d13l[1];sal:solve(e1,a);
BAAI1:"a=-3"; p21L:subst(sal[1],p2L);p31L:subst(sal[1],p3L);
n1l:subst(sal[1],[-d12l[2],d12l[1]]);e21:([x,y]-p1L).n1l=0;e21:expand(e21);
BAAI2:"a=2"; p22L:subst(sal[2],p2L);p32L:subst(sal[2],p3L);
n2l:subst(sal[2],[-d12l[2],d12l[1]]);n2l:n2l/gcd(n2l[1],n2l[2]);e22:([x,y]-p1L).n2l=0;e22:expand(e22);
ansl:[[BAAI1,p21L,p31L,e21],[BAAI2,p22L,p32L,e22],"[場合、点B、点C、求める方程式]"]/**/;
KAKUNIN:"図で確認"/**/$
xm:-10; xM:10; ym:xm/8.3*6.7; yM:xM/8.3*6.7/**/;
p1:points([p1L]);p2:points([p21L,p31L]);p3:points([p22L,p32L])/**/;
g2:implicit(e21,x,xm,xM,y,ym,yM);
g3: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=true, color=red, point_type=circle, point_size=2,line_width=2,p2,g2/*求めるもの*//**/,
/**/points_joined=true, color=cyan, point_type=circle, point_size=2,line_width=2,p3,g3/*求めるもの*//**/,
/**/points_joined=false, color=blue, point_type=filled_circle, point_size=1,p1/*与えられたもの*/
/**/) /* "青が与えられたもの、赤が求めるもの(〇〇修正時y,y2の定義域変更に注意)" */;
KAITOU:ansl/*解答*//**/$
SUJIMITI:"同一直線上ならば、2つの直線方向(傾き)は( )と( )だから、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・章末問題8 30308 点A(1,-2),B(3,a),C(a,5)が同一直線上のとき、aは"/*(◆修正部分1)*/$
p1L:[1,-2];p2L:[3,a];p3L:[a,5];d12l:p2L-p1L;d13l:p3L-p1L/*(◆修正部分2)*/;
◆コマンド番号30309
●円周上の点での接線
●●●●●●●●●●●●●●●●
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:"・章末問題9 30309 円x^2+y^2-4*x+a*y=0上の点A(4,2)での接線をℓとして、a,中心の座標,ℓの傾き,ℓの方程式は"/*(◆修正部分1)*/,
KOUSATU:"Aは円周上の点だから、・・・"/**/)$
(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)/*垂直二等分線*/,
el(p1l):=block([ansl,l],l:sqrt(p1l[1]^2+p1l[2]^2),ansl:p1l/l)/*単位ベクトル化*/,
scl(e,x):=block([ansl,e1,a,b,c],e1:expand(e),a:coeff(e1,x,2),b:coeff(e1,x,1),c:coeff(e1,x,0),/*print([e1,a,b,c]),*/ansl:[a*(x+b/(2*a))^2,-b^2/(4*a)+c,-b/(2*a)])/*平方完成*/)$
(TEJUN:"",
declare(x,real,y,real),
p1L:[4,2],eq1:x^2+y^2-4*x+a*y=0,print([eq1,"[問題による]"])/*(◆修正部分2)*/,
pL:[x,y],eq11:subst([x=p1L[1],y=p1L[2]],eq1),sal:solve(eq11,a),eq2:subst(sal,eq1),print([eq11,sal,eq2,"[(4,2)通過の条件式,その解,(4,2)通過の円の方程式]"]),
ex1:lhs(eq2),sc1l:scl(ex1,x),sc2l:scl(sc1l[2],y),p:sc1l[3],q:sc2l[3],p2L:[p,q],
eq3:sc1l[1]+sc2l[1]=rhs(eq2)-sc2l[2],nl:p1L-p2L,slp:-nl[1]/nl[2],eq4:(pL-p1L).nl=0,print([eq3,p2L,nl,slp,eq4,"[円の方程式(平方完成),中心,(4,2)での法線方向,接線の傾き,接線]"]),
ansl:[sal,p2L,slp,eq4,["a,中心,ℓの傾き,ℓの方程式"]],print(ansl))/**/$
(KAKUNIN:"図で確認"/**/,
xm:-10, xM:10, ym:xm/8.3*6.7, yM:xM/8.3*6.7/**/,
p1:points([p1L]),p2:points([p2L]),v1:vector(p1L,nl)/**/,
g1:implicit(eq2,x,xm,xM,y,ym,yM),
g2:implicit(eq4,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=circle, point_size=2,line_width=2,g2/*求めるもの*//**/,
/**/color=cyan,head_length=1/2,head_angle = 20, v1,p2/*法線ベクトル*//*途中経過*/,
/**/points_joined=false, color=blue, point_type=filled_circle, point_size=1,p1,g1/*与えられたもの*/
/**/) /* "青が与えられたもの、赤が求めるもの(〇〇修正時y,y2の定義域変更に注意)" */)$
(KAITOU:ansl/*解答*//**/,
SUJIMITI:"Aは円周上の点だから、円の方程式からaは方程式( )を満たし、・・・"/**/,
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)")$
(print(MONDAI),
print(SUJIMITI),
print(KAITOU),
print(FURIKAERI))$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・章末問題9 30309 円x^2+y^2+a*x-2*y=0上の点A(4,0)での接線をℓとして、a,中心の座標,ℓの傾き,ℓの方程式は"/*(◆修正部分1)*/,
p1L:[4,0],eq1:x^2+y^2+a*x-2*y=0,print([eq1,"[問題による]"])/*(◆修正部分2)*/,
◆コマンド番号30310
●放物線の頂点の軌跡
●●●●●●●●●●●●●●●●
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 30310 放物線y=x^2-2*a*x+a^2+a+3で、頂点P(X,Y)として、X,Yをaで表し、aがすべての実数値を取るときのPの軌跡は"/*(◆修正部分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)/*垂直二等分線*/,
el(p1l):=block([ansl,l],l:sqrt(p1l[1]^2+p1l[2]^2),ansl:p1l/l)/*単位ベクトル化*/,
scl(e,x):=block([ansl,e1,a,b,c],e1:expand(e),a:coeff(e1,x,2),b:coeff(e1,x,1),c:coeff(e1,x,0),/*print([e1,a,b,c]),*/ansl:[a*(x+b/(2*a))^2,-b^2/(4*a)+c,-b/(2*a)])/*平方完成*/
)$
(TEJUN:"",
declare(x,real,y,real),
eq1:y=x^2-2*a*x+a^2+a+3,print([eq1,"[問題による]"])/*(◆修正部分2)*/,
sc1l:scl(rhs(eq1),x),eq2:y=sc1l[1]+sc1l[2],p:sc1l[3],q:subst(x=p,rhs(eq1)),print([eq2,[p,q],"[平方完成,頂点]"]),
sal:solve(p=X,a),eq2:subst(sal,Y=q),eq3:subst([X=x,Y=y],eq2),print([eq2,eq3,"[XとYの関係式,xとyに変換]"]),
ansl:[[X=p,Y=q],eq3,"[aで表したXとY,軌跡の方程式]"],print([ansl])
)$
(KAKUNIN:"図で確認"/**/,
xm:-10, xM:10, ym:xm/8.3*6.7, yM:xM/8.3*6.7/**/,
A1:0,eq11:subst(a=A1,eq1),p11L:subst(a=A1,[p,q]),
p11:points([p11L]),g11:implicit(eq11,x,xm,xM,y,ym,yM),print([a=A1,p11,g11,"[aの値,頂点,放物線(青)]"]),
A2:2,eq12:subst(a=A2,eq1),p12L:subst(a=A2,[p,q]),
p12:points([p12L]),g12:implicit(eq12,x,xm,xM,y,ym,yM),print([a=A2,p12,g12,"[aの値,頂点,放物線(青)]"]),
g2:implicit(eq3,x,xm,xM,y,ym,yM),print([g2,"[軌跡の方程式による(赤)]"]),
g3:parametric(p,q,a,-10,10),print([g3,"[aのパラメトリックによる(シアン)]"]),
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=cyan, point_type=circle, point_size=2,line_width=4,g3/*求めるもの*//**/,
/**/points_joined=true, color=red, point_type=circle, point_size=2,line_width=2,g2/*求めるもの*//**/,
/**/color=cyan,head_length=1/2,head_angle = 20,p11,p12/*法線ベクトル*//*途中経過*/,
/**/points_joined=false, color=blue, point_type=filled_circle, point_size=1,g11,g12/*与えられたもの*/
/**/) /* "青が与えられたもの、赤が求めるもの(〇〇修正時y,y2の定義域変更に注意)" */)$
(KAITOU:ansl/*解答*//**/,
SUJIMITI:"放物線の式を平方完成しすると( )となり、・・・"/**/,
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)")$
(print(MONDAI),
print(SUJIMITI),
print(KAITOU),
print(FURIKAERI))$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・章末問題11 30310 放物線y=x^2-2*a*x+a+3で、頂点P(X,Y)として、X,Yをaで表し、aがすべての実数値を取るときのPの軌跡は"/*(◆修正部分1)*/,
eq1:y=x^2-2*a*x+a+3,print([eq1,"[問題による]"])/*(◆修正部分2)*/,
◆コマンド番号30311
●領域と最大値
●●●●●●●●●●●●●●●●
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 30311 ある工場で、製品A,Bを1トン生産するのに必要な原料Pは各3トン,2トン、原料Qは各1トン,3トン、製品の価格は1トンあたり各3万円、4万円とする。供給できる原料は、Pが最大8トン、Qが最大5トンのとき、各何トンずつ生産すると、合計の価格は最大になるか。"/*(◆修正部分1)*/,
KOUSATU:"Pをxトン、Qをyトン生産するとして、原料Pの必要量は、・・・"/**/)$
(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)/*垂直二等分線*/,
el(p1l):=block([ansl,l],l:sqrt(p1l[1]^2+p1l[2]^2),ansl:p1l/l)/*単位ベクトル化*/)$
(TEJUN:"",
declare(x,real,y,real),
e0:3*x+4*y,gr0l:el([coeff(e0,x,1),coeff(e0,y,1)])/*(◆修正部分2)*/,
e1:x>=0,e12:expand(lhs(e1)-rhs(e1)),sg1:1/*-2< ,-1< =,0=,1= >,2>*/,n1l:el([coeff(e12,x,1),coeff(e12,y,1)])/abs(sg1)/*(◆修正部分2)*/,
e2:y>=0,e22:expand(lhs(e2)-rhs(e2)),sg2:1/*-2< ,-1< =,0=,1= >,2>*/,n2l:el([coeff(e22,x,1),coeff(e22,y,1)])/abs(sg2)/*(◆修正部分2)*/,
e3:3*x+2*y<=8,e32:expand(lhs(e3)-rhs(e3)),sg3:-1/*-2< ,-1< =,0=,1= >,2>*/,n3l:el([coeff(e32,x,1),coeff(e32,y,1)])/abs(sg3)/*(◆修正部分2)*/,
e4:x+3*y<=5,e42:expand(lhs(e4)-rhs(e4)),sg4:-1/*-2< ,-1< =,0=,1= >,2>*/,n4l:el([coeff(e42,x,1),coeff(e42,y,1)])/abs(sg4)/*(◆修正部分2)*/,
s12l:solve([e12,e22],[x,y]),p12L:[rhs(s12l[1][1]),rhs(s12l[1][2])],n12l:el(sg1*n1l+sg2*n2l)/**/,
s23l:solve([e22,e32],[x,y]),p23L:[rhs(s23l[1][1]),rhs(s23l[1][2])],n23l:el(sg2*n2l+sg3*n3l)/**/,
s34l:solve([e32,e42],[x,y]),p34L:[rhs(s34l[1][1]),rhs(s34l[1][2])],n34l:el(sg3*n3l+sg4*n4l)/**/,
s41l:solve([e42,e12],[x,y]),p41L:[rhs(s41l[1][1]),rhs(s41l[1][2])],n41l:el(sg4*n4l+sg1*n1l)/**/,
v1:vector(p12L,n12l),v2:vector(p23L,n23l),v3:vector(p34L,n34l),v4:vector(p41L,n41l),
print([float(v1),float(v2),float(v3),float(v4),"[境界直線1,2での交点と内部方向、2,3での交点と内部方向、3,4での交点と内部方向、4,1での交点と内部方向]"]),
vnl:[[subst(s12l[1],e0),gr0l.n12l],[subst(s23l[1],e0),gr0l.n23l],[subst(s34l[1],e0),gr0l.n34l],[subst(s41l[1],e0),gr0l.n41l],"[各交点での式e0の値、内部方向での変化率]"],
print(float(vnl))/**/,
KOUSATU:"各交点での式e0のうちの最大値が求めるもの。交点での外部方向への移動と、内部方向での変化率に着目して、・・・",print(KOUSATU),
ansl:[[subst(s34l[1],e0),s34l[1]],"[[最大値、[そのx,y]]]"])$
(KAKUNIN:"図で確認"/**/,
xm:-5, xM:5, ym:xm/8.3*6.7, yM:xM/8.3*6.7/**//*(◆修正部分3)*/,
p1:points([p12L,p23L,p34L,p41L,p12L]),
g1:implicit(e0=subst(s12l[1],e0),x,xm,xM,y,ym,yM),
g2:implicit(e0=subst(s23l[1],e0),x,xm,xM,y,ym,yM),
g3:implicit(e0=subst(s34l[1],e0),x,xm,xM,y,ym,yM),
g4:implicit(e0=subst(s41l[1],e0),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=circle, point_size=2,line_width=2,p1/**/,
/**/head_length=1/2,head_angle = 30, v1,v2,v3,v4/*求めるもの*//**/,
/**/points_joined=false, color=cyan, point_type=filled_circle, point_size=1,g1,g2,g3,g4/*与えられたもの*/,
/**/points_joined=false, color=blue, point_type=filled_circle, point_size=1,p1/*与えられたもの*/
/**/)) /* "青が与えられたもの、赤が求めるもの(〇〇修正時y,y2の定義域変更に注意)" */$
(KAITOU:ansl/*解答*//**/,
SUJIMITI:"Pをxトン、Qをyトン生産するとして、原料Pの必要量は、x.yで表すと( )で、・・・"/**/,
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)")$
(print(MONDAI),
print(SUJIMITI),
print(KAITOU),
print(FURIKAERI))$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・章末問題12 30311 ある工場で、製品A,Bを1トン生産するのに必要な原料Pは各3トン,2トン、原料Qは各1トン,3トン、製品の価格は1トンあたり各3万円、4万円とする。供給できる原料は、Pが最大8トン、Qが最大5トンのとき、各何トンずつ生産すると、合計の価格は最大になるか。"/*(◆修正部分1)*/,
e0:3*x+4*y,n0l:el([coeff(e0,x,1),coeff(e0,y,1)])/*(◆修正部分2)*/,
e1:x>=0,e12:expand(lhs(e1)-rhs(e1)),sg1:1/*-2< ,-1< =,0=,1= >,2>*/,n1l:el([coeff(e12,x,1),coeff(e12,y,1)])/abs(sg1)/*(◆修正部分2)*/,
e2:y>=0,e22:expand(lhs(e2)-rhs(e2)),sg2:1/*-2< ,-1< =,0=,1= >,2>*/,n2l:el([coeff(e22,x,1),coeff(e22,y,1)])/abs(sg2)/*(◆修正部分2)*/,
e3:3*x+2*y<=8,e32:expand(lhs(e3)-rhs(e3)),sg3:-1/*-2< ,-1< =,0=,1= >,2>*/,n3l:el([coeff(e32,x,1),coeff(e32,y,1)])/abs(sg3)/*(◆修正部分2)*/,
e4:x+3*y<=5,e42:expand(lhs(e4)-rhs(e4)),sg4:-1/*-2< ,-1< =,0=,1= >,2>*/,n4l:el([coeff(e42,x,1),coeff(e42,y,1)])/abs(sg4)/*(◆修正部分2)*/,
xm:-5, xM:5, ym:xm/8.3*6.7, yM:xM/8.3*6.7/**//*(◆修正部分3)*/,