:
Maxima数学II自習教材開発
教材の概要
2 複素数と方程式 1)複素数と2次方程式の解
1.複素数とその計算
2.2次方程式の解
3.解と係数の関係
201.補充問題
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) 筋が通って、見通しのよい解法、数学的な論点をうまく処理した解法をまとめる
http://www.ac.cyberhome.ne.jp/~konoha/KNOPPIX/MaximaBook.pdf
参照テキスト
数研出版新編数学II
:
1.複素数とその計算
A. 複素数
◆コマンド番号101
●実部、虚部
●●●●●●●●●●●●●●●●
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の順で */;powerdisp:false /* 降べきの順にして */$
MONDAI:"・例1・練習1 101 3-2*%iの実部、虚部は"/*(◆修正部分1)*/$
KOUSATU:"%iを含む項と含まない項と分けて、・・・"/**/;
KANSUU:"";
ni(n):=n!/*nの階乗*/$
nCrl(n,r):=ni(n)/(ni(r)*ni(n-r))/*nCrを文字変数で表現*/$
nCr(n,r):=block([N,i],N:1,for i:1 thru r do(N:N*(n-i+1)/(i)),N:N)/*nCrの数値表現(n,rは数値)*/$
lng(n,list,sw):=block([D,i,iM,V],D:true,iM:length(list),
/**/for i:1 thru iM do(if (sw="N"and n=list[i]) or (sw="G" and list[i]>=n ) or (sw="L"and n>=list[i]) then D:false),V:D)/*[スイッチごとにTF判定]*/$
Xr(list,sw):=block([r,i,j],/*print("nHr",lA,length(lA[1]),r),*/ /**/r:length(list),
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("listi",list[i]),*/
/**//**//**/for j:1 thru list[length(lA[iM])+1] do(/*print(iM,length(lA[iM])+1 ),*/
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),
/**//**/lA:lEA,print("lA",lA,length(lA))))/*list:[[1,d],[d+1,d+j]],1つ目1~d,2つ目d+1~d+jで作成、スイッチsw、1324>>"N",1234>>"G",4321>>"L",1122>>"A",順列・組合せ*/$
load(fourier_elim)$
load ("functs")$
gcm(n1,n2):=n1*n2/lcm(n1,n2)/*n1,n2の最大公倍数*/$
quon(n1,n2):=block([qn,rn],rn:mod(n1,n2),qn:quotient(n1-rn,n2))/*n1のn2による整商*/$
exd(e1,e2,m):=block([k,kM,e11,e21,e,bL],e11:rat(e1,m),e21:rat(e2,m),e:rat(e11*e21,m),kM:hipow(e,m),
/**/print(e11),print(e21),print("----------各次数の係数に注目して") ,
/**/bL:["","...","......",".........","............",
/**/"...............","..................",".....................","........................"] /**/,
/**/for k:0 thru kM do(
/**//**/if kM>k then print(bL[k+1],coeff(e,m,(kM-k))*m^(kM-k))
/**//**//**/else print(bL[k+2],coeff(e,m,(kM-k))*moji^(kM-k))
/**//**/) /* "xの各次数の項を求めて(直前の3式から求め)" */,
/**/print("---------------------------------したがって") ,print(e),e:e)/*e1,e2の、mに着目した掛け算実行*/$
ed(e1,e2,bl,bdl):=block([hpe1,hpe2,hpe3,e1l,e2l,e3l,e4l,i],hpe1:hipow(e1,x),e1l:[],for i:0 thru hpe1 do e1l:cons(coeff(e1,x,i),e1l),print(e1l),
/**/hpe2:hipow(e2,x),e2l:[],for i:0 thru hpe2 do e2l:cons(coeff(e2,x,i),e2l),print(e2l),
/**/e20l:e2l,for i:1 thru hpe1-hpe2 do e20l:endcons(0,e20l),
/**/e3:quotient(e1,e2),hpe3:hipow(e3,x),e3l:[],for i:0 thru hpe3 do e3l:cons(coeff(e3,x,i),e3l),print(e3l),print(" "),
/**/print(bl,e3l),print(bdl),print(e2l,")",e1l),e4l:e20l*e3l[1],print(bl,e4l),print(bdl),e1l:e1l-e4l,print(bl,e1l),
/**/for i:1 thru hpe1-hpe2 do(e20l:cons(0,rest(e20l,-1)),e4l:e20l*e3l[1+i],print(bl,e4l),print(bdl),e1l:e1l-e4l,print(bl,e1l)),e1l:[e3l,e1l])/*e1のe2による割り算実行、結果はリスト*/$
elx(el,x):=block([i,iM,e],iM:length(el),e:0,for i:1 thru iM do(e:e+el[i]*x^(iM-i)),e:e)/*係数リストをxの文字式へ*/$
TEJUN:""$
e:3-2*%i;e:rat(e,%i)/*(◆修正部分2)*/$
rp:coeff(e,%i,0);ip:coeff(e,%i,1);ans:[rp,ip,"実部、虚部"]/**/;
KAKUNIN:"確認"/**/$
if rp=realpart(e) and ip=imagpart(e) then kknnl:[e,rp,ip]/*関数realpart(),imagpart()で確認*/;
print(kknnl)/*確認*/$
KAITOU:ans/*解答*//**/$
SUJIMITI:"%iを含む項と含まない項と分けると、定数項は( )となり、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・例1・練習1 101 (-1-SQRT(3)*%i)/2の実部、虚部は"/*(◆修正部分1)*/$
e:(-1-sqrt(3)*%i)/2;e:rat(e,%i)/*(◆修正部分2)*/;
◆コマンド番号102
●実部、虚部
●●●●●●●●●●●●●●●●
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の順で */;powerdisp:false /* 降べきの順にして */$
MONDAI:"・例題1・練習2 102 実数x,yとし、(x+y)+(x+2)*%i=0となるx,yは"/*(◆修正部分1)*/$
KOUSATU:"0となる複素数は、実部、虚部とも0だから、・・・"/*(◆修正部分1)*/;
KANSUU:"";
ni(n):=n!/*nの階乗*/$
nCrl(n,r):=ni(n)/(ni(r)*ni(n-r))/*nCrを文字変数で表現*/$
nCr(n,r):=block([N,i],N:1,for i:1 thru r do(N:N*(n-i+1)/(i)),N:N)/*nCrの数値表現(n,rは数値)*/$
lng(n,list,sw):=block([D,i,iM,V],D:true,iM:length(list),
/**/for i:1 thru iM do(if (sw="N"and n=list[i]) or (sw="G" and list[i]>=n ) or (sw="L"and n>=list[i]) then D:false),V:D)/*[スイッチごとにTF判定]*/$
Xr(list,sw):=block([r,i,j],/*print("nHr",lA,length(lA[1]),r),*/ /**/r:length(list),
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("listi",list[i]),*/
/**//**//**/for j:1 thru list[length(lA[iM])+1] do(/*print(iM,length(lA[iM])+1 ),*/
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),
/**//**/lA:lEA,print("lA",lA,length(lA))))/*list:[[1,d],[d+1,d+j]],1つ目1~d,2つ目d+1~d+jで作成、スイッチsw、1324>>"N",1234>>"G",4321>>"L",1122>>"A",順列・組合せ*/$
load(fourier_elim)$
load ("functs")$
gcm(n1,n2):=n1*n2/lcm(n1,n2)/*n1,n2の最大公倍数*/$
quon(n1,n2):=block([qn,rn],rn:mod(n1,n2),qn:quotient(n1-rn,n2))/*n1のn2による整商*/$
exd(e1,e2,m):=block([k,kM,e11,e21,e,bL],e11:rat(e1,m),e21:rat(e2,m),e:rat(e11*e21,m),kM:hipow(e,m),
/**/print(e11),print(e21),print("----------各次数の係数に注目して") ,
/**/bL:["","...","......",".........","............",
/**/"...............","..................",".....................","........................"] /**/,
/**/for k:0 thru kM do(
/**//**/if kM>k then print(bL[k+1],coeff(e,m,(kM-k))*m^(kM-k))
/**//**//**/else print(bL[k+2],coeff(e,m,(kM-k))*moji^(kM-k))
/**//**/) /* "xの各次数の項を求めて(直前の3式から求め)" */,
/**/print("---------------------------------したがって") ,print(e),e:e)/*e1,e2の、mに着目した掛け算実行*/$
ed(e1,e2,bl,bdl):=block([hpe1,hpe2,hpe3,e1l,e2l,e3l,e4l,i],hpe1:hipow(e1,x),e1l:[],for i:0 thru hpe1 do e1l:cons(coeff(e1,x,i),e1l),print(e1l),
/**/hpe2:hipow(e2,x),e2l:[],for i:0 thru hpe2 do e2l:cons(coeff(e2,x,i),e2l),print(e2l),
/**/e20l:e2l,for i:1 thru hpe1-hpe2 do e20l:endcons(0,e20l),
/**/e3:quotient(e1,e2),hpe3:hipow(e3,x),e3l:[],for i:0 thru hpe3 do e3l:cons(coeff(e3,x,i),e3l),print(e3l),print(" "),
/**/print(bl,e3l),print(bdl),print(e2l,")",e1l),e4l:e20l*e3l[1],print(bl,e4l),print(bdl),e1l:e1l-e4l,print(bl,e1l),
/**/for i:1 thru hpe1-hpe2 do(e20l:cons(0,rest(e20l,-1)),e4l:e20l*e3l[1+i],print(bl,e4l),print(bdl),e1l:e1l-e4l,print(bl,e1l)),e1l:[e3l,e1l])/*e1のe2による割り算実行、結果はリスト*/$
elx(el,x):=block([i,iM,e],iM:length(el),e:0,for i:1 thru iM do(e:e+el[i]*x^(iM-i)),e:e)/*係数リストをxの文字式へ*/$
TEJUN:""$
declare(x,real,y,real);e:(x+y)+(x+2)*%i=0;e:rat(e,%i)/*(◆修正部分2)*/$
rp:coeff(e,%i,0);ip:coeff(e,%i,1);sxyl:solve([rp=0,ip=0],[x,y]);ans:sxyl/*(◆修正部分2)*/;
KAKUNIN:"確認"/**/$
if subst(sxyl,e) and isreal_p(rhs(sxyl[1][1])) and isreal_p(rhs(sxyl[1][2])) then kknnl:[e,ans]/*関数realpart(),imagpart()で確認*/;
print(kknnl)/*確認*/$
KAITOU:ans/*解答*//**/$
SUJIMITI:"0となる複素数は、実部、虚部とも0だから、%iの定数項から( )となり、・・・"/*(◆修正部分3)*/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・例題1・練習2 102 実数x,yとし、(x-2*y)+(2*x-3*y)*%i=4+7*%iとなるx,yは"/*(◆修正部分1)*/$
KOUSATU:"左辺-右辺=0とすると、・・・"/*(◆修正部分1)*/;
declare(x,real,y,real);e:(x-2*y)+(2*x-3*y)*%i=4+7*%i;e1:rat(e,%i);e1:lhs(e1)-rhs(e1)/*(◆修正部分2)*/$
rp:coeff(e1,%i,0);ip:coeff(e1,%i,1);sxyl:solve([rp=0,ip=0],[x,y]);ans:sxyl/*(◆修正部分2)*/;
SUJIMITI:"左辺-右辺=0とすると、( )=0となり、・・・"/*(◆修正部分3)*/;
B. 複素数の計算
◆コマンド番号103
●複素数の加減
●●●●●●●●●●●●●●●●
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の順で */;powerdisp:false /* 降べきの順にして */$
MONDAI:"・例2・練習3 103 (4-3*%i)+(2+5*%i)は"/*(◆修正部分1)*/$
KOUSATU:"実部どうし、虚部どうしを加減して、・・・"/**/;
KANSUU:"";
ni(n):=n!/*nの階乗*/$
nCrl(n,r):=ni(n)/(ni(r)*ni(n-r))/*nCrを文字変数で表現*/$
nCr(n,r):=block([N,i],N:1,for i:1 thru r do(N:N*(n-i+1)/(i)),N:N)/*nCrの数値表現(n,rは数値)*/$
lng(n,list,sw):=block([D,i,iM,V],D:true,iM:length(list),
/**/for i:1 thru iM do(if (sw="N"and n=list[i]) or (sw="G" and list[i]>=n ) or (sw="L"and n>=list[i]) then D:false),V:D)/*[スイッチごとにTF判定]*/$
Xr(list,sw):=block([r,i,j],/*print("nHr",lA,length(lA[1]),r),*/ /**/r:length(list),
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("listi",list[i]),*/
/**//**//**/for j:1 thru list[length(lA[iM])+1] do(/*print(iM,length(lA[iM])+1 ),*/
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),
/**//**/lA:lEA,print("lA",lA,length(lA))))/*list:[[1,d],[d+1,d+j]],1つ目1~d,2つ目d+1~d+jで作成、スイッチsw、1324>>"N",1234>>"G",4321>>"L",1122>>"A",順列・組合せ*/$
load(fourier_elim)$
load ("functs")$
gcm(n1,n2):=n1*n2/lcm(n1,n2)/*n1,n2の最大公倍数*/$
quon(n1,n2):=block([qn,rn],rn:mod(n1,n2),qn:quotient(n1-rn,n2))/*n1のn2による整商*/$
exd(e1,e2,m):=block([k,kM,e11,e21,e,bL],e11:rat(e1,m),e21:rat(e2,m),e:rat(e11*e21,m),kM:hipow(e,m),
/**/print(e11),print(e21),print("----------各次数の係数に注目して") ,
/**/bL:["","...","......",".........","............",
/**/"...............","..................",".....................","........................"] /**/,
/**/for k:0 thru kM do(
/**//**/if kM>k then print(bL[k+1],coeff(e,m,(kM-k))*m^(kM-k))
/**//**//**/else print(bL[k+2],coeff(e,m,(kM-k))*moji^(kM-k))
/**//**/) /* "xの各次数の項を求めて(直前の3式から求め)" */,
/**/print("---------------------------------したがって") ,print(e),e:e)/*e1,e2の、mに着目した掛け算実行*/$
ed(e1,e2,bl,bdl):=block([hpe1,hpe2,hpe3,e1l,e2l,e3l,e4l,i],hpe1:hipow(e1,x),e1l:[],for i:0 thru hpe1 do e1l:cons(coeff(e1,x,i),e1l),print(e1l),
/**/hpe2:hipow(e2,x),e2l:[],for i:0 thru hpe2 do e2l:cons(coeff(e2,x,i),e2l),print(e2l),
/**/e20l:e2l,for i:1 thru hpe1-hpe2 do e20l:endcons(0,e20l),
/**/e3:quotient(e1,e2),hpe3:hipow(e3,x),e3l:[],for i:0 thru hpe3 do e3l:cons(coeff(e3,x,i),e3l),print(e3l),print(" "),
/**/print(bl,e3l),print(bdl),print(e2l,")",e1l),e4l:e20l*e3l[1],print(bl,e4l),print(bdl),e1l:e1l-e4l,print(bl,e1l),
/**/for i:1 thru hpe1-hpe2 do(e20l:cons(0,rest(e20l,-1)),e4l:e20l*e3l[1+i],print(bl,e4l),print(bdl),e1l:e1l-e4l,print(bl,e1l)),e1l:[e3l,e1l])/*e1のe2による割り算実行、結果はリスト*/$
elx(el,x):=block([i,iM,e],iM:length(el),e:0,for i:1 thru iM do(e:e+el[i]*x^(iM-i)),e:e)/*係数リストをxの文字式へ*/$
TEJUN:""$
e1:(4-3*%i);e2:(2+5*%i);rp1:realpart(e1);ip1:imagpart(e1);rp2:realpart(e2);ip2:imagpart(e2)/*(◆修正部分2)*/;
ep3:rp1+rp2+(ip1+ip2)*%i;ans:ep3;e3:e1+e2/*(◆修正部分2)*/;
KAKUNIN:"確認"/**/$
if ep3=e3 then kknnl:[rp1+rp2+(ip1+ip2)*%i,e1+e2,["rp1+rp2+(ip1+ip2)*%i,e1+e2"]]/*[rp1+rp2+(ip1+ip2)*%i,e1+e2]で確認(◆修正部分3)*/;
print(kknnl)/*確認*/$
KAITOU:ans/*解答*//**/$
SUJIMITI:"実部どうし、虚部どうしを加減して、虚部の項は( )*%iとなり、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・例2・練習3 103 (2-3*%i)-(4-2*%i)は"/*(◆修正部分1)*/$
e1:(2-3*%i);e2:(4-2*%i);rp1:realpart(e1);ip1:imagpart(e1);rp2:realpart(e2);ip2:imagpart(e2)/*(◆修正部分2)*/;
ep3:rp1-rp2+(ip1-ip2)*%i;ans:ep3;e3:e1-e2/*(◆修正部分2)*/;
if ep3=e3 then kknnl:[rp1-rp2+(ip1-ip2)*%i,e1-e2,["rp1-rp2+(ip1-ip2)*%i,e1-e2"]]/*[rp1-rp2+(ip1-ip2)*%i,e1-e2]で確認(◆修正部分3)*/;
◆コマンド番号104
●複素数の乗法
●●●●●●●●●●●●●●●●
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の順で */;powerdisp:false /* 降べきの順にして */$
MONDAI:"・例3・練習4 104 (1+2*%i)*(4+%i)は"/*(◆修正部分1)*/$
KOUSATU:"%i^2が-1になるので、実部どうし、虚部どうしを掛けて引いたら積の実部、・・・"/**/;
KANSUU:"";
ni(n):=n!/*nの階乗*/$
nCrl(n,r):=ni(n)/(ni(r)*ni(n-r))/*nCrを文字変数で表現*/$
nCr(n,r):=block([N,i],N:1,for i:1 thru r do(N:N*(n-i+1)/(i)),N:N)/*nCrの数値表現(n,rは数値)*/$
lng(n,list,sw):=block([D,i,iM,V],D:true,iM:length(list),
/**/for i:1 thru iM do(if (sw="N"and n=list[i]) or (sw="G" and list[i]>=n ) or (sw="L"and n>=list[i]) then D:false),V:D)/*[スイッチごとにTF判定]*/$
Xr(list,sw):=block([r,i,j],/*print("nHr",lA,length(lA[1]),r),*/ /**/r:length(list),
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("listi",list[i]),*/
/**//**//**/for j:1 thru list[length(lA[iM])+1] do(/*print(iM,length(lA[iM])+1 ),*/
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),
/**//**/lA:lEA,print("lA",lA,length(lA))))/*list:[[1,d],[d+1,d+j]],1つ目1~d,2つ目d+1~d+jで作成、スイッチsw、1324>>"N",1234>>"G",4321>>"L",1122>>"A",順列・組合せ*/$
load(fourier_elim)$
load ("functs")$
gcm(n1,n2):=n1*n2/lcm(n1,n2)/*n1,n2の最大公倍数*/$
quon(n1,n2):=block([qn,rn],rn:mod(n1,n2),qn:quotient(n1-rn,n2))/*n1のn2による整商*/$
exd(e1,e2,m):=block([k,kM,e11,e21,e,bL],e11:rat(e1,m),e21:rat(e2,m),e:rat(e11*e21,m),kM:hipow(e,m),
/**/print(e11),print(e21),print("----------各次数の係数に注目して") ,
/**/bL:["","...","......",".........","............",
/**/"...............","..................",".....................","........................"] /**/,
/**/for k:0 thru kM do(
/**//**/if kM>k then print(bL[k+1],coeff(e,m,(kM-k))*m^(kM-k))
/**//**//**/else print(bL[k+2],coeff(e,m,(kM-k))*moji^(kM-k))
/**//**/) /* "xの各次数の項を求めて(直前の3式から求め)" */,
/**/print("---------------------------------したがって") ,print(e),e:e)/*e1,e2の、mに着目した掛け算実行*/$
ed(e1,e2,bl,bdl):=block([hpe1,hpe2,hpe3,e1l,e2l,e3l,e4l,i],hpe1:hipow(e1,x),e1l:[],for i:0 thru hpe1 do e1l:cons(coeff(e1,x,i),e1l),print(e1l),
/**/hpe2:hipow(e2,x),e2l:[],for i:0 thru hpe2 do e2l:cons(coeff(e2,x,i),e2l),print(e2l),
/**/e20l:e2l,for i:1 thru hpe1-hpe2 do e20l:endcons(0,e20l),
/**/e3:quotient(e1,e2),hpe3:hipow(e3,x),e3l:[],for i:0 thru hpe3 do e3l:cons(coeff(e3,x,i),e3l),print(e3l),print(" "),
/**/print(bl,e3l),print(bdl),print(e2l,")",e1l),e4l:e20l*e3l[1],print(bl,e4l),print(bdl),e1l:e1l-e4l,print(bl,e1l),
/**/for i:1 thru hpe1-hpe2 do(e20l:cons(0,rest(e20l,-1)),e4l:e20l*e3l[1+i],print(bl,e4l),print(bdl),e1l:e1l-e4l,print(bl,e1l)),e1l:[e3l,e1l])/*e1のe2による割り算実行、結果はリスト*/$
elx(el,x):=block([i,iM,e],iM:length(el),e:0,for i:1 thru iM do(e:e+el[i]*x^(iM-i)),e:e)/*係数リストをxの文字式へ*/$
TEJUN:""$
e1:(1+2*%i);e2:(4+%i);rp1:realpart(e1);ip1:imagpart(e1);rp2:realpart(e2);ip2:imagpart(e2)/*(◆修正部分2)*/;
ep3:rp1*rp2-ip1*ip2+(rp1*ip2+rp2*ip1)*%i;ans:ep3;e3:e1*e2/**/;
KAKUNIN:"確認"/**/$
if ep3=expand(e3) then kknnl:[rp1*rp2-ip1*ip2+(rp1*ip2+rp2*ip1)*%i,e1*e2,["rp1*rp2-ip1*ip2+(rp1*ip2+rp2*ip1)*%i,e1*e2"]]/*[rp1*rp2-ip1*ip2+(rp1*ip2+rp2*ip1)*%i,e1*e2]で確認*/;
print(kknnl)/*確認*/$
KAITOU:ans/*解答*//**/$
SUJIMITI:"実部どうし、虚部どうしを掛けて引いたら積の実部なので、実部は( )となり、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・例3・練習4 104 (3+4*%i)*(3-4%i)は"/*(◆修正部分1)*/$
e1:(3+4*%i);e2:(3-4*%i);rp1:realpart(e1);ip1:imagpart(e1);rp2:realpart(e2);ip2:imagpart(e2)/*(◆修正部分2)*/;
◆コマンド番号105
●共役な複素数
●●●●●●●●●●●●●●●●
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の順で */;powerdisp:false /* 降べきの順にして */$
MONDAI:"・練習5 105 2+3*%iの共役な複素数は"/*(◆修正部分1)*/$
KOUSATU:"虚部の符号が逆のものが共役になるので、・・・"/**/;
KANSUU:"";
ni(n):=n!/*nの階乗*/$
nCrl(n,r):=ni(n)/(ni(r)*ni(n-r))/*nCrを文字変数で表現*/$
nCr(n,r):=block([N,i],N:1,for i:1 thru r do(N:N*(n-i+1)/(i)),N:N)/*nCrの数値表現(n,rは数値)*/$
lng(n,list,sw):=block([D,i,iM,V],D:true,iM:length(list),
/**/for i:1 thru iM do(if (sw="N"and n=list[i]) or (sw="G" and list[i]>=n ) or (sw="L"and n>=list[i]) then D:false),V:D)/*[スイッチごとにTF判定]*/$
Xr(list,sw):=block([r,i,j],/*print("nHr",lA,length(lA[1]),r),*/ /**/r:length(list),
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("listi",list[i]),*/
/**//**//**/for j:1 thru list[length(lA[iM])+1] do(/*print(iM,length(lA[iM])+1 ),*/
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),
/**//**/lA:lEA,print("lA",lA,length(lA))))/*list:[[1,d],[d+1,d+j]],1つ目1~d,2つ目d+1~d+jで作成、スイッチsw、1324>>"N",1234>>"G",4321>>"L",1122>>"A",順列・組合せ*/$
load(fourier_elim)$
load ("functs")$
gcm(n1,n2):=n1*n2/lcm(n1,n2)/*n1,n2の最大公倍数*/$
quon(n1,n2):=block([qn,rn],rn:mod(n1,n2),qn:quotient(n1-rn,n2))/*n1のn2による整商*/$
exd(e1,e2,m):=block([k,kM,e11,e21,e,bL],e11:rat(e1,m),e21:rat(e2,m),e:rat(e11*e21,m),kM:hipow(e,m),
/**/print(e11),print(e21),print("----------各次数の係数に注目して") ,
/**/bL:["","...","......",".........","............",
/**/"...............","..................",".....................","........................"] /**/,
/**/for k:0 thru kM do(
/**//**/if kM>k then print(bL[k+1],coeff(e,m,(kM-k))*m^(kM-k))
/**//**//**/else print(bL[k+2],coeff(e,m,(kM-k))*moji^(kM-k))
/**//**/) /* "xの各次数の項を求めて(直前の3式から求め)" */,
/**/print("---------------------------------したがって") ,print(e),e:e)/*e1,e2の、mに着目した掛け算実行*/$
ed(e1,e2,bl,bdl):=block([hpe1,hpe2,hpe3,e1l,e2l,e3l,e4l,i],hpe1:hipow(e1,x),e1l:[],for i:0 thru hpe1 do e1l:cons(coeff(e1,x,i),e1l),print(e1l),
/**/hpe2:hipow(e2,x),e2l:[],for i:0 thru hpe2 do e2l:cons(coeff(e2,x,i),e2l),print(e2l),
/**/e20l:e2l,for i:1 thru hpe1-hpe2 do e20l:endcons(0,e20l),
/**/e3:quotient(e1,e2),hpe3:hipow(e3,x),e3l:[],for i:0 thru hpe3 do e3l:cons(coeff(e3,x,i),e3l),print(e3l),print(" "),
/**/print(bl,e3l),print(bdl),print(e2l,")",e1l),e4l:e20l*e3l[1],print(bl,e4l),print(bdl),e1l:e1l-e4l,print(bl,e1l),
/**/for i:1 thru hpe1-hpe2 do(e20l:cons(0,rest(e20l,-1)),e4l:e20l*e3l[1+i],print(bl,e4l),print(bdl),e1l:e1l-e4l,print(bl,e1l)),e1l:[e3l,e1l])/*e1のe2による割り算実行、結果はリスト*/$
elx(el,x):=block([i,iM,e],iM:length(el),e:0,for i:1 thru iM do(e:e+el[i]*x^(iM-i)),e:e)/*係数リストをxの文字式へ*/$
TEJUN:""$
e1:2+3*%i;rp1:realpart(e1);ip1:imagpart(e1)/*(◆修正部分2)*/;
ep3:rp1-ip1*%i;ans:ep3;e3:conjugate(e1);ans:ep3/**/;
KAKUNIN:"確認"/**/$
if ep3=expand(e3) then kknnl:[rp1-ip1*%i,conjugate(e1),["rp1-ip1*%i,conjugate(e1)"]]/*[rp1-ip1*%i,conjugate(e1)]で確認*/;
print(kknnl)/*確認*/$
KAITOU:ans/*解答*//**/$
SUJIMITI:"虚部の符号が逆のものが共役になるので、共役なものの虚部は( )となり、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・練習5 105 (-1+sqrt(3)*%i)/2の共役な複素数は"/*(◆修正部分1)*/$
e1:(-1+sqrt(3)*%i)/2;rp1:realpart(e1);ip1:imagpart(e1)/*(◆修正部分2)*/;
◆コマンド番号106
●複素数の除法
●●●●●●●●●●●●●●●●
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の順で */;powerdisp:false /* 降べきの順にして */$
MONDAI:"・例4・練習6 106 1/(2+%i)は"/*(◆修正部分1)*/$
KOUSATU:"分母の共役なものを分母・分子に掛けると、分母は実数になるので、・・・"/**/;
KANSUU:"";
ni(n):=n!/*nの階乗*/$
nCrl(n,r):=ni(n)/(ni(r)*ni(n-r))/*nCrを文字変数で表現*/$
nCr(n,r):=block([N,i],N:1,for i:1 thru r do(N:N*(n-i+1)/(i)),N:N)/*nCrの数値表現(n,rは数値)*/$
lng(n,list,sw):=block([D,i,iM,V],D:true,iM:length(list),
/**/for i:1 thru iM do(if (sw="N"and n=list[i]) or (sw="G" and list[i]>=n ) or (sw="L"and n>=list[i]) then D:false),V:D)/*[スイッチごとにTF判定]*/$
Xr(list,sw):=block([r,i,j],/*print("nHr",lA,length(lA[1]),r),*/ /**/r:length(list),
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("listi",list[i]),*/
/**//**//**/for j:1 thru list[length(lA[iM])+1] do(/*print(iM,length(lA[iM])+1 ),*/
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),
/**//**/lA:lEA,print("lA",lA,length(lA))))/*list:[[1,d],[d+1,d+j]],1つ目1~d,2つ目d+1~d+jで作成、スイッチsw、1324>>"N",1234>>"G",4321>>"L",1122>>"A",順列・組合せ*/$
load(fourier_elim)$
load ("functs")$
gcm(n1,n2):=n1*n2/lcm(n1,n2)/*n1,n2の最大公倍数*/$
quon(n1,n2):=block([qn,rn],rn:mod(n1,n2),qn:quotient(n1-rn,n2))/*n1のn2による整商*/$
exd(e1,e2,m):=block([k,kM,e11,e21,e,bL],e11:rat(e1,m),e21:rat(e2,m),e:rat(e11*e21,m),kM:hipow(e,m),
/**/print(e11),print(e21),print("----------各次数の係数に注目して") ,
/**/bL:["","...","......",".........","............",
/**/"...............","..................",".....................","........................"] /**/,
/**/for k:0 thru kM do(
/**//**/if kM>k then print(bL[k+1],coeff(e,m,(kM-k))*m^(kM-k))
/**//**//**/else print(bL[k+2],coeff(e,m,(kM-k))*moji^(kM-k))
/**//**/) /* "xの各次数の項を求めて(直前の3式から求め)" */,
/**/print("---------------------------------したがって") ,print(e),e:e)/*e1,e2の、mに着目した掛け算実行*/$
ed(e1,e2,bl,bdl):=block([hpe1,hpe2,hpe3,e1l,e2l,e3l,e4l,i],hpe1:hipow(e1,x),e1l:[],for i:0 thru hpe1 do e1l:cons(coeff(e1,x,i),e1l),print(e1l),
/**/hpe2:hipow(e2,x),e2l:[],for i:0 thru hpe2 do e2l:cons(coeff(e2,x,i),e2l),print(e2l),
/**/e20l:e2l,for i:1 thru hpe1-hpe2 do e20l:endcons(0,e20l),
/**/e3:quotient(e1,e2),hpe3:hipow(e3,x),e3l:[],for i:0 thru hpe3 do e3l:cons(coeff(e3,x,i),e3l),print(e3l),print(" "),
/**/print(bl,e3l),print(bdl),print(e2l,")",e1l),e4l:e20l*e3l[1],print(bl,e4l),print(bdl),e1l:e1l-e4l,print(bl,e1l),
/**/for i:1 thru hpe1-hpe2 do(e20l:cons(0,rest(e20l,-1)),e4l:e20l*e3l[1+i],print(bl,e4l),print(bdl),e1l:e1l-e4l,print(bl,e1l)),e1l:[e3l,e1l])/*e1のe2による割り算実行、結果はリスト*/$
elx(el,x):=block([i,iM,e],iM:length(el),e:0,for i:1 thru iM do(e:e+el[i]*x^(iM-i)),e:e)/*係数リストをxの文字式へ*/$
TEJUN:""$
e1:1;e2:(2+%i);rp1:realpart(e1);ip1:imagpart(e1);rp2:realpart(e2);ip2:imagpart(e2)/*(◆修正部分2)*/;
ep22:expand(e2*(rp2-ip2*%i));ep3:expand(e1*(rp2-ip2*%i))/ep22;ans:ep3;e3:rat(e1/e2),algebraic:true;ans:ep3/**/;
KAKUNIN:"確認"/**/$
if rat(ep3)=rat(e3) then kknnl:[["(",(e1*(rp2-ip2*%i)),")/(",(e2*(rp2-ip2*%i))],")",e3,["(e1*(rp2-ip2*%i))/(e2*(rp2-ip2*%i))","(rat(e1/e2),algebraic:true)"]]/*[(e1*(rp2-ip2*%i))/(e2*(rp2-ip2*%i)),(rat(e1/e2),algebraic:true)]で確認*/;
print(kknnl)/*確認*/$
KAITOU:ans/*解答*//**/$
SUJIMITI:"分母の共役なものを分母・分子に掛けると、分母は( )となり、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・例4・練習6 106 (1+2*%i)/(2+3*%i)は"/*(◆修正部分1)*/$
KOUSATU:"分母の共役なものを分母・分子に掛けると、分母は実数になるので、・・・"/**/;
e1:1+2*%i;e2:2+3*%i;rp1:realpart(e1);ip1:imagpart(e1);rp2:realpart(e2);ip2:imagpart(e2)/*(◆修正部分2)*/;
C. 負の数の平方根
◆コマンド番号107
●負の数の平方根
●●●●●●●●●●●●●●●●
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の順で */;powerdisp:false /* 降べきの順にして */$
MONDAI:"・例5・練習7 107 -6の平方根は"/*(◆修正部分1)*/$
KOUSATU:"「平方が-6である根」というのが元来の意味で、その値は、x^2=-6の解なので、・・・"/*(◆修正部分1)*/;
KANSUU:"";
ni(n):=n!/*nの階乗*/$
nCrl(n,r):=ni(n)/(ni(r)*ni(n-r))/*nCrを文字変数で表現*/$
nCr(n,r):=block([N,i],N:1,for i:1 thru r do(N:N*(n-i+1)/(i)),N:N)/*nCrの数値表現(n,rは数値)*/$
lng(n,list,sw):=block([D,i,iM,V],D:true,iM:length(list),
/**/for i:1 thru iM do(if (sw="N"and n=list[i]) or (sw="G" and list[i]>=n ) or (sw="L"and n>=list[i]) then D:false),V:D)/*[スイッチごとにTF判定]*/$
Xr(list,sw):=block([r,i,j],/*print("nHr",lA,length(lA[1]),r),*/ /**/r:length(list),
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("listi",list[i]),*/
/**//**//**/for j:1 thru list[length(lA[iM])+1] do(/*print(iM,length(lA[iM])+1 ),*/
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),
/**//**/lA:lEA,print("lA",lA,length(lA))))/*list:[[1,d],[d+1,d+j]],1つ目1~d,2つ目d+1~d+jで作成、スイッチsw、1324>>"N",1234>>"G",4321>>"L",1122>>"A",順列・組合せ*/$
load(fourier_elim)$
load ("functs")$
gcm(n1,n2):=n1*n2/lcm(n1,n2)/*n1,n2の最大公倍数*/$
quon(n1,n2):=block([qn,rn],rn:mod(n1,n2),qn:quotient(n1-rn,n2))/*n1のn2による整商*/$
exd(e1,e2,m):=block([k,kM,e11,e21,e,bL],e11:rat(e1,m),e21:rat(e2,m),e:rat(e11*e21,m),kM:hipow(e,m),
/**/print(e11),print(e21),print("----------各次数の係数に注目して") ,
/**/bL:["","...","......",".........","............",
/**/"...............","..................",".....................","........................"] /**/,
/**/for k:0 thru kM do(
/**//**/if kM>k then print(bL[k+1],coeff(e,m,(kM-k))*m^(kM-k))
/**//**//**/else print(bL[k+2],coeff(e,m,(kM-k))*moji^(kM-k))
/**//**/) /* "xの各次数の項を求めて(直前の3式から求め)" */,
/**/print("---------------------------------したがって") ,print(e),e:e)/*e1,e2の、mに着目した掛け算実行*/$
ed(e1,e2,bl,bdl):=block([hpe1,hpe2,hpe3,e1l,e2l,e3l,e4l,i],hpe1:hipow(e1,x),e1l:[],for i:0 thru hpe1 do e1l:cons(coeff(e1,x,i),e1l),print(e1l),
/**/hpe2:hipow(e2,x),e2l:[],for i:0 thru hpe2 do e2l:cons(coeff(e2,x,i),e2l),print(e2l),
/**/e20l:e2l,for i:1 thru hpe1-hpe2 do e20l:endcons(0,e20l),
/**/e3:quotient(e1,e2),hpe3:hipow(e3,x),e3l:[],for i:0 thru hpe3 do e3l:cons(coeff(e3,x,i),e3l),print(e3l),print(" "),
/**/print(bl,e3l),print(bdl),print(e2l,")",e1l),e4l:e20l*e3l[1],print(bl,e4l),print(bdl),e1l:e1l-e4l,print(bl,e1l),
/**/for i:1 thru hpe1-hpe2 do(e20l:cons(0,rest(e20l,-1)),e4l:e20l*e3l[1+i],print(bl,e4l),print(bdl),e1l:e1l-e4l,print(bl,e1l)),e1l:[e3l,e1l])/*e1のe2による割り算実行、結果はリスト*/$
elx(el,x):=block([i,iM,e],iM:length(el),e:0,for i:1 thru iM do(e:e+el[i]*x^(iM-i)),e:e)/*係数リストをxの文字式へ*/$
TEJUN:""$
e1:x^2;e2:-6;sx:solve(e1=e2,x);ans:sx/*(◆修正部分2)*/;
KAKUNIN:"確認"/**/$
if subst(sx,e1)=e2 then kknnl:[ans,ans^2,e2,"[ans,ans^2,e2]で確認"]/*で確認*//*(◆修正部分3)*/;
print(kknnl)/*確認*/$
KAITOU:ans/*解答*//**/$
SUJIMITI:"「平方が-6である根」というのが元来の意味で、方程式はx^2=( )となり、・・・"/*(◆修正部分4)*/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・例5・練習7 107 sqrt(-5)は"/*(◆修正部分1)*/$
KOUSATU:"「平方が-5である根の値のうちの虚部が正のもの」というのが元来の意味で、・・・"/*(◆修正部分1)*/;
declare(x,complex);jk1:imagpart(x)>0;e1:x^2;e2:-5;sx:solve(e1=e2,x)/*(◆修正部分2)*/;
sX:[];iM:length(sx);for i:1 thru iM do(tF:subst(sx[i],jk1),print(["tF",tF]),if tF then sX:endcons(sx[i],sX));ans:sX/*(◆修正部分2)*/;
if subst(sX,e1)=e2 and imagpart(rhs(sX[1]))>0 then kknnl:[ans,imagpart(rhs(ans[1])),ans^2,e2,"[ans,imagpart(rhs(ans[1])),ans^2,e2]で確認"]/*で確認*//*(◆修正部分3)*/;
SUJIMITI:"「平方が-5である根の値のうちの虚部が正のもの」というのが元来の意味で、方程式はx^2=( )となり、・・・"/*(◆修正部分4)*/;
◆コマンド番号108
●負の数の平方根
●●●●●●●●●●●●●●●●
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の順で */;powerdisp:false /* 降べきの順にして */$
MONDAI:"・例6・練習8 108 sqrt(-2)*sqrt(-3)は"/*(◆修正部分1)*/$
KOUSATU:"%iによる式に変えたうえで、%i^2=-1として計算すると、・・・"/**/;
KANSUU:"";
ni(n):=n!/*nの階乗*/$
nCrl(n,r):=ni(n)/(ni(r)*ni(n-r))/*nCrを文字変数で表現*/$
nCr(n,r):=block([N,i],N:1,for i:1 thru r do(N:N*(n-i+1)/(i)),N:N)/*nCrの数値表現(n,rは数値)*/$
lng(n,list,sw):=block([D,i,iM,V],D:true,iM:length(list),
/**/for i:1 thru iM do(if (sw="N"and n=list[i]) or (sw="G" and list[i]>=n ) or (sw="L"and n>=list[i]) then D:false),V:D)/*[スイッチごとにTF判定]*/$
Xr(list,sw):=block([r,i,j],/*print("nHr",lA,length(lA[1]),r),*/ /**/r:length(list),
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("listi",list[i]),*/
/**//**//**/for j:1 thru list[length(lA[iM])+1] do(/*print(iM,length(lA[iM])+1 ),*/
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),
/**//**/lA:lEA,print("lA",lA,length(lA))))/*list:[[1,d],[d+1,d+j]],1つ目1~d,2つ目d+1~d+jで作成、スイッチsw、1324>>"N",1234>>"G",4321>>"L",1122>>"A",順列・組合せ*/$
load(fourier_elim)$
load ("functs")$
gcm(n1,n2):=n1*n2/lcm(n1,n2)/*n1,n2の最大公倍数*/$
quon(n1,n2):=block([qn,rn],rn:mod(n1,n2),qn:quotient(n1-rn,n2))/*n1のn2による整商*/$
exd(e1,e2,m):=block([k,kM,e11,e21,e,bL],e11:rat(e1,m),e21:rat(e2,m),e:rat(e11*e21,m),kM:hipow(e,m),
/**/print(e11),print(e21),print("----------各次数の係数に注目して") ,
/**/bL:["","...","......",".........","............",
/**/"...............","..................",".....................","........................"] /**/,
/**/for k:0 thru kM do(
/**//**/if kM>k then print(bL[k+1],coeff(e,m,(kM-k))*m^(kM-k))
/**//**//**/else print(bL[k+2],coeff(e,m,(kM-k))*moji^(kM-k))
/**//**/) /* "xの各次数の項を求めて(直前の3式から求め)" */,
/**/print("---------------------------------したがって") ,print(e),e:e)/*e1,e2の、mに着目した掛け算実行*/$
ed(e1,e2,bl,bdl):=block([hpe1,hpe2,hpe3,e1l,e2l,e3l,e4l,i],hpe1:hipow(e1,x),e1l:[],for i:0 thru hpe1 do e1l:cons(coeff(e1,x,i),e1l),print(e1l),
/**/hpe2:hipow(e2,x),e2l:[],for i:0 thru hpe2 do e2l:cons(coeff(e2,x,i),e2l),print(e2l),
/**/e20l:e2l,for i:1 thru hpe1-hpe2 do e20l:endcons(0,e20l),
/**/e3:quotient(e1,e2),hpe3:hipow(e3,x),e3l:[],for i:0 thru hpe3 do e3l:cons(coeff(e3,x,i),e3l),print(e3l),print(" "),
/**/print(bl,e3l),print(bdl),print(e2l,")",e1l),e4l:e20l*e3l[1],print(bl,e4l),print(bdl),e1l:e1l-e4l,print(bl,e1l),
/**/for i:1 thru hpe1-hpe2 do(e20l:cons(0,rest(e20l,-1)),e4l:e20l*e3l[1+i],print(bl,e4l),print(bdl),e1l:e1l-e4l,print(bl,e1l)),e1l:[e3l,e1l])/*e1のe2による割り算実行、結果はリスト*/$
elx(el,x):=block([i,iM,e],iM:length(el),e:0,for i:1 thru iM do(e:e+el[i]*x^(iM-i)),e:e)/*係数リストをxの文字式へ*/$
TEJUN:""$
e1:sqrt(-2);e2:sqrt(-3);rp1:realpart(e1);ip1:imagpart(e1);rp2:realpart(e2);ip2:imagpart(e2);e3:(rp1*rp2-ip1*ip2)+(rp1*ip2+rp2*ip1)*%i;ans:e3/*(◆修正部分2)*/;
KAKUNIN:"確認"/**/$
if e3=e1*e2 then kknnl:[e3,e1*e2,"[rp1*rp2-ip1*ip2+(rp1*ip2+rp2*ip1)*%i,e1*e2]で確認"]/*で確認*//*(◆修正部分3)*/;
print(kknnl)/*確認*/$
KAITOU:rootscontract(realpart(ans))+rootscontract(imagpart(ans))*%i/*解答*//**/$
SUJIMITI:"%iによる式に変えたうえで、%i^2=-1として計算すると、第1因子は( )となり、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・例6・練習8 108 sqrt(-8)*sqrt(2)は"/*(◆修正部分1)*/$
e1:sqrt(-8);e2:sqrt(2);e21:rat(1/e2,algebraic:true);rp1:realpart(e1);ip1:imagpart(e1);rp2:rat(realpart(e21),algebraic:true);ip2:imagpart(e21);e3:rootscontract(rp1*rp2-ip1*ip2)+rootscontract(rp1*ip2+rp2*ip1)*%i;ans:e3/*(◆修正部分2)*/;
if rat(e3)=rat(e1/e2,algebraic:true) then kknnl:[ans,e1/e2,"[rp1*rp2-ip1*ip2+(rp1*ip2+rp2*ip1)*%i,e1/e2]で確認"]/*で確認*//*(◆修正部分3)*/;
:
2.2次方程式の解
A. 2次方程式x^2=kの解
◆コマンド番号201
●x^2=kの解
●●●●●●●●●●●●●●●●
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の順で */;powerdisp:false /* 降べきの順にして */$
MONDAI:"・例7・練習9 201 x^2=-13の解は"/*(◆修正部分1)*/$
KOUSATU:"x^2=kの解はx=sqrt(k),x=-sqrt(k)だから、・・・"/**/;
KANSUU:"";
ni(n):=n!/*nの階乗*/$
nCrl(n,r):=ni(n)/(ni(r)*ni(n-r))/*nCrを文字変数で表現*/$
nCr(n,r):=block([N,i],N:1,for i:1 thru r do(N:N*(n-i+1)/(i)),N:N)/*nCrの数値表現(n,rは数値)*/$
lng(n,list,sw):=block([D,i,iM,V],D:true,iM:length(list),
/**/for i:1 thru iM do(if (sw="N"and n=list[i]) or (sw="G" and list[i]>=n ) or (sw="L"and n>=list[i]) then D:false),V:D)/*[スイッチごとにTF判定]*/$
Xr(list,sw):=block([r,i,j],/*print("nHr",lA,length(lA[1]),r),*/ /**/r:length(list),
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("listi",list[i]),*/
/**//**//**/for j:1 thru list[length(lA[iM])+1] do(/*print(iM,length(lA[iM])+1 ),*/
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),
/**//**/lA:lEA,print("lA",lA,length(lA))))/*list:[[1,d],[d+1,d+j]],1つ目1~d,2つ目d+1~d+jで作成、スイッチsw、1324>>"N",1234>>"G",4321>>"L",1122>>"A",順列・組合せ*/$
load(fourier_elim)$
load ("functs")$
gcm(n1,n2):=n1*n2/lcm(n1,n2)/*n1,n2の最大公倍数*/$
quon(n1,n2):=block([qn,rn],rn:mod(n1,n2),qn:quotient(n1-rn,n2))/*n1のn2による整商*/$
exd(e1,e2,m):=block([k,kM,e11,e21,e,bL],e11:rat(e1,m),e21:rat(e2,m),e:rat(e11*e21,m),kM:hipow(e,m),
/**/print(e11),print(e21),print("----------各次数の係数に注目して") ,
/**/bL:["","...","......",".........","............",
/**/"...............","..................",".....................","........................"] /**/,
/**/for k:0 thru kM do(
/**//**/if kM>k then print(bL[k+1],coeff(e,m,(kM-k))*m^(kM-k))
/**//**//**/else print(bL[k+2],coeff(e,m,(kM-k))*moji^(kM-k))
/**//**/) /* "xの各次数の項を求めて(直前の3式から求め)" */,
/**/print("---------------------------------したがって") ,print(e),e:e)/*e1,e2の、mに着目した掛け算実行*/$
ed(e1,e2,bl,bdl):=block([hpe1,hpe2,hpe3,e1l,e2l,e3l,e4l,i],hpe1:hipow(e1,x),e1l:[],for i:0 thru hpe1 do e1l:cons(coeff(e1,x,i),e1l),print(e1l),
/**/hpe2:hipow(e2,x),e2l:[],for i:0 thru hpe2 do e2l:cons(coeff(e2,x,i),e2l),print(e2l),
/**/e20l:e2l,for i:1 thru hpe1-hpe2 do e20l:endcons(0,e20l),
/**/e3:quotient(e1,e2),hpe3:hipow(e3,x),e3l:[],for i:0 thru hpe3 do e3l:cons(coeff(e3,x,i),e3l),print(e3l),print(" "),
/**/print(bl,e3l),print(bdl),print(e2l,")",e1l),e4l:e20l*e3l[1],print(bl,e4l),print(bdl),e1l:e1l-e4l,print(bl,e1l),
/**/for i:1 thru hpe1-hpe2 do(e20l:cons(0,rest(e20l,-1)),e4l:e20l*e3l[1+i],print(bl,e4l),print(bdl),e1l:e1l-e4l,print(bl,e1l)),e1l:[e3l,e1l])/*e1のe2による割り算実行、結果はリスト*/$
elx(el,x):=block([i,iM,e],iM:length(el),e:0,for i:1 thru iM do(e:e+el[i]*x^(iM-i)),e:e)/*係数リストをxの文字式へ*/$
TEJUN:""$
e1:x^2=-13;e:e1;e2:rhs(e1);ans:[x=sqrt(e2),x=-sqrt(e2)]/*(◆修正部分2)*/;
KAKUNIN:"確認"/**/$
if subst(ans[1],e) and subst(ans[2],e) then kknnl:[ans,subst(ans[1],e),subst(ans[2],e),"ans:[x=sqrt(e2),x=-sqrt(e2)],subst(ans[1],e),subst(ans[2],e))]で確認"]/*で確認*//**/;
print(kknnl)/*確認*/$
KAITOU:ans/*解答*//**/$
SUJIMITI:"x^2=kの解はx=sqrt(k),x=-sqrt(k)だから、解の1つは( )となり、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・例7・練習9 201 x^2+18=0の解は"/*(◆修正部分1)*/$
e1:x^2+18=0;e:e1;e1:e1-18;e2:rhs(e1);ans:[x=-sqrt(e2),x=sqrt(e2)]/*(◆修正部分2)*/;
◆コマンド番号202
●解の公式
●●●●●●●●●●●●●●●●
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の順で */;powerdisp:false /* 降べきの順にして */$
MONDAI:"・例8・練習10 202 3*x^2+7*x+5=0の解は"/*(◆修正部分1)*/$
KOUSATU:"2次方程式の解の公式はb^2-4*a*cの符号に関わらず成立するので、・・・"/**/;
KANSUU:"";
ni(n):=n!/*nの階乗*/$
nCrl(n,r):=ni(n)/(ni(r)*ni(n-r))/*nCrを文字変数で表現*/$
nCr(n,r):=block([N,i],N:1,for i:1 thru r do(N:N*(n-i+1)/(i)),N:N)/*nCrの数値表現(n,rは数値)*/$
lng(n,list,sw):=block([D,i,iM,V],D:true,iM:length(list),
/**/for i:1 thru iM do(if (sw="N"and n=list[i]) or (sw="G" and list[i]>=n ) or (sw="L"and n>=list[i]) then D:false),V:D)/*[スイッチごとにTF判定]*/$
Xr(list,sw):=block([r,i,j],/*print("nHr",lA,length(lA[1]),r),*/ /**/r:length(list),
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("listi",list[i]),*/
/**//**//**/for j:1 thru list[length(lA[iM])+1] do(/*print(iM,length(lA[iM])+1 ),*/
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),
/**//**/lA:lEA,print("lA",lA,length(lA))))/*list:[[1,d],[d+1,d+j]],1つ目1~d,2つ目d+1~d+jで作成、スイッチsw、1324>>"N",1234>>"G",4321>>"L",1122>>"A",順列・組合せ*/$
load(fourier_elim)$
load ("functs")$
gcm(n1,n2):=n1*n2/lcm(n1,n2)/*n1,n2の最大公倍数*/$
quon(n1,n2):=block([qn,rn],rn:mod(n1,n2),qn:quotient(n1-rn,n2))/*n1のn2による整商*/$
exd(e1,e2,m):=block([k,kM,e11,e21,e,bL],e11:rat(e1,m),e21:rat(e2,m),e:rat(e11*e21,m),kM:hipow(e,m),
/**/print(e11),print(e21),print("----------各次数の係数に注目して") ,
/**/bL:["","...","......",".........","............",
/**/"...............","..................",".....................","........................"] /**/,
/**/for k:0 thru kM do(
/**//**/if kM>k then print(bL[k+1],coeff(e,m,(kM-k))*m^(kM-k))
/**//**//**/else print(bL[k+2],coeff(e,m,(kM-k))*moji^(kM-k))
/**//**/) /* "xの各次数の項を求めて(直前の3式から求め)" */,
/**/print("---------------------------------したがって") ,print(e),e:e)/*e1,e2の、mに着目した掛け算実行*/$
ed(e1,e2,bl,bdl):=block([hpe1,hpe2,hpe3,e1l,e2l,e3l,e4l,i],hpe1:hipow(e1,x),e1l:[],for i:0 thru hpe1 do e1l:cons(coeff(e1,x,i),e1l),print(e1l),
/**/hpe2:hipow(e2,x),e2l:[],for i:0 thru hpe2 do e2l:cons(coeff(e2,x,i),e2l),print(e2l),
/**/e20l:e2l,for i:1 thru hpe1-hpe2 do e20l:endcons(0,e20l),
/**/e3:quotient(e1,e2),hpe3:hipow(e3,x),e3l:[],for i:0 thru hpe3 do e3l:cons(coeff(e3,x,i),e3l),print(e3l),print(" "),
/**/print(bl,e3l),print(bdl),print(e2l,")",e1l),e4l:e20l*e3l[1],print(bl,e4l),print(bdl),e1l:e1l-e4l,print(bl,e1l),
/**/for i:1 thru hpe1-hpe2 do(e20l:cons(0,rest(e20l,-1)),e4l:e20l*e3l[1+i],print(bl,e4l),print(bdl),e1l:e1l-e4l,print(bl,e1l)),e1l:[e3l,e1l])/*e1のe2による割り算実行、結果はリスト*/$
elx(el,x):=block([i,iM,e],iM:length(el),e:0,for i:1 thru iM do(e:e+el[i]*x^(iM-i)),e:e)/*係数リストをxの文字式へ*/$
TEJUN:""$
El:[x=(-B+sqrt(B^2-4*A*C))/(2*A),x=(-B-sqrt(B^2-4*A*C))/(2*A)];
e1:3*x^2+7*x+5=0;a:coeff(expand(lhs(e1)),x,2);b:coeff(expand(lhs(e1)),x,1);c:coeff(expand(lhs(e1)),x,0)/*(◆修正部分2)*/;
sx:subst([A=a,B=b,C=c],El);ans:sx;
KAKUNIN:"確認"/**/$
Ans:expand([subst(ans[1],e1), subst(ans[2],e1)]);
if Ans[1] and Ans[2] then kknnl:[ans,expand(subst(ans[1],e1)),expand(subst(ans[2],e1)),"ans:[x=sqrt(e2),x=-sqrt(e2)],subst(ans[1],e1),subst(ans[2],e1))]で確認"]/*で確認*//**/;
print(kknnl)/*確認*/$
KAITOU:ans/*解答*//**/$
SUJIMITI:"2次方程式の解の公式はb^2-4*a*cの符号に関わらず成立するので、解の1つは( )となり、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・例8・練習10 202 x^2-2*sqrt(3)*x+4=0の解は"/*(◆修正部分1)*/$
e1:x^2-2*sqrt(3)*x+4=0;a:coeff(expand(lhs(e1)),x,2);b:coeff(expand(lhs(e1)),x,1);c:coeff(expand(lhs(e1)),x,0)/*(◆修正部分2)*/;
C. 2次方程式の解の判別
◆コマンド番号203
●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の順で */;powerdisp:false /* 降べきの順にして */$
MONDAI:"・例題2・練習11 203 3*x^2+5*x+1=0の解の種類は"/*(◆修正部分1)*/$
KOUSATU:"2次方程式の解の種類は、判別式の正・0・負により、・・・"/**/;
KANSUU:"";
ni(n):=n!/*nの階乗*/$
nCrl(n,r):=ni(n)/(ni(r)*ni(n-r))/*nCrを文字変数で表現*/$
nCr(n,r):=block([N,i],N:1,for i:1 thru r do(N:N*(n-i+1)/(i)),N:N)/*nCrの数値表現(n,rは数値)*/$
lng(n,list,sw):=block([D,i,iM,V],D:true,iM:length(list),
/**/for i:1 thru iM do(if (sw="N"and n=list[i]) or (sw="G" and list[i]>=n ) or (sw="L"and n>=list[i]) then D:false),V:D)/*[スイッチごとにTF判定]*/$
Xr(list,sw):=block([r,i,j],/*print("nHr",lA,length(lA[1]),r),*/ /**/r:length(list),
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("listi",list[i]),*/
/**//**//**/for j:1 thru list[length(lA[iM])+1] do(/*print(iM,length(lA[iM])+1 ),*/
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),
/**//**/lA:lEA,print("lA",lA,length(lA))))/*list:[[1,d],[d+1,d+j]],1つ目1~d,2つ目d+1~d+jで作成、スイッチsw、1324>>"N",1234>>"G",4321>>"L",1122>>"A",順列・組合せ*/$
load(fourier_elim)$
load ("functs")$
gcm(n1,n2):=n1*n2/lcm(n1,n2)/*n1,n2の最大公倍数*/$
quon(n1,n2):=block([qn,rn],rn:mod(n1,n2),qn:quotient(n1-rn,n2))/*n1のn2による整商*/$
exd(e1,e2,m):=block([k,kM,e11,e21,e,bL],e11:rat(e1,m),e21:rat(e2,m),e:rat(e11*e21,m),kM:hipow(e,m),
/**/print(e11),print(e21),print("----------各次数の係数に注目して") ,
/**/bL:["","...","......",".........","............",
/**/"...............","..................",".....................","........................"] /**/,
/**/for k:0 thru kM do(
/**//**/if kM>k then print(bL[k+1],coeff(e,m,(kM-k))*m^(kM-k))
/**//**//**/else print(bL[k+2],coeff(e,m,(kM-k))*moji^(kM-k))
/**//**/) /* "xの各次数の項を求めて(直前の3式から求め)" */,
/**/print("---------------------------------したがって") ,print(e),e:e)/*e1,e2の、mに着目した掛け算実行*/$
ed(e1,e2,bl,bdl):=block([hpe1,hpe2,hpe3,e1l,e2l,e3l,e4l,i],hpe1:hipow(e1,x),e1l:[],for i:0 thru hpe1 do e1l:cons(coeff(e1,x,i),e1l),print(e1l),
/**/hpe2:hipow(e2,x),e2l:[],for i:0 thru hpe2 do e2l:cons(coeff(e2,x,i),e2l),print(e2l),
/**/e20l:e2l,for i:1 thru hpe1-hpe2 do e20l:endcons(0,e20l),
/**/e3:quotient(e1,e2),hpe3:hipow(e3,x),e3l:[],for i:0 thru hpe3 do e3l:cons(coeff(e3,x,i),e3l),print(e3l),print(" "),
/**/print(bl,e3l),print(bdl),print(e2l,")",e1l),e4l:e20l*e3l[1],print(bl,e4l),print(bdl),e1l:e1l-e4l,print(bl,e1l),
/**/for i:1 thru hpe1-hpe2 do(e20l:cons(0,rest(e20l,-1)),e4l:e20l*e3l[1+i],print(bl,e4l),print(bdl),e1l:e1l-e4l,print(bl,e1l)),e1l:[e3l,e1l])/*e1のe2による割り算実行、結果はリスト*/$
elx(el,x):=block([i,iM,e],iM:length(el),e:0,for i:1 thru iM do(e:e+el[i]*x^(iM-i)),e:e)/*係数リストをxの文字式へ*/$
TEJUN:""$
El:[x=(-B+sqrt(B^2-4*A*C))/(2*A),x=(-B-sqrt(B^2-4*A*C))/(2*A)];D:B^2-4*A*C;
e1:3*x^2+5*x+1=0;a:coeff(expand(lhs(e1)),x,2);b:coeff(expand(lhs(e1)),x,1);c:coeff(expand(lhs(e1)),x,0)/*(◆修正部分2)*/;
eD:subst([A=a,B=b,C=c],D);if eD>0 then ans:[eD,"異なる2つの実数解"] elseif eD=0 then ans:[eD,"重解"] else ans:[ed,"異なる2つの虚数解"];sx:subst([A=a,B=b,C=c],El);
KAKUNIN:"確認"/**/$
Ans:expand([subst(sx[1],e1), subst(sx[2],e1)]);
if Ans[1] and Ans[2] then kknnl:[ans,expand(subst(sx[1],e1)),expand(subst(sx[2],e1)),"[ans,subst(sx[1],e1),subst(sx[2],e1)]で確認"]/*で確認*//**/;
print(kknnl)/*確認*/$
KAITOU:ans/*解答*//**/$
SUJIMITI:"この2次方程式の解の種類を決める判別式は、( )となり、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・例題2・練習11 111 x^2-2*sqrt(3)*x+3=0の解の種類は"/*(◆修正部分1)*/$
e1:x^2-2*sqrt(3)*x+3=0;a:coeff(expand(lhs(e1)),x,2);b:coeff(expand(lhs(e1)),x,1);c:coeff(expand(lhs(e1)),x,0)/*(◆修正部分2)*/;
◆コマンド番号204
●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の順で */;powerdisp:false /* 降べきの順にして */$
MONDAI:"・例題3・練習12 204 x^2+2*m*x+m+6=0が実数解をもつmの範囲は"/*(◆修正部分1)*/$
KOUSATU:"mを用いて判別式を作り、・・・"/**/;
KANSUU:"";
ni(n):=n!/*nの階乗*/$
nCrl(n,r):=ni(n)/(ni(r)*ni(n-r))/*nCrを文字変数で表現*/$
nCr(n,r):=block([N,i],N:1,for i:1 thru r do(N:N*(n-i+1)/(i)),N:N)/*nCrの数値表現(n,rは数値)*/$
lng(n,list,sw):=block([D,i,iM,V],D:true,iM:length(list),
/**/for i:1 thru iM do(if (sw="N"and n=list[i]) or (sw="G" and list[i]>=n ) or (sw="L"and n>=list[i]) then D:false),V:D)/*[スイッチごとにTF判定]*/$
Xr(list,sw):=block([r,i,j],/*print("nHr",lA,length(lA[1]),r),*/ /**/r:length(list),
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("listi",list[i]),*/
/**//**//**/for j:1 thru list[length(lA[iM])+1] do(/*print(iM,length(lA[iM])+1 ),*/
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),
/**//**/lA:lEA,print("lA",lA,length(lA))))/*list:[[1,d],[d+1,d+j]],1つ目1~d,2つ目d+1~d+jで作成、スイッチsw、1324>>"N",1234>>"G",4321>>"L",1122>>"A",順列・組合せ*/$
load(fourier_elim)$
load ("functs")$
gcm(n1,n2):=n1*n2/lcm(n1,n2)/*n1,n2の最大公倍数*/$
quon(n1,n2):=block([qn,rn],rn:mod(n1,n2),qn:quotient(n1-rn,n2))/*n1のn2による整商*/$
exd(e1,e2,m):=block([k,kM,e11,e21,e,bL],e11:rat(e1,m),e21:rat(e2,m),e:rat(e11*e21,m),kM:hipow(e,m),
/**/print(e11),print(e21),print("----------各次数の係数に注目して") ,
/**/bL:["","...","......",".........","............",
/**/"...............","..................",".....................","........................"] /**/,
/**/for k:0 thru kM do(
/**//**/if kM>k then print(bL[k+1],coeff(e,m,(kM-k))*m^(kM-k))
/**//**//**/else print(bL[k+2],coeff(e,m,(kM-k))*moji^(kM-k))
/**//**/) /* "xの各次数の項を求めて(直前の3式から求め)" */,
/**/print("---------------------------------したがって") ,print(e),e:e)/*e1,e2の、mに着目した掛け算実行*/$
ed(e1,e2,bl,bdl):=block([hpe1,hpe2,hpe3,e1l,e2l,e3l,e4l,i],hpe1:hipow(e1,x),e1l:[],for i:0 thru hpe1 do e1l:cons(coeff(e1,x,i),e1l),print(e1l),
/**/hpe2:hipow(e2,x),e2l:[],for i:0 thru hpe2 do e2l:cons(coeff(e2,x,i),e2l),print(e2l),
/**/e20l:e2l,for i:1 thru hpe1-hpe2 do e20l:endcons(0,e20l),
/**/e3:quotient(e1,e2),hpe3:hipow(e3,x),e3l:[],for i:0 thru hpe3 do e3l:cons(coeff(e3,x,i),e3l),print(e3l),print(" "),
/**/print(bl,e3l),print(bdl),print(e2l,")",e1l),e4l:e20l*e3l[1],print(bl,e4l),print(bdl),e1l:e1l-e4l,print(bl,e1l),
/**/for i:1 thru hpe1-hpe2 do(e20l:cons(0,rest(e20l,-1)),e4l:e20l*e3l[1+i],print(bl,e4l),print(bdl),e1l:e1l-e4l,print(bl,e1l)),e1l:[e3l,e1l])/*e1のe2による割り算実行、結果はリスト*/$
elx(el,x):=block([i,iM,e],iM:length(el),e:0,for i:1 thru iM do(e:e+el[i]*x^(iM-i)),e:e)/*係数リストをxの文字式へ*/$
TEJUN:""$
El:[x=(-B+sqrt(B^2-4*A*C))/(2*A),x=(-B-sqrt(B^2-4*A*C))/(2*A)];D:B^2-4*A*C;
declare(m,real);e1: x^2+2*m*x+m+6=0;a:coeff(expand(lhs(e1)),x,2);b:coeff(expand(lhs(e1)),x,1);c:coeff(expand(lhs(e1)),x,0)/*(◆修正部分2)*/;
eD:subst([A=a,B=b,C=c],D);id:eD>=0;Id:lhs(id)/4>=rhs(id)/4;id:factor(lhs(id))>=rhs(id);sid:[m>=3,-2>=m]/*(◆修正部分2)*/;
ans:fourier_elim([eD>=0] ,[m])/*(◆修正部分2)*/;
KAKUNIN:"確認"/**/$
im:-5;iM:5;istp:0.1;kknnl:[];
for i:im thru iM step istp do(if subst(m=i,eD)>=0 then kn:[i,subst(m=i,eD),"実数解"] else kn:[i,subst(m=i,eD),"虚数解"],kknnl:endcons(kn,kknnl))/**/;
print(kknnl,"[i,subst(m=i,eD),実数解]")/*確認*/$
KAITOU:[sid,ans,"解答"]/*解答*//**/$
SUJIMITI:"mを用いて作った判別式は、( )となり、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・例題3・練習12 204 x^2+2*m*x+m=0が虚数解をもつmの範囲は"/*(◆修正部分1)*/$
declare(m,real);e1: x^2+2*m*x+m=0;a:coeff(expand(lhs(e1)),x,2);b:coeff(expand(lhs(e1)),x,1);c:coeff(expand(lhs(e1)),x,0)/*(◆修正部分2)*/;
eD:subst([A=a,B=b,C=c],D);id:0>eD;Id:lhs(id)/4>rhs(id)/4;id:(lhs(id))>factor(rhs(id));sid:[1>m,m>0]/*(◆修正部分2)*/;
ans:fourier_elim([0>eD],[m])/*(◆修正部分2)*/;
◆コマンド番号205
●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の順で */;powerdisp:false /* 降べきの順にして */$
MONDAI:"・応用例題1・練習13 205 mを定数とし、x^2+2*x+m=0の解を判別すると"/*(◆修正部分1)*/$
KOUSATU:"mを用いて判別式を作り、・・・"/**/;
KANSUU:"";
ni(n):=n!/*nの階乗*/$
nCrl(n,r):=ni(n)/(ni(r)*ni(n-r))/*nCrを文字変数で表現*/$
nCr(n,r):=block([N,i],N:1,for i:1 thru r do(N:N*(n-i+1)/(i)),N:N)/*nCrの数値表現(n,rは数値)*/$
lng(n,list,sw):=block([D,i,iM,V],D:true,iM:length(list),
/**/for i:1 thru iM do(if (sw="N"and n=list[i]) or (sw="G" and list[i]>=n ) or (sw="L"and n>=list[i]) then D:false),V:D)/*[スイッチごとにTF判定]*/$
Xr(list,sw):=block([r,i,j],/*print("nHr",lA,length(lA[1]),r),*/ /**/r:length(list),
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("listi",list[i]),*/
/**//**//**/for j:1 thru list[length(lA[iM])+1] do(/*print(iM,length(lA[iM])+1 ),*/
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),
/**//**/lA:lEA,print("lA",lA,length(lA))))/*list:[[1,d],[d+1,d+j]],1つ目1~d,2つ目d+1~d+jで作成、スイッチsw、1324>>"N",1234>>"G",4321>>"L",1122>>"A",順列・組合せ*/$
load(fourier_elim)$
load ("functs")$
gcm(n1,n2):=n1*n2/lcm(n1,n2)/*n1,n2の最大公倍数*/$
quon(n1,n2):=block([qn,rn],rn:mod(n1,n2),qn:quotient(n1-rn,n2))/*n1のn2による整商*/$
exd(e1,e2,m):=block([k,kM,e11,e21,e,bL],e11:rat(e1,m),e21:rat(e2,m),e:rat(e11*e21,m),kM:hipow(e,m),
/**/print(e11),print(e21),print("----------各次数の係数に注目して") ,
/**/bL:["","...","......",".........","............",
/**/"...............","..................",".....................","........................"] /**/,
/**/for k:0 thru kM do(
/**//**/if kM>k then print(bL[k+1],coeff(e,m,(kM-k))*m^(kM-k))
/**//**//**/else print(bL[k+2],coeff(e,m,(kM-k))*moji^(kM-k))
/**//**/) /* "xの各次数の項を求めて(直前の3式から求め)" */,
/**/print("---------------------------------したがって") ,print(e),e:e)/*e1,e2の、mに着目した掛け算実行*/$
ed(e1,e2,bl,bdl):=block([hpe1,hpe2,hpe3,e1l,e2l,e3l,e4l,i],hpe1:hipow(e1,x),e1l:[],for i:0 thru hpe1 do e1l:cons(coeff(e1,x,i),e1l),print(e1l),
/**/hpe2:hipow(e2,x),e2l:[],for i:0 thru hpe2 do e2l:cons(coeff(e2,x,i),e2l),print(e2l),
/**/e20l:e2l,for i:1 thru hpe1-hpe2 do e20l:endcons(0,e20l),
/**/e3:quotient(e1,e2),hpe3:hipow(e3,x),e3l:[],for i:0 thru hpe3 do e3l:cons(coeff(e3,x,i),e3l),print(e3l),print(" "),
/**/print(bl,e3l),print(bdl),print(e2l,")",e1l),e4l:e20l*e3l[1],print(bl,e4l),print(bdl),e1l:e1l-e4l,print(bl,e1l),
/**/for i:1 thru hpe1-hpe2 do(e20l:cons(0,rest(e20l,-1)),e4l:e20l*e3l[1+i],print(bl,e4l),print(bdl),e1l:e1l-e4l,print(bl,e1l)),e1l:[e3l,e1l])/*e1のe2による割り算実行、結果はリスト*/$
elx(el,x):=block([i,iM,e],iM:length(el),e:0,for i:1 thru iM do(e:e+el[i]*x^(iM-i)),e:e)/*係数リストをxの文字式へ*/$
TEJUN:""$
El:[x=(-B+sqrt(B^2-4*A*C))/(2*A),x=(-B-sqrt(B^2-4*A*C))/(2*A)];D:B^2-4*A*C;
declare(m,real);e1: x^2+2*x+m=0;a:coeff(expand(lhs(e1)),x,2);b:coeff(expand(lhs(e1)),x,1);c:coeff(expand(lhs(e1)),x,0)/*(◆修正部分2)*/;
eD:factor(subst([A=a,B=b,C=c],D));eDp:fourier_elim([eD>0],[m]);eD0:solve(eD=0,m);eDm:fourier_elim([0>eD],[m])/**/;
ans:[[eDp,eD0,eDm],["異なる2つの実数解,重解,異なる2つの虚数解"]]/**/;
KAKUNIN:"確認"/**/$
im:-5;iM:5;istp:0.1;kknnl:[];
for i:im thru iM step istp do(if subst(m=i,eD)>0 then kn:[i,subst(m=i,eD),"2つの異なる実数解"] elseif subst(m=i,eD)=0 then kn:[i,subst(m=i,eD),"重解"] else kn:[i,subst(m=i,eD),"虚数解"],kknnl:endcons(kn,kknnl))/**/;
print(kknnl,"[i,subst(m=i,eD),2実・重・2虚]")/*確認*/$
KAITOU:[ans,"解答"]/*解答*//**/$
SUJIMITI:"mを用いて作った判別式は、( )となり、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・応用例題1・練習13 205 mを定数とし、x^2+2*x+m=0の解を判別すると"/*(◆修正部分1)*/$
El:[x=(-B+sqrt(B^2-4*A*C))/(2*A),x=(-B-sqrt(B^2-4*A*C))/(2*A)];D:B^2-4*A*C;
declare(m,real);e1: x^2+m*x+4=0;a:coeff(expand(lhs(e1)),x,2);b:coeff(expand(lhs(e1)),x,1);c:coeff(expand(lhs(e1)),x,0)/*(◆修正部分2)*/;
:
3.解と係数の関係
A. 解と係数の関係
◆コマンド番号301
●解と係数の関係
●●●●●●●●●●●●●●●●
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の順で */;powerdisp:false /* 降べきの順にして */$
MONDAI:"・例9・練習13 301 x^2+3*x-6=0の2解をap,btすると、ap+bt,ap*btは"/*(◆修正部分1)*/$
KOUSATU:"解と係数の関係により、・・・"/**/;
KANSUU:"";
ni(n):=n!/*nの階乗*/$
nCrl(n,r):=ni(n)/(ni(r)*ni(n-r))/*nCrを文字変数で表現*/$
nCr(n,r):=block([N,i],N:1,for i:1 thru r do(N:N*(n-i+1)/(i)),N:N)/*nCrの数値表現(n,rは数値)*/$
lng(n,list,sw):=block([D,i,iM,V],D:true,iM:length(list),
/**/for i:1 thru iM do(if (sw="N"and n=list[i]) or (sw="G" and list[i]>=n ) or (sw="L"and n>=list[i]) then D:false),V:D)/*[スイッチごとにTF判定]*/$
Xr(list,sw):=block([r,i,j],/*print("nHr",lA,length(lA[1]),r),*/ /**/r:length(list),
/**/while r>length(lA[1]) do(/*print(length(lA[1]),r),*/
/**//**/iM:length(lA),lEA:[],/*print(iM),*/
/**//**/for i:1 thru iM do(
/**//**//**/lL:lA[i],/*print("listi",list[i]),*/
/**//**//**/for j:1 thru list[length(lA[iM])+1] do(/*print(iM,length(lA[iM])+1 ),*/
/**//**//**//**/if lng(j,lL,sw)=true then lEA:endcons(endcons(j,lL),lEA)/*,print("lEA0",lL,lEA)*/)),
/**//**/lA:lEA,print("lA",lA,length(lA))))/*list:[[1,d],[d+1,d+j]],1つ目1~d,2つ目d+1~d+jで作成、スイッチsw、1324>>"N",1234>>"G",4321>>"L",1122>>"A",順列・組合せ*/$
load(fourier_elim)$
load ("functs")$
gcm(n1,n2):=n1*n2/lcm(n1,n2)/*n1,n2の最大公倍数*/$
quon(n1,n2):=block([qn,rn],rn:mod(n1,n2),qn:quotient(n1-rn,n2))/*n1のn2による整商*/$
exd(e1,e2,m):=block([k,kM,e11,e21,e,bL],e11:rat(e1,m),e21:rat(e2,m),e:rat(e11*e21,m),kM:hipow(e,m),
/**/print(e11),print(e21),print("----------各次数の係数に注目して") ,
/**/bL:["","...","......",".........","............",
/**/"...............","..................",".....................","........................"] /**/,
/**/for k:0 thru kM do(
/**//**/if kM>k then print(bL[k+1],coeff(e,m,(kM-k))*m^(kM-k))
/**//**//**/else print(bL[k+2],coeff(e,m,(kM-k))*moji^(kM-k))
/**//**/) /* "xの各次数の項を求めて(直前の3式から求め)" */,
/**/print("---------------------------------したがって") ,print(e),e:e)/*e1,e2の、mに着目した掛け算実行*/$
ed(e1,e2,bl,bdl):=block([hpe1,hpe2,hpe3,e1l,e2l,e3l,e4l,i],hpe1:hipow(e1,x),e1l:[],for i:0 thru hpe1 do e1l:cons(coeff(e1,x,i),e1l),print(e1l),
/**/hpe2:hipow(e2,x),e2l:[],for i:0 thru hpe2 do e2l:cons(coeff(e2,x,i),e2l),print(e2l),
/**/e20l:e2l,for i:1 thru hpe1-hpe2 do e20l:endcons(0,e20l),
/**/e3:quotient(e1,e2),hpe3:hipow(e3,x),e3l:[],for i:0 thru hpe3 do e3l:cons(coeff(e3,x,i),e3l),print(e3l),print(" "),
/**/print(bl,e3l),print(bdl),print(e2l,")",e1l),e4l:e20l*e3l[1],print(bl,e4l),print(bdl),e1l:e1l-e4l,print(bl,e1l),
/**/for i:1 thru hpe1-hpe2 do(e20l:cons(0,rest(e20l,-1)),e4l:e20l*e3l[1+i],print(bl,e4l),print(bdl),e1l:e1l-e4l,print(bl,e1l)),e1l:[e3l,e1l])/*e1のe2による割り算実行、結果はリスト*/$
elx(el,x):=block([i,iM,e],iM:length(el),e:0,for i:1 thru iM do(e:e+el[i]*x^(iM-i)),e:e)/*係数リストをxの文字式へ*/$
TEJUN:""$
El:[x=(-B+sqrt(B^2-4*A*C))/(2*A),x=(-B-sqrt(B^2-4*A*C))/(2*A)];D:B^2-4*A*C;KK:[AP+BT=-B/A,AP*BT=C/A];
e1:2*x^2+3*x-6=0;a:coeff(expand(lhs(e1)),x,2);b:coeff(expand(lhs(e1)),x,1);c:coeff(expand(lhs(e1)),x,0)/*(◆修正部分2)*/;
atb:subst([A=a,B=b,C=c],KK[1]);akb:subst([A=a,B=b,C=c],KK[2])/**/;
ans:[[atb,akb],["ap+bt,ap*bt"]]/**/;
KAKUNIN:"確認"/**/$
sx:solve(e1,x);satb:(rhs(sx[1])+rhs(sx[2]));sakb:rhs(sx[1])*rhs(sx[2]);kknnl:[ans[1],rootscontract(expand([satb,sakb])),"解と係数、解から"];
print([kknnl,"[ans[1],[satb,sakb],解と係数、解から]"])/*確認*/$
KAITOU:[ans,"解答"]/*解答*//**/$
SUJIMITI:"解と係数の関係により、a+b=( )となり、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・例9・練習13 301 3*x^2+4*x+2=0の2解をap,btすると、ap+bt,ap*btは"/*(◆修正部分1)*/$
e1:3*x^2+4*x+2=0;a:coeff(expand(lhs(e1)),x,2);b:coeff(expand(lhs(e1)),x,1);c:coeff(expand(lhs(e1)),x,0)/*(◆修正部分2)*/;
◆コマンド番号302
●解と係数の関係
●●●●●●●●●●●●●●●●
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の順で */;powerdisp:false /* 降べきの順にして */$
MONDAI:"・例題4・練習15 302 x^2-4*x+5=0の2解をap,btすると、ap^3+bt^3は"/*(◆修正部分1)*/$
KOUSATU:"解と係数の関係により、ap+bt=・・・"/**/;
KANSUU:"";
ni(n):=n!/*nの階乗*/$
nCrl(n,r):=ni(n)/(ni(r)*ni(n-r))/*nCrを文字変数で表現*/$
load(fourier_elim)$
load ("functs")$gcm(n1,n2):=n1*n2/lcm(n1,n2)/*n1,n2の最大公倍数*/$
quon(n1,n2):=block([qn,rn],rn:mod(n1,n2),qn:quotient(n1-rn,n2))/*n1のn2による整商*/$
exd(e1,e2,m):=block([k,kM,e11,e21,e,bL],e11:rat(e1,m),e21:rat(e2,m),e:rat(e11*e21,m),kM:hipow(e,m),
/**/print(e11),print(e21),print("----------各次数の係数に注目して") ,
/**/bL:["","...","......",".........","............",
/**/"...............","..................",".....................","........................"] /**/,
/**/for k:0 thru kM do(
/**//**/if kM>k then print(bL[k+1],coeff(e,m,(kM-k))*m^(kM-k))
/**//**//**/else print(bL[k+2],coeff(e,m,(kM-k))*moji^(kM-k))
/**//**/) /* "xの各次数の項を求めて(直前の3式から求め)" */,
/**/print("---------------------------------したがって") ,print(e),e:e)/*e1,e2の、mに着目した掛け算実行*/$
ed(e1,e2,bl,bdl):=block([hpe1,hpe2,hpe3,e1l,e2l,e3l,e4l,i],hpe1:hipow(e1,x),e1l:[],for i:0 thru hpe1 do e1l:cons(coeff(e1,x,i),e1l),print(e1l),
/**/hpe2:hipow(e2,x),e2l:[],for i:0 thru hpe2 do e2l:cons(coeff(e2,x,i),e2l),print(e2l),
/**/e20l:e2l,for i:1 thru hpe1-hpe2 do e20l:endcons(0,e20l),
/**/e3:quotient(e1,e2),hpe3:hipow(e3,x),e3l:[],for i:0 thru hpe3 do e3l:cons(coeff(e3,x,i),e3l),print(e3l),print(" "),
/**/print(bl,e3l),print(bdl),print(e2l,")",e1l),e4l:e20l*e3l[1],print(bl,e4l),print(bdl),e1l:e1l-e4l,print(bl,e1l),
/**/for i:1 thru hpe1-hpe2 do(e20l:cons(0,rest(e20l,-1)),e4l:e20l*e3l[1+i],print(bl,e4l),print(bdl),e1l:e1l-e4l,print(bl,e1l)),e1l:[e3l,e1l])/*e1のe2による割り算実行、結果はリスト*/$
elx(el,x):=block([i,iM,e],iM:length(el),e:0,for i:1 thru iM do(e:e+el[i]*x^(iM-i)),e:e)/*係数リストをxの文字式へ*/$
t2Kt(e3p,a,b):=block([e3,oj,ha,OJ,E3,Ha,F3,ctr,kM,PR,E4,pr,c,hb,axb,atb,se3,ans,e1,e2],
/**/e1:atb=a+b,e2:axb=a*b,e3:oj=e3p,
/**/ha:hipow(rhs(e3),a),
/**/OJ:[],E3:rhs(e3),Ha:ha,for i:Ha thru 0 step -1 do(
/**//**/F3:0,for j:i thru 0 step -1 do(F3:F3+coeff(coeff(E3,a,j),b,i-j)*a^j*b^(i-j)/*,print([i,j,F3])*/),
/**//**/OJ:endcons(F3,OJ),print(OJ)),
/**/kM:length(OJ),PR:[],
/**/for k:1 thru kM do(
/**//**/ctr:0,
/**//**/E4:oj=OJ[k],ha:hipow(rhs(E4),a),pr:E4,/*print(pr),*/
/**//**/while ha>0 and 20>ctr do(c:coeff(rhs(pr),a,ha),hb:hipow(c,b),
/**//**//**/if hb>0 then pr:lhs(pr)/axb^(hb)=expand(factor(rhs(pr))/(a*b)^(hb))
/**//**//**//**/else pr:lhs(pr)-coeff(rhs(pr),a,ha)*atb^ha=expand(rhs(pr)-coeff(rhs(pr),a,ha)*(a+b)^ha),
/**//**//**/ha:hipow(rhs(pr),a),print([pr,ha]),ctr:ctr+1),
/**//**/se3:solve(pr,lhs(E4)),print(se3),PR:endcons(se3[1],PR)),
/**/print(PR),ans:rhs(lsum(i,i,PR)))/*2文字の対称式の基本対称式変換(次数混在)e3:a^5+b^5+a^3+b^3;t2Kt(e3,a,b);atb=ap+bt,axb=ap*btのこと*/$
TEJUN:""$
El:[x=(-B+sqrt(B^2-4*A*C))/(2*A),x=(-B-sqrt(B^2-4*A*C))/(2*A)];D:B^2-4*A*C;KK:[atb=-B/A,axb=C/A];
e1:x^2-4*x+5=0;a:coeff(expand(lhs(e1)),x,2);b:coeff(expand(lhs(e1)),x,1);c:coeff(expand(lhs(e1)),x,0)/*(◆修正部分2)*/;
KK:subst([A=a,B=b,C=c],KK);
eab:ap^3+bt^3;Eab:t2Kt(eab,ap,bt)/*(◆修正部分3)*/;
print(KK)/*apはα、btはβ、atbはα+β、axbはα*βのこと*/;ans:subst(KK,Eab);
KAKUNIN:"確認"/**/$
eab;ap;bt;
sx:solve(e1,x);seab:expand(subst([ap=rhs(sx[1]),bt=rhs(sx[2])],eab));kknnl:[ans,seab,"解と係数、解から"];
print([kknnl,"[ans,seab,解と係数、解から]"])/*確認*/$
KAITOU:[ans,"解答"]/*解答*//**/$
SUJIMITI:"解と係数の関係により、a+b=( )となり、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・例題4・練習15 302 x^2+3*x-1=0の2解をap,btすると、(ap-bt)^2は"/*(◆修正部分1)*/$
KOUSATU:"解と係数の関係により、ap+bt=・・・"/**/;
e1:x^2+3*x-1=0;a:coeff(expand(lhs(e1)),x,2);b:coeff(expand(lhs(e1)),x,1);c:coeff(expand(lhs(e1)),x,0)/*(◆修正部分2)*/;
eab:(ap-bt)^2;Eab:t2Kt(expand(eab),ap,bt)/*(◆修正部分3)*/;
◆コマンド番号303
●解と係数の関係
●●●●●●●●●●●●●●●●
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の順で */;powerdisp:false /* 降べきの順にして */$
MONDAI:"・例題5・練習16 303 x^2+3*x+m=0の1つの解が他の2倍のとき、mと2つの解は"/*(◆修正部分1)*/$
KOUSATU:"解と係数の関係により、ap+bt=・・・"/**/;
KANSUU:"";
ni(n):=n!/*nの階乗*/$
nCrl(n,r):=ni(n)/(ni(r)*ni(n-r))/*nCrを文字変数で表現*/$
load(fourier_elim)$
load ("functs")$gcm(n1,n2):=n1*n2/lcm(n1,n2)/*n1,n2の最大公倍数*/$
quon(n1,n2):=block([qn,rn],rn:mod(n1,n2),qn:quotient(n1-rn,n2))/*n1のn2による整商*/$
exd(e1,e2,m):=block([k,kM,e11,e21,e,bL],e11:rat(e1,m),e21:rat(e2,m),e:rat(e11*e21,m),kM:hipow(e,m),
/**/print(e11),print(e21),print("----------各次数の係数に注目して") ,
/**/bL:["","...","......",".........","............",
/**/"...............","..................",".....................","........................"] /**/,
/**/for k:0 thru kM do(
/**//**/if kM>k then print(bL[k+1],coeff(e,m,(kM-k))*m^(kM-k))
/**//**//**/else print(bL[k+2],coeff(e,m,(kM-k))*moji^(kM-k))
/**//**/) /* "xの各次数の項を求めて(直前の3式から求め)" */,
/**/print("---------------------------------したがって") ,print(e),e:e)/*e1,e2の、mに着目した掛け算実行*/$
ed(e1,e2,bl,bdl):=block([hpe1,hpe2,hpe3,e1l,e2l,e3l,e4l,i],hpe1:hipow(e1,x),e1l:[],for i:0 thru hpe1 do e1l:cons(coeff(e1,x,i),e1l),print(e1l),
/**/hpe2:hipow(e2,x),e2l:[],for i:0 thru hpe2 do e2l:cons(coeff(e2,x,i),e2l),print(e2l),
/**/e20l:e2l,for i:1 thru hpe1-hpe2 do e20l:endcons(0,e20l),
/**/e3:quotient(e1,e2),hpe3:hipow(e3,x),e3l:[],for i:0 thru hpe3 do e3l:cons(coeff(e3,x,i),e3l),print(e3l),print(" "),
/**/print(bl,e3l),print(bdl),print(e2l,")",e1l),e4l:e20l*e3l[1],print(bl,e4l),print(bdl),e1l:e1l-e4l,print(bl,e1l),
/**/for i:1 thru hpe1-hpe2 do(e20l:cons(0,rest(e20l,-1)),e4l:e20l*e3l[1+i],print(bl,e4l),print(bdl),e1l:e1l-e4l,print(bl,e1l)),e1l:[e3l,e1l])/*e1のe2による割り算実行、結果はリスト*/$
elx(el,x):=block([i,iM,e],iM:length(el),e:0,for i:1 thru iM do(e:e+el[i]*x^(iM-i)),e:e)/*係数リストをxの文字式へ*/$
t2Kt(e3p,a,b):=block([e3,oj,ha,OJ,E3,Ha,F3,ctr,kM,PR,E4,pr,c,hb,axb,atb,se3,ans,e1,e2],
/**/e1:atb=a+b,e2:axb=a*b,e3:oj=e3p,
/**/ha:hipow(rhs(e3),a),
/**/OJ:[],E3:rhs(e3),Ha:ha,for i:Ha thru 0 step -1 do(
/**//**/F3:0,for j:i thru 0 step -1 do(F3:F3+coeff(coeff(E3,a,j),b,i-j)*a^j*b^(i-j),print([i,j,F3])),
/**//**/OJ:endcons(F3,OJ),print(OJ)),
/**/kM:length(OJ),PR:[],
/**/for k:1 thru kM do(
/**//**/ctr:0,
/**//**/E4:oj=OJ[k],ha:hipow(rhs(E4),a),pr:E4,print(pr),
/**//**/while ha>0 and 20>ctr do(c:coeff(rhs(pr),a,ha),hb:hipow(c,b),
/**//**//**/if hb>0 then pr:lhs(pr)/axb^(hb)=expand(factor(rhs(pr))/(a*b)^(hb))
/**//**//**//**/else pr:lhs(pr)-coeff(rhs(pr),a,ha)*atb^ha=expand(rhs(pr)-coeff(rhs(pr),a,ha)*(a+b)^ha),
/**//**//**/ha:hipow(rhs(pr),a),print([pr,ha]),ctr:ctr+1),
/**//**/se3:solve(pr,lhs(E4)),print(se3),PR:endcons(se3[1],PR)),
/**/print(PR),ans:rhs(lsum(i,i,PR)))/*2文字の対称式の基本対称式変換(次数混在)e3:a^5+b^5+a^3+b^3;t2Kt(e3,a,b);atb=ap+bt,axb=ap*btのこと*/$
TEJUN:""$
El:[x=(-B+sqrt(B^2-4*A*C))/(2*A),x=(-B-sqrt(B^2-4*A*C))/(2*A)];D:B^2-4*A*C;KK:[atb=-B/A,axb=C/A];
e1:x^2+3*x+m=0;a:coeff(expand(lhs(e1)),x,2);b:coeff(expand(lhs(e1)),x,1);c:coeff(expand(lhs(e1)),x,0)/*(◆修正部分2)*/;
KK:subst([A=a,B=b,C=c],KK);
jk1:ap=2*bt;jk2:subst(atb=ap+bt,KK[1])/*(◆修正部分3)*/;
sab:solve([jk1,jk2],[ap,bt]);jk3:subst(axb=ap*bt,KK[2]);sm:subst(sab,solve(subst([jk1,jk2],jk3),m));
ans:[sm,sab];
KAKUNIN:"確認"/**/$
se1:subst(sm,e1);
sx:solve(se1,x);kknnl:[sm,sab,sx,["m,2解,m代入・計算による解"]];
print([kknnl,[sm,sab,sx,"[m,2解,m代入・計算による解]"]])/*確認*/$
KAITOU:[ans,"解答"]/*解答*//**/$
SUJIMITI:"解と係数の関係により、a+b=( )となり、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・例題5・練習16 303 x^2+5*x+m=0の1つの解の2倍が他の解の3倍のとき、mと2つの解は"/*(◆修正部分1)*/$
KOUSATU:"解と係数の関係により、ap+bt=・・・"/**/;
e1:x^2+5*x+m=0;a:coeff(expand(lhs(e1)),x,2);b:coeff(expand(lhs(e1)),x,1);c:coeff(expand(lhs(e1)),x,0)/*(◆修正部分2)*/;
jk1:ap*2=3*bt;jk2:subst(atb=ap+bt,KK[1])/*(◆修正部分3)*/;
B. 2次式の因数分解
◆コマンド番号304
●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の順で */;powerdisp:false /* 降べきの順にして */$
MONDAI:"・例題6・練習17 304 2*x^2-2*x-1を複素数の範囲で因数分解すると"/*(◆修正部分1)*/$
KOUSATU:"=0とした方程式の解から、因数分解を考えると、・・・"/**/;
KANSUU:"";
ni(n):=n!/*nの階乗*/$
nCrl(n,r):=ni(n)/(ni(r)*ni(n-r))/*nCrを文字変数で表現*/$
load(fourier_elim)$
load ("functs")$gcm(n1,n2):=n1*n2/lcm(n1,n2)/*n1,n2の最大公倍数*/$
quon(n1,n2):=block([qn,rn],rn:mod(n1,n2),qn:quotient(n1-rn,n2))/*n1のn2による整商*/$
exd(e1,e2,m):=block([k,kM,e11,e21,e,bL],e11:rat(e1,m),e21:rat(e2,m),e:rat(e11*e21,m),kM:hipow(e,m),
/**/print(e11),print(e21),print("----------各次数の係数に注目して") ,
/**/bL:["","...","......",".........","............",
/**/"...............","..................",".....................","........................"] /**/,
/**/for k:0 thru kM do(
/**//**/if kM>k then print(bL[k+1],coeff(e,m,(kM-k))*m^(kM-k))
/**//**//**/else print(bL[k+2],coeff(e,m,(kM-k))*moji^(kM-k))
/**//**/) /* "xの各次数の項を求めて(直前の3式から求め)" */,
/**/print("---------------------------------したがって") ,print(e),e:e)/*e1,e2の、mに着目した掛け算実行*/$
ed(e1,e2,bl,bdl):=block([hpe1,hpe2,hpe3,e1l,e2l,e3l,e4l,i],hpe1:hipow(e1,x),e1l:[],for i:0 thru hpe1 do e1l:cons(coeff(e1,x,i),e1l),print(e1l),
/**/hpe2:hipow(e2,x),e2l:[],for i:0 thru hpe2 do e2l:cons(coeff(e2,x,i),e2l),print(e2l),
/**/e20l:e2l,for i:1 thru hpe1-hpe2 do e20l:endcons(0,e20l),
/**/e3:quotient(e1,e2),hpe3:hipow(e3,x),e3l:[],for i:0 thru hpe3 do e3l:cons(coeff(e3,x,i),e3l),print(e3l),print(" "),
/**/print(bl,e3l),print(bdl),print(e2l,")",e1l),e4l:e20l*e3l[1],print(bl,e4l),print(bdl),e1l:e1l-e4l,print(bl,e1l),
/**/for i:1 thru hpe1-hpe2 do(e20l:cons(0,rest(e20l,-1)),e4l:e20l*e3l[1+i],print(bl,e4l),print(bdl),e1l:e1l-e4l,print(bl,e1l)),e1l:[e3l,e1l])/*e1のe2による割り算実行、結果はリスト*/$
elx(el,x):=block([i,iM,e],iM:length(el),e:0,for i:1 thru iM do(e:e+el[i]*x^(iM-i)),e:e)/*係数リストをxの文字式へ*/$
t2Kt(e3p,a,b):=block([e3,oj,ha,OJ,E3,Ha,F3,ctr,kM,PR,E4,pr,c,hb,axb,atb,se3,ans,e1,e2],
/**/e1:atb=a+b,e2:axb=a*b,e3:oj=e3p,
/**/ha:hipow(rhs(e3),a),
/**/OJ:[],E3:rhs(e3),Ha:ha,for i:Ha thru 0 step -1 do(
/**//**/F3:0,for j:i thru 0 step -1 do(F3:F3+coeff(coeff(E3,a,j),b,i-j)*a^j*b^(i-j),print([i,j,F3])),
/**//**/OJ:endcons(F3,OJ),print(OJ)),
/**/kM:length(OJ),PR:[],
/**/for k:1 thru kM do(
/**//**/ctr:0,
/**//**/E4:oj=OJ[k],ha:hipow(rhs(E4),a),pr:E4,print(pr),
/**//**/while ha>0 and 20>ctr do(c:coeff(rhs(pr),a,ha),hb:hipow(c,b),
/**//**//**/if hb>0 then pr:lhs(pr)/axb^(hb)=expand(factor(rhs(pr))/(a*b)^(hb))
/**//**//**//**/else pr:lhs(pr)-coeff(rhs(pr),a,ha)*atb^ha=expand(rhs(pr)-coeff(rhs(pr),a,ha)*(a+b)^ha),
/**//**//**/ha:hipow(rhs(pr),a),print([pr,ha]),ctr:ctr+1),
/**//**/se3:solve(pr,lhs(E4)),print(se3),PR:endcons(se3[1],PR)),
/**/print(PR),ans:rhs(lsum(i,i,PR)))/*2文字の対称式の基本対称式変換(次数混在)e3:a^5+b^5+a^3+b^3;t2Kt(e3,a,b);atb=ap+bt,axb=ap*btのこと*/$
TEJUN:""$
El:[x=(-B+sqrt(B^2-4*A*C))/(2*A),x=(-B-sqrt(B^2-4*A*C))/(2*A)];D:B^2-4*A*C;KK:[atb=-B/A,axb=C/A];
e:2*x^2-2*x-1;e1:e=0;a:coeff(expand(lhs(e1)),x,2);b:coeff(expand(lhs(e1)),x,1);c:coeff(expand(lhs(e1)),x,0)/*(◆修正部分2)*/;
El1:factor(subst([A=a,B=b,C=c],El));
se2:a*(x-rhs(El1[1]))*(x-rhs(El1[2]))/**/;
ans:[se2];
KAKUNIN:"確認"/**/$
kse2:expand(se2);
if rat(e)=rat(kse2) then kknnl:[ans,e1,kse2,"[ans,問題式,ansの展開式]"] else kknnl:"未確認"$
print(kknnl)/*確認*/$
KAITOU:[ans,"解答"]/*解答*//**/$
SUJIMITI:"=0とした方程式の解は、( )となり、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・例題6・練習17 304 2*x^2+4*x+3を複素数の範囲で因数分解すると"/*(◆修正部分1)*/$
e:2*x^2+4*x+3;e1:e=0;a:coeff(expand(lhs(e1)),x,2);b:coeff(expand(lhs(e1)),x,1);c:coeff(expand(lhs(e1)),x,0)/*(◆修正部分2)*/;
C. 2次方程式の決定
◆コマンド番号305
●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の順で */;powerdisp:false /* 降べきの順にして */$
MONDAI:"・例10・練習18 305 2数3+%i,3-%iを解とする2次方程式は"/*(◆修正部分1)*/$
KOUSATU:"解と係数の関係から、方程式の係数を考えると、・・・"/**/;
KANSUU:"";
ni(n):=n!/*nの階乗*/$
nCrl(n,r):=ni(n)/(ni(r)*ni(n-r))/*nCrを文字変数で表現*/$
load(fourier_elim)$
load ("functs")$gcm(n1,n2):=n1*n2/lcm(n1,n2)/*n1,n2の最大公倍数*/$
quon(n1,n2):=block([qn,rn],rn:mod(n1,n2),qn:quotient(n1-rn,n2))/*n1のn2による整商*/$
exd(e1,e2,m):=block([k,kM,e11,e21,e,bL],e11:rat(e1,m),e21:rat(e2,m),e:rat(e11*e21,m),kM:hipow(e,m),
/**/print(e11),print(e21),print("----------各次数の係数に注目して") ,
/**/bL:["","...","......",".........","............",
/**/"...............","..................",".....................","........................"] /**/,
/**/for k:0 thru kM do(
/**//**/if kM>k then print(bL[k+1],coeff(e,m,(kM-k))*m^(kM-k))
/**//**//**/else print(bL[k+2],coeff(e,m,(kM-k))*moji^(kM-k))
/**//**/) /* "xの各次数の項を求めて(直前の3式から求め)" */,
/**/print("---------------------------------したがって") ,print(e),e:e)/*e1,e2の、mに着目した掛け算実行*/$
ed(e1,e2,bl,bdl):=block([hpe1,hpe2,hpe3,e1l,e2l,e3l,e4l,i],hpe1:hipow(e1,x),e1l:[],for i:0 thru hpe1 do e1l:cons(coeff(e1,x,i),e1l),print(e1l),
/**/hpe2:hipow(e2,x),e2l:[],for i:0 thru hpe2 do e2l:cons(coeff(e2,x,i),e2l),print(e2l),
/**/e20l:e2l,for i:1 thru hpe1-hpe2 do e20l:endcons(0,e20l),
/**/e3:quotient(e1,e2),hpe3:hipow(e3,x),e3l:[],for i:0 thru hpe3 do e3l:cons(coeff(e3,x,i),e3l),print(e3l),print(" "),
/**/print(bl,e3l),print(bdl),print(e2l,")",e1l),e4l:e20l*e3l[1],print(bl,e4l),print(bdl),e1l:e1l-e4l,print(bl,e1l),
/**/for i:1 thru hpe1-hpe2 do(e20l:cons(0,rest(e20l,-1)),e4l:e20l*e3l[1+i],print(bl,e4l),print(bdl),e1l:e1l-e4l,print(bl,e1l)),e1l:[e3l,e1l])/*e1のe2による割り算実行、結果はリスト*/$
elx(el,x):=block([i,iM,e],iM:length(el),e:0,for i:1 thru iM do(e:e+el[i]*x^(iM-i)),e:e)/*係数リストをxの文字式へ*/$
t2Kt(e3p,a,b):=block([e3,oj,ha,OJ,E3,Ha,F3,ctr,kM,PR,E4,pr,c,hb,axb,atb,se3,ans,e1,e2],
/**/e1:atb=a+b,e2:axb=a*b,e3:oj=e3p,
/**/ha:hipow(rhs(e3),a),
/**/OJ:[],E3:rhs(e3),Ha:ha,for i:Ha thru 0 step -1 do(
/**//**/F3:0,for j:i thru 0 step -1 do(F3:F3+coeff(coeff(E3,a,j),b,i-j)*a^j*b^(i-j),print([i,j,F3])),
/**//**/OJ:endcons(F3,OJ),print(OJ)),
/**/kM:length(OJ),PR:[],
/**/for k:1 thru kM do(
/**//**/ctr:0,
/**//**/E4:oj=OJ[k],ha:hipow(rhs(E4),a),pr:E4,print(pr),
/**//**/while ha>0 and 20>ctr do(c:coeff(rhs(pr),a,ha),hb:hipow(c,b),
/**//**//**/if hb>0 then pr:lhs(pr)/axb^(hb)=expand(factor(rhs(pr))/(a*b)^(hb))
/**//**//**//**/else pr:lhs(pr)-coeff(rhs(pr),a,ha)*atb^ha=expand(rhs(pr)-coeff(rhs(pr),a,ha)*(a+b)^ha),
/**//**//**/ha:hipow(rhs(pr),a),print([pr,ha]),ctr:ctr+1),
/**//**/se3:solve(pr,lhs(E4)),print(se3),PR:endcons(se3[1],PR)),
/**/print(PR),ans:rhs(lsum(i,i,PR)))/*2文字の対称式の基本対称式変換(次数混在)e3:a^5+b^5+a^3+b^3;t2Kt(e3,a,b);atb=ap+bt,axb=ap*btのこと*/$
TEJUN:""$
El:[x=(-B+sqrt(B^2-4*A*C))/(2*A),x=(-B-sqrt(B^2-4*A*C))/(2*A)];D:B^2-4*A*C;CKl:[atb=-B/A,axb=C/A];
K2Cl:[a=1,b=-(AP+BT),c=AP*BT];E:a*x^2+b*x+c;
ap:3-%i;bt:3+%i;e:expand(subst(subst([AP=ap,BT=bt],K2Cl),E));eq:e=0/*(◆修正部分2)*/;
ansl:[eq];
KAKUNIN:"確認"/**/$
ksxl:solve(eq,x);sxl:[x=ap,x=bt];
if setify(sxl)=setify(ksxl) then kknnl:[ansl,sxl,ksxl,"[ans,問題での解,解での解]"] else kknnl:"未確認"$
print(kknnl)/*確認*/$
KAITOU:[ansl,"解答"]/*解答*//**/$
SUJIMITI:"解と係数の関係から、方程式の係数bは、( )となり、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・例10・練習18 305 2数2+sqrt(3),2-sqrt(3)を解とする2次方程式は"/*(◆修正部分1)*/$
ap:2+sqrt(3);bt:2-sqrt(3);e:expand(subst(subst([AP=ap,BT=bt],K2Cl),E));eq:e=0/*(◆修正部分2)*/;
◆コマンド番号306
●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の順で */;powerdisp:false /* 降べきの順にして */$
MONDAI:"・例1・練習1 306 2次方程式x^2+2*m*x+m+2=0が異なる2つの正の解をもつmの値の範囲は"/*(◆修正部分1)*/$
KOUSATU:"解と係数の関係から、係数の条件を考えると、・・・"/**/;
KANSUU:"";
ni(n):=n!/*nの階乗*/$
nCrl(n,r):=ni(n)/(ni(r)*ni(n-r))/*nCrを文字変数で表現*/$
load(fourier_elim)$
load ("functs")$gcm(n1,n2):=n1*n2/lcm(n1,n2)/*n1,n2の最大公倍数*/$
quon(n1,n2):=block([qn,rn],rn:mod(n1,n2),qn:quotient(n1-rn,n2))/*n1のn2による整商*/$
exd(e1,e2,m):=block([k,kM,e11,e21,e,bL],e11:rat(e1,m),e21:rat(e2,m),e:rat(e11*e21,m),kM:hipow(e,m),
/**/print(e11),print(e21),print("----------各次数の係数に注目して") ,
/**/bL:["","...","......",".........","............",
/**/"...............","..................",".....................","........................"] /**/,
/**/for k:0 thru kM do(
/**//**/if kM>k then print(bL[k+1],coeff(e,m,(kM-k))*m^(kM-k))
/**//**//**/else print(bL[k+2],coeff(e,m,(kM-k))*moji^(kM-k))
/**//**/) /* "xの各次数の項を求めて(直前の3式から求め)" */,
/**/print("---------------------------------したがって") ,print(e),e:e)/*e1,e2の、mに着目した掛け算実行*/$
ed(e1,e2,bl,bdl):=block([hpe1,hpe2,hpe3,e1l,e2l,e3l,e4l,i],hpe1:hipow(e1,x),e1l:[],for i:0 thru hpe1 do e1l:cons(coeff(e1,x,i),e1l),print(e1l),
/**/hpe2:hipow(e2,x),e2l:[],for i:0 thru hpe2 do e2l:cons(coeff(e2,x,i),e2l),print(e2l),
/**/e20l:e2l,for i:1 thru hpe1-hpe2 do e20l:endcons(0,e20l),
/**/e3:quotient(e1,e2),hpe3:hipow(e3,x),e3l:[],for i:0 thru hpe3 do e3l:cons(coeff(e3,x,i),e3l),print(e3l),print(" "),
/**/print(bl,e3l),print(bdl),print(e2l,")",e1l),e4l:e20l*e3l[1],print(bl,e4l),print(bdl),e1l:e1l-e4l,print(bl,e1l),
/**/for i:1 thru hpe1-hpe2 do(e20l:cons(0,rest(e20l,-1)),e4l:e20l*e3l[1+i],print(bl,e4l),print(bdl),e1l:e1l-e4l,print(bl,e1l)),e1l:[e3l,e1l])/*e1のe2による割り算実行、結果はリスト*/$
elx(el,x):=block([i,iM,e],iM:length(el),e:0,for i:1 thru iM do(e:e+el[i]*x^(iM-i)),e:e)/*係数リストをxの文字式へ*/$
t2Kt(e3p,a,b):=block([e3,oj,ha,OJ,E3,Ha,F3,ctr,kM,PR,E4,pr,c,hb,axb,atb,se3,ans,e1,e2],
/**/e1:atb=a+b,e2:axb=a*b,e3:oj=e3p,
/**/ha:hipow(rhs(e3),a),
/**/OJ:[],E3:rhs(e3),Ha:ha,for i:Ha thru 0 step -1 do(
/**//**/F3:0,for j:i thru 0 step -1 do(F3:F3+coeff(coeff(E3,a,j),b,i-j)*a^j*b^(i-j),print([i,j,F3])),
/**//**/OJ:endcons(F3,OJ),print(OJ)),
/**/kM:length(OJ),PR:[],
/**/for k:1 thru kM do(
/**//**/ctr:0,
/**//**/E4:oj=OJ[k],ha:hipow(rhs(E4),a),pr:E4,print(pr),
/**//**/while ha>0 and 20>ctr do(c:coeff(rhs(pr),a,ha),hb:hipow(c,b),
/**//**//**/if hb>0 then pr:lhs(pr)/axb^(hb)=expand(factor(rhs(pr))/(a*b)^(hb))
/**//**//**//**/else pr:lhs(pr)-coeff(rhs(pr),a,ha)*atb^ha=expand(rhs(pr)-coeff(rhs(pr),a,ha)*(a+b)^ha),
/**//**//**/ha:hipow(rhs(pr),a),print([pr,ha]),ctr:ctr+1),
/**//**/se3:solve(pr,lhs(E4)),print(se3),PR:endcons(se3[1],PR)),
/**/print(PR),ans:rhs(lsum(i,i,PR)))/*2文字の対称式の基本対称式変換(次数混在)e3:a^5+b^5+a^3+b^3;t2Kt(e3,a,b);atb=ap+bt,axb=ap*btのこと*/$
TEJUN:""$
El:[x=(-B+sqrt(B^2-4*A*C))/(2*A),x=(-B-sqrt(B^2-4*A*C))/(2*A)];D:B^2-4*A*C;KCl:[atb=-B/A,axb=C/A];
K2Cl:[a=1,b=-(AP+BT),c=AP*BT];E:a*x^2+b*x+c;
eq:x^2+2*m*x+m+2=0;a:coeff(lhs(eq),x,2);b:coeff(lhs(eq),x,1);c:coeff(lhs(eq),x,0)/*(◆修正部分2)*/;
jk1:factor(subst([A=a,B=b,C=c],D))>0;jk2:subst([A=a,B=b,C=c],rhs(KCl[1]))>0;jk3:subst([A=a,B=b,C=c],rhs(KCl[2]))>0/*(◆修正部分2)*/;
ansl:fourier_elim([jk1,jk2,jk3],[m]);
KAKUNIN:"確認"/**/$
kknnl:[];im:-3;iM:3;istep:0.1;
for i:im thru iM step istep do(kknnl:endcons([i,float(solve(subst([m=i],eq),x)),if subst([m=i],ansl[1]) and subst([m=i],ansl[2]) then "成立" else "不成立","[m,[ap,bt]]"],kknnl));
print(kknnl)/*確認*/$
KAITOU:[ansl,"解答"]/*解答*//**/$
SUJIMITI:"解と係数の関係から、係数bの条件は、( )となり、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・例1・練習1 306 2次方程式x^2+2*(m-3)*x+4*m=0が異なる2つの正の解をもつmの値の範囲は"/*(◆修正部分1)*/$
eq:x^2+2*(m-3)*x+4*m=0;a:coeff(lhs(eq),x,2);b:coeff(lhs(eq),x,1);c:coeff(lhs(eq),x,0)/*(◆修正部分2)*/;
:
201.補充問題
◆コマンド番号20101
●複素数の計算
●●●●●●●●●●●●●●●●
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の順で */;powerdisp:false /* 降べきの順にして */$
MONDAI:"・補充1 20101 ((-1+sqrt(3)*%i)/2)^2は"/*(◆修正部分1)*/$
KOUSATU:"(%i)^2=-1として、代数計算すると、・・・"/*(◆修正部分1)*/;
KANSUU:"";
ni(n):=n!/*nの階乗*/$
nCrl(n,r):=ni(n)/(ni(r)*ni(n-r))/*nCrを文字変数で表現*/$
load(fourier_elim)$
load ("functs")$gcm(n1,n2):=n1*n2/lcm(n1,n2)/*n1,n2の最大公倍数*/$
quon(n1,n2):=block([qn,rn],rn:mod(n1,n2),qn:quotient(n1-rn,n2))/*n1のn2による整商*/$
exd(e1,e2,m):=block([k,kM,e11,e21,e,bL],e11:rat(e1,m),e21:rat(e2,m),e:rat(e11*e21,m),kM:hipow(e,m),
/**/print(e11),print(e21),print("----------各次数の係数に注目して") ,
/**/bL:["","...","......",".........","............",
/**/"...............","..................",".....................","........................"] /**/,
/**/for k:0 thru kM do(
/**//**/if kM>k then print(bL[k+1],coeff(e,m,(kM-k))*m^(kM-k))
/**//**//**/else print(bL[k+2],coeff(e,m,(kM-k))*moji^(kM-k))
/**//**/) /* "xの各次数の項を求めて(直前の3式から求め)" */,
/**/print("---------------------------------したがって") ,print(e),e:e)/*e1,e2の、mに着目した掛け算実行*/$
ed(e1,e2,bl,bdl):=block([hpe1,hpe2,hpe3,e1l,e2l,e3l,e4l,i],hpe1:hipow(e1,x),e1l:[],for i:0 thru hpe1 do e1l:cons(coeff(e1,x,i),e1l),print(e1l),
/**/hpe2:hipow(e2,x),e2l:[],for i:0 thru hpe2 do e2l:cons(coeff(e2,x,i),e2l),print(e2l),
/**/e20l:e2l,for i:1 thru hpe1-hpe2 do e20l:endcons(0,e20l),
/**/e3:quotient(e1,e2),hpe3:hipow(e3,x),e3l:[],for i:0 thru hpe3 do e3l:cons(coeff(e3,x,i),e3l),print(e3l),print(" "),
/**/print(bl,e3l),print(bdl),print(e2l,")",e1l),e4l:e20l*e3l[1],print(bl,e4l),print(bdl),e1l:e1l-e4l,print(bl,e1l),
/**/for i:1 thru hpe1-hpe2 do(e20l:cons(0,rest(e20l,-1)),e4l:e20l*e3l[1+i],print(bl,e4l),print(bdl),e1l:e1l-e4l,print(bl,e1l)),e1l:[e3l,e1l])/*e1のe2による割り算実行、結果はリスト*/$
elx(el,x):=block([i,iM,e],iM:length(el),e:0,for i:1 thru iM do(e:e+el[i]*x^(iM-i)),e:e)/*係数リストをxの文字式へ*/$
t2Kt(e3p,a,b):=block([e3,oj,ha,OJ,E3,Ha,F3,ctr,kM,PR,E4,pr,c,hb,axb,atb,se3,ans,e1,e2],
/**/e1:atb=a+b,e2:axb=a*b,e3:oj=e3p,
/**/ha:hipow(rhs(e3),a),
/**/OJ:[],E3:rhs(e3),Ha:ha,for i:Ha thru 0 step -1 do(
/**//**/F3:0,for j:i thru 0 step -1 do(F3:F3+coeff(coeff(E3,a,j),b,i-j)*a^j*b^(i-j),print([i,j,F3])),
/**//**/OJ:endcons(F3,OJ),print(OJ)),
/**/kM:length(OJ),PR:[],
/**/for k:1 thru kM do(
/**//**/ctr:0,
/**//**/E4:oj=OJ[k],ha:hipow(rhs(E4),a),pr:E4,print(pr),
/**//**/while ha>0 and 20>ctr do(c:coeff(rhs(pr),a,ha),hb:hipow(c,b),
/**//**//**/if hb>0 then pr:lhs(pr)/axb^(hb)=expand(factor(rhs(pr))/(a*b)^(hb))
/**//**//**//**/else pr:lhs(pr)-coeff(rhs(pr),a,ha)*atb^ha=expand(rhs(pr)-coeff(rhs(pr),a,ha)*(a+b)^ha),
/**//**//**/ha:hipow(rhs(pr),a),print([pr,ha]),ctr:ctr+1),
/**//**/se3:solve(pr,lhs(E4)),print(se3),PR:endcons(se3[1],PR)),
/**/print(PR),ans:rhs(lsum(i,i,PR)))/*2文字の対称式の基本対称式変換(次数混在)e3:a^5+b^5+a^3+b^3;t2Kt(e3,a,b);atb=ap+bt,axb=ap*btのこと*/$
TEJUN:""$
El:[x=(-B+sqrt(B^2-4*A*C))/(2*A),x=(-B-sqrt(B^2-4*A*C))/(2*A)];D:B^2-4*A*C;KCl:[atb=-B/A,axb=C/A];
K2Cl:[a=1,b=-(AP+BT),c=AP*BT];E:a*x^2+b*x+c;
e:((-1+sqrt(3)*%i)/2)^2/*(◆修正部分2)*/;
e1:expand(e);ansl:[e1]/*(◆修正部分2)*/;
KAKUNIN:"確認"/**/$
rp:realpart(e);ip:imagpart(e);ev:ansl[1]-rp-ip*%i;
kknnl:[ansl,rp+ip*%i,if ev=0 then "成立" else "不成立","[ansl,rp*ip*%i,成立・不成立]"];
print(kknnl)/*確認*/$
KAITOU:[ansl,"解答"]/*解答*//**/$
SUJIMITI:"(%i)^2=-1として、代数計算すると、(%i)^3は( )となり、・・・"/*(◆修正部分3)*/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・補充1 20101 %i+1/%iは"/*(◆修正部分1)*/$
KOUSATU:"1/(%i)は、分母の有理化をして、・・・"/*(◆修正部分1)*/$
e:%i+1/%i/*(◆修正部分2)*/;
e1:rat(expand(e),algebraic:true);ansl:[e1]/*(◆修正部分2)*/;
SUJIMITI:"1/(%i)は、分母の有理化をして、( )として、、・・・"/*(◆修正部分3)*/;
◆コマンド番号20102
●解と係数の関係
●●●●●●●●●●●●●●●●
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の順で */;powerdisp:false /* 降べきの順にして */$
MONDAI:"・補充2 20102 和と積がともに3である2数は"/*(◆修正部分1)*/$
KOUSATU:"ap+bt=3,ap*bt=3として、2次方程式を作り、・・・"/**/;
KANSUU:"";
ni(n):=n!/*nの階乗*/$
nCrl(n,r):=ni(n)/(ni(r)*ni(n-r))/*nCrを文字変数で表現*/$
load(fourier_elim)$
load ("functs")$gcm(n1,n2):=n1*n2/lcm(n1,n2)/*n1,n2の最大公倍数*/$
quon(n1,n2):=block([qn,rn],rn:mod(n1,n2),qn:quotient(n1-rn,n2))/*n1のn2による整商*/$
exd(e1,e2,m):=block([k,kM,e11,e21,e,bL],e11:rat(e1,m),e21:rat(e2,m),e:rat(e11*e21,m),kM:hipow(e,m),
/**/print(e11),print(e21),print("----------各次数の係数に注目して") ,
/**/bL:["","...","......",".........","............",
/**/"...............","..................",".....................","........................"] /**/,
/**/for k:0 thru kM do(
/**//**/if kM>k then print(bL[k+1],coeff(e,m,(kM-k))*m^(kM-k))
/**//**//**/else print(bL[k+2],coeff(e,m,(kM-k))*moji^(kM-k))
/**//**/) /* "xの各次数の項を求めて(直前の3式から求め)" */,
/**/print("---------------------------------したがって") ,print(e),e:e)/*e1,e2の、mに着目した掛け算実行*/$
ed(e1,e2,bl,bdl):=block([hpe1,hpe2,hpe3,e1l,e2l,e3l,e4l,i],hpe1:hipow(e1,x),e1l:[],for i:0 thru hpe1 do e1l:cons(coeff(e1,x,i),e1l),print(e1l),
/**/hpe2:hipow(e2,x),e2l:[],for i:0 thru hpe2 do e2l:cons(coeff(e2,x,i),e2l),print(e2l),
/**/e20l:e2l,for i:1 thru hpe1-hpe2 do e20l:endcons(0,e20l),
/**/e3:quotient(e1,e2),hpe3:hipow(e3,x),e3l:[],for i:0 thru hpe3 do e3l:cons(coeff(e3,x,i),e3l),print(e3l),print(" "),
/**/print(bl,e3l),print(bdl),print(e2l,")",e1l),e4l:e20l*e3l[1],print(bl,e4l),print(bdl),e1l:e1l-e4l,print(bl,e1l),
/**/for i:1 thru hpe1-hpe2 do(e20l:cons(0,rest(e20l,-1)),e4l:e20l*e3l[1+i],print(bl,e4l),print(bdl),e1l:e1l-e4l,print(bl,e1l)),e1l:[e3l,e1l])/*e1のe2による割り算実行、結果はリスト*/$
elx(el,x):=block([i,iM,e],iM:length(el),e:0,for i:1 thru iM do(e:e+el[i]*x^(iM-i)),e:e)/*係数リストをxの文字式へ*/$
t2Kt(e3p,a,b):=block([e3,oj,ha,OJ,E3,Ha,F3,ctr,kM,PR,E4,pr,c,hb,axb,atb,se3,ans,e1,e2],
/**/e1:atb=a+b,e2:axb=a*b,e3:oj=e3p,
/**/ha:hipow(rhs(e3),a),
/**/OJ:[],E3:rhs(e3),Ha:ha,for i:Ha thru 0 step -1 do(
/**//**/F3:0,for j:i thru 0 step -1 do(F3:F3+coeff(coeff(E3,a,j),b,i-j)*a^j*b^(i-j),print([i,j,F3])),
/**//**/OJ:endcons(F3,OJ),print(OJ)),
/**/kM:length(OJ),PR:[],
/**/for k:1 thru kM do(
/**//**/ctr:0,
/**//**/E4:oj=OJ[k],ha:hipow(rhs(E4),a),pr:E4,print(pr),
/**//**/while ha>0 and 20>ctr do(c:coeff(rhs(pr),a,ha),hb:hipow(c,b),
/**//**//**/if hb>0 then pr:lhs(pr)/axb^(hb)=expand(factor(rhs(pr))/(a*b)^(hb))
/**//**//**//**/else pr:lhs(pr)-coeff(rhs(pr),a,ha)*atb^ha=expand(rhs(pr)-coeff(rhs(pr),a,ha)*(a+b)^ha),
/**//**//**/ha:hipow(rhs(pr),a),print([pr,ha]),ctr:ctr+1),
/**//**/se3:solve(pr,lhs(E4)),print(se3),PR:endcons(se3[1],PR)),
/**/print(PR),ans:rhs(lsum(i,i,PR)))/*2文字の対称式の基本対称式変換(次数混在)e3:a^5+b^5+a^3+b^3;t2Kt(e3,a,b);atb=ap+bt,axb=ap*btのこと*/$
TEJUN:""$
El:[x=(-B+sqrt(B^2-4*A*C))/(2*A),x=(-B-sqrt(B^2-4*A*C))/(2*A)];D:B^2-4*A*C;KCl:[atb=-B/A,axb=C/A];
K2Cl:[a=1,b=-(AtB),c=AxB];E:a*x^2+b*x+c;
atb:3;axb:3;e:subst(subst([AtB=atb,AxB=axb],K2Cl),E)/*(◆修正部分2)*/;
sabl:solve(e=0,x);ansl:sabl/**/;
KAKUNIN:"確認"/**/$
AtB:expand(rhs(ansl[1])+rhs(ansl[2]));AxB:expand(rhs(ansl[1])*rhs(ansl[2]));
kknnl:[ansl,AtB,AxB,if atb=AtB and axb=AxB then "成立" else "不成立","[ansl,AtB,AxB,成立・不成立]"];
print(kknnl)/*確認*/$
KAITOU:[ansl,"解答"]/*解答*//**/$
SUJIMITI:"ap+bt=3,ap*bt=3として、2次方程式を作ると、( )となり、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・補充2 20102 和と積がともに-5である2数は"/*(◆修正部分1)*/$
atb:-5;axb:-5;e:subst(subst([AtB=atb,AxB=axb],K2Cl),E)/*(◆修正部分2)*/;
◆コマンド番号20103
●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の順で */;powerdisp:false /* 降べきの順にして */$
MONDAI:"・補充2 20103 2次方程式x^2+2*x+4=0の2解をap,btとし、ap-1,bt-1を解とする方程式は"/*(◆修正部分1)*/$
KOUSATU:"ap+bt,ap*btを求めて、さらに、ap-1,bt-1を2解とすると、・・・"/*(◆修正部分1)*/;
KANSUU:"";
ni(n):=n!/*nの階乗*/$
nCrl(n,r):=ni(n)/(ni(r)*ni(n-r))/*nCrを文字変数で表現*/$
load(fourier_elim)$
load ("functs")$gcm(n1,n2):=n1*n2/lcm(n1,n2)/*n1,n2の最大公倍数*/$
quon(n1,n2):=block([qn,rn],rn:mod(n1,n2),qn:quotient(n1-rn,n2))/*n1のn2による整商*/$
exd(e1,e2,m):=block([k,kM,e11,e21,e,bL],e11:rat(e1,m),e21:rat(e2,m),e:rat(e11*e21,m),kM:hipow(e,m),
/**/print(e11),print(e21),print("----------各次数の係数に注目して") ,
/**/bL:["","...","......",".........","............",
/**/"...............","..................",".....................","........................"] /**/,
/**/for k:0 thru kM do(
/**//**/if kM>k then print(bL[k+1],coeff(e,m,(kM-k))*m^(kM-k))
/**//**//**/else print(bL[k+2],coeff(e,m,(kM-k))*moji^(kM-k))
/**//**/) /* "xの各次数の項を求めて(直前の3式から求め)" */,
/**/print("---------------------------------したがって") ,print(e),e:e)/*e1,e2の、mに着目した掛け算実行*/$
ed(e1,e2,bl,bdl):=block([hpe1,hpe2,hpe3,e1l,e2l,e3l,e4l,i],hpe1:hipow(e1,x),e1l:[],for i:0 thru hpe1 do e1l:cons(coeff(e1,x,i),e1l),print(e1l),
/**/hpe2:hipow(e2,x),e2l:[],for i:0 thru hpe2 do e2l:cons(coeff(e2,x,i),e2l),print(e2l),
/**/e20l:e2l,for i:1 thru hpe1-hpe2 do e20l:endcons(0,e20l),
/**/e3:quotient(e1,e2),hpe3:hipow(e3,x),e3l:[],for i:0 thru hpe3 do e3l:cons(coeff(e3,x,i),e3l),print(e3l),print(" "),
/**/print(bl,e3l),print(bdl),print(e2l,")",e1l),e4l:e20l*e3l[1],print(bl,e4l),print(bdl),e1l:e1l-e4l,print(bl,e1l),
/**/for i:1 thru hpe1-hpe2 do(e20l:cons(0,rest(e20l,-1)),e4l:e20l*e3l[1+i],print(bl,e4l),print(bdl),e1l:e1l-e4l,print(bl,e1l)),e1l:[e3l,e1l])/*e1のe2による割り算実行、結果はリスト*/$
elx(el,x):=block([i,iM,e],iM:length(el),e:0,for i:1 thru iM do(e:e+el[i]*x^(iM-i)),e:e)/*係数リストをxの文字式へ*/$
t2Kt(e3p,a,b):=block([e3,oj,ha,OJ,E3,Ha,F3,ctr,kM,PR,E4,pr,c,hb,axb,atb,se3,ans,e1,e2],
/**/e1:atb=a+b,e2:axb=a*b,e3:oj=e3p,
/**/ha:hipow(rhs(e3),a),
/**/OJ:[],E3:rhs(e3),Ha:ha,for i:Ha thru 0 step -1 do(
/**//**/F3:0,for j:i thru 0 step -1 do(F3:F3+coeff(coeff(E3,a,j),b,i-j)*a^j*b^(i-j),print([i,j,F3])),
/**//**/OJ:endcons(F3,OJ),print(OJ)),
/**/kM:length(OJ),PR:[],
/**/for k:1 thru kM do(
/**//**/ctr:0,
/**//**/E4:oj=OJ[k],ha:hipow(rhs(E4),a),pr:E4,print(pr),
/**//**/while ha>0 and 20>ctr do(c:coeff(rhs(pr),a,ha),hb:hipow(c,b),
/**//**//**/if hb>0 then pr:lhs(pr)/axb^(hb)=expand(factor(rhs(pr))/(a*b)^(hb))
/**//**//**//**/else pr:lhs(pr)-coeff(rhs(pr),a,ha)*atb^ha=expand(rhs(pr)-coeff(rhs(pr),a,ha)*(a+b)^ha),
/**//**//**/ha:hipow(rhs(pr),a),print([pr,ha]),ctr:ctr+1),
/**//**/se3:solve(pr,lhs(E4)),print(se3),PR:endcons(se3[1],PR)),
/**/print(PR),ans:rhs(lsum(i,i,PR)))/*2文字の対称式の基本対称式変換(次数混在)e3:a^5+b^5+a^3+b^3;t2Kt(e3,a,b);atb=ap+bt,axb=ap*btのこと*/$
TEJUN:""$
El:[x=(-B+sqrt(B^2-4*A*C))/(2*A),x=(-B-sqrt(B^2-4*A*C))/(2*A)];D:B^2-4*A*C;KCl:[atb=-B/A,axb=C/A];
K2Cl:[a=1,b=-(AtB),c=AxB];E:a*x^2+b*x+c;
eq:x^2+2*x+4=0;atb:-coeff(lhs(eq),x,1)/coeff(lhs(eq),x,2);axb:coeff(lhs(eq),x,0)/coeff(lhs(eq),x,2);seq:subst(subst([AtB=atb-2,AxB=axb-atb+1],K2Cl),E)/*(◆修正部分2)*/;
ansl:[seq=0]/**/;
KAKUNIN:"確認"/**/$
sxl:solve(seq=0,x);
kknnl:[ansl,sxl,solve(eq,x),if {x=rhs(sxl[1])+1,x=rhs(sxl[2])+1}=setify(solve(eq,x)) then "成立" else "不成立","[ansl,sxl,solve(eq,x),成立・不成立]"]/*(◆修正部分3)*/;
print(kknnl)/*確認*/$
KAITOU:[ansl,"解答"]/*解答*//**/$
SUJIMITI:"ap+bt=3,ap*bt=3として、新たな2次方程式の解の和は、( )となり、・・・"/**/;
FURIKAERI:"(例:具体的な数値で、推論結果の確認など、実行者の振り返りを書きこむこと)"$
print(MONDAI)$
print(SUJIMITI)$
print(KAITOU)$
print(FURIKAERI)$
◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
MONDAI:"・補充2 20103 2次方程式x^2+2*x+5=0の2解をap,btとし、ap+1,bt+1を解とする方程式は"/*(◆修正部分1)*/$
KOUSATU:"ap+bt,ap*btを求めて、さらに、ap+1,bt+1を2解とすると、・・・"/*(◆修正部分1)*/;
eq:x^2+2*x+4=0;atb:-coeff(lhs(eq),x,1)/coeff(lhs(eq),x,2);axb:coeff(lhs(eq),x,0)/coeff(lhs(eq),x,2);seq:subst(subst([AtB=atb+2,AxB=axb+atb+1],K2Cl),E)/*(◆修正部分2)*/;
kknnl:[ansl,sxl,solve(eq,x),if {x=rhs(sxl[1])-1,x=rhs(sxl[2])-1}=setify(solve(eq,x)) then "成立" else "不成立","[ansl,sxl,solve(eq,x),成立・不成立]"]/*(◆修正部分3)*/;