: Maxima数学I自習教材開発
教材の概要
1数と式 1)式の計算
 1.整式の加法と減法
 2.整式の乗法
 3.因数分解
 101.発展・補充問題

Maxima数学I自習教材試行報告用紙(Word)
Maxima数学I自習教材試行報告用紙(PDF)
Maxima数学I自習教材試行報告用紙(html)

: 教材の概要

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


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

: 第1章数と式
 第1節式の計算
  1.整式の加法と減法

   A 単項式と多項式
    単項式、係数、次数
◆コマンド番号101
●例1
単項式の、着目する文字、次数、係数●●●●●●●●●●●●●●●●
kill(all) /* "101 単項式の係数と次数1" */$
ordergreat(X,Y,Z,x,y,z,A,B,C,a,b,c) /* "できるだけ、X,Y,Z,x,y,z,A,B,C,a,b,cの順に並べる" */$
MONDAI:"101 次式 で、ある文字に着目した場合の次数・係数は"$
e:-5*x^2 *y /* "単項式 xとyに着目(◆修正部分)" */;
jex:hipow(e,x) /* "xに着目した次数(◆修正時変更)" */;
jey:hipow(e,y) /* "yに着目した次数(◆修正時変更)" */;
E:subst([x=X,y=X],e) /* "xもyもXにした式(◆修正時変更)" */;
jexy:hipow(E,X) /* "X(xとy)に着目した次数" */;
cexy:coeff(E,X,jexy) /* "X(xとy)に着目した係数" */;

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
e:-3*a*b*c /* "単項式 aとbとcに着目(◆修正部分)" */;


◆コマンド番号102
●例2
単項式の、着目する文字、次数、係数●●●●●●●●●●●●●●●●
kill(all) /* "102 単項式の係数と次数 文字に着目" */$
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:"102 次式 で、ある文字に着目した場合の次数・係数は"$
e:5*a*b^2 *x^4 /* "単項式 xに着目、aとbに着目(◆修正部分)" */;
jex:hipow(e,x) /* "xに着目した次数" */;
cex:coeff(e,x,jex) /* "xのjex乗の係数" */;
E:subst([a=X,b=X],e) /* "aもbもXにした式(◆修正時変更)" */;
jeab:hipow(E,X) /* "X(aとb)に着目した次数" */;
ceab:coeff(E,X,jeab) /* "X(aとb)に着目した係数" */;

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
e:-6*a*x^2*y /* "単項式 xとyに着目(◆修正部分)" */;


   B 整式の整理
◆コマンド番号103
●例3
同類項の整理●●●●●●●●●●●●●●●●
kill(all) /* "103 同類項の整理" */$
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:"103 次式で、ある文字に着目して、同類項を整理すると"$
e:3*x^2 +2*x -5 -7*x +x^2 -1 /* "整式 xに着目(◆修正部分)" */;
moji:x /* "着目する文字(◆修正時変更)" */;
jem:hipow(e,moji) /* "mojiに着目したときの最大の次数" */;
for k:0 thru jem do(
/**/ print(moji^(jem-k),"...",coeff(e,moji,(jem-k)))
/**/) /* "mojiの次数ごとの係数(◆◆直前の2式から求める◆◆)" */;
powerdisp:false /* "降べきの順に" */$
em:rat(e,moji) /* "mojiに着目して整理した結果" */;

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
e:3*a^2 -2*a*b -4*b^2 -5*a^2 +2*a*b -8*b^2 /* "整式 aに着目(◆修正部分)" */;

◆コマンド番号104

整式の次数●●●●●●●●●●●●●●●●
kill(all) /* "104 n次式" */$
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:"104 次式で、ある文字に着目すると、次数は"$
e:4*x^2 -5*x -6 /* "整式 xに着目(◆修正部分)" */;
moji:x /* "着目する文字(◆修正時変更)" */;
je:hipow(e,moji) /* "mojiに着目したときのeの次数" */;

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
e:1 +6*a -8*a^2 -3*a^4 /* "整式 aに着目(◆修正部分)" */;

◆コマンド番号105
●例4
整式で、着目する文字と次数、定数項●●●●●●●●●●●●●●●●
kill(all) /* "105 定数項" */$
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:"105 次式で、ある文字に着目すると、次数、定数項は"$
e:a*x^2 +b*x +c /* "整式 xに着目(◆修正部分)" */;
moji:x /* "着目する文字(◆修正時変更)" */;
je:hipow(e,moji) /* "mojiに着目したときのeの次数" */;
c:coeff(e,moji,0) /* "定数項" */;

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
e:a*x^3 -x^2*y +b*y^2 +c /* "整式 xに着目、yに着目(◆修正部分)" */;

◆コマンド番号106
●例5
着目する文字で降べきの順に整理●●●●●●●●●●●●●●●●
kill(all) /* "106 整式の整理(降べき、昇べき)" */$
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:"106 次式で、ある文字に着目して、整理すると"$
e:a*x +2*a +x^2 -3 +x /* "整式 xに着目、降べきの順(◆修正部分)" */;
moji:x /* "着目する文字" */;
powerdisp:false /* "降べきの順に◆修正時変更(昇べきは"true")" */;
rat(e,moji) /* "mojiに着目して降べきの順に整理" */;

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
e:x^2 +3*x*y +2*y^2 -x -3*y -2 /* "整式 xに着目、昇べきの順(◆修正部分)" */;


   C 整式の加法と減法
◆コマンド番号107
●例6
整式の和と差●●●●●●●●●●●●●●●●
kill(all) /* "107 整式の和と差" */$
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:"107 次の2式の和、差は"$
eA:3*x^2 -5*x +2 /* "整式Aと(◆修正部分)" */;
eB:2*x^2 +x -4 /* "整式Bの和は(◆修正部分)" */;
e:eA +eB /* "(◆修正時変更)" */$
moji:x /* "着目する文字" */;
jem:hipow(e,moji) /* "mojiに着目したときの最大の次数" */;
for k:0 thru jem do(
/**/ print(moji^(jem-k),"...",coeff(e,moji,(jem-k)))
/**/) /* "mojiの次数ごとの係数(◆◆直前の2式から求める◆◆)" */;
powerdisp:false /* "降べきの順に" */$
em:rat(e,moji) /* "mojiに着目して和・差を整理" */;

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
eA:4*x^3 -3*x^2 -2*x +5 /* "整式Aと(◆修正部分)" */;
eB:2*x^3 -3*x^2 +7 /* "整式Bの差は(◆修正部分)" */;

◆コマンド番号108
●例7
整式の定数倍と和・差●●●●●●●●●●●●●●●●
kill(all) /* "108 整式の定数倍と和・差" */$
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:"108 次の2式の定数倍の和、差は"$
eA:3*x^2 -x +1 /* "整式Aと(◆修正部分)" */;
eB:x^2 +x -2 /* "整式Bの2倍の差は(◆修正部分)" */;
e:eA -2*eB /* "(◆修正時変更)" */$
e:expand(e)$
moji:x /* "着目する文字" */;
jem:hipow(e,moji) /* "mojiに着目したときの最大の次数" */;
print(rat(eA)) /* "p*整式A(◆修正部分)" */$
print(rat(-2*eB)) /* "q*整式B(◆修正部分)" */$
for k:0 thru jem do(
/**/ print(moji^(jem-k),"...",coeff(e,moji,(jem-k)))
/**/) /* "mojiの次数ごとの係数(◆◆直前の2式から求める◆◆)" */;
powerdisp:false /* "降べきの順に" */$
em:rat(e,moji) /* "mojiに着目して和・差を整理" */;

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
eA:x^2 +4*x -3 /* "整式Aの2倍と(◆修正部分)" */;
eB:2*x^2 -x^2 +4 /* "整式Bの3倍の和は(◆修正部分)" */;


:   2.整式の乗法
   A 単項式の乗法
◆コマンド番号201
●例8
単項式の積●●●●●●●●●●●●●●●●
kill(all) /* "201 単項式の積" */$
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:"201 次の単項式の積は"$
e:3*a^2 *a^4 /* "単項式の積 (◆修正部分)" */$
moji:a /* "着目する文字 (◆修正部分)" */;
jem:hipow(e,moji) /* "mojiに着目したときの最大の次数" */;
em:rat(e,moji) /* "mojiに着目して整理した結果" */;

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
e:(-3*x^2*y)^3 /* "単項式の積 (◆修正部分)" */$
moji:y /* "着目する文字 (◆修正部分)" */;

   B 整式の乗法
◆コマンド番号202
●例9
分配法則●●●●●●●●●●●●●●●●
kill(all) /* "202 分配法則" */$
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:"202 次の単項式と多項式の積は"$
e:(3*x^2)*(x^2 +2*x -4) /* "整式 ●積を展開●(◆修正部分)" */$ moji:x /* "着目する文字(◆修正部分)" */;
e1:3*x^2 /* "第1因子(◆修正時変更)" */$
e2:x^2 +2*x -4 /* 第2因子(◆修正時変更) */$
e:expand(e) /* "積の展開" */$
powerdisp:false /* "降べきの順に" */$
jem:hipow(e,moji) /* "mojiに着目したときの最大の次数" */;
print(e1) /* "第1因子" */$
print(e2) /* "第2因子" */$
print("----------各次数の係数に注目して") $
bL:["","...","......",".........","............",
"...............","..................","....................."] /* "出力の空白を設定し" */$
for k:0 thru jem do(
/**/if k<jem then print(bL[k+1],coeff(e,moji,(jem-k))*moji^(jem-k))
/*....*/else print(bL[k+2],coeff(e,moji,(jem-k))*moji^(jem-k))
/**/) /* "xの各次数の項を求めて(◆直前の2式から求め◆)" */$
em:rat(e,moji) /* "mojiに着目して整理した結果" */;

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
e:(3*a^2 -a -2)*(-2*a) /* "単項式と多項式の積、(◆修正部分)" */;
moji:a /* "着目する文字(◆修正部分)" */;

◆コマンド番号203
●例10
展開●●●●●●●●●●●●●●●●
kill(all) /* "203 展開" */$
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:"203 次の式の展開は"$
e:(4*x^2 -3*x +1)*(x +2) /* "多項式の積 (◆修正部分)" */;
moji:x /* "着目する文字" */;
e1:4*x^2 -3*x +1 /* "第1因子(◆修正時変更)" */$
e2:x +2 /* "第2因子(◆修正時変更)" */$
e:expand(e) /* "積の展開" */$
powerdisp:false /* "降べきの順に" */$
jem:hipow(e,moji) /* "mojiに着目したときの最大の次数" */;
print(e1) /* "第1因子" */$
print(e2) /* "第2因子" */$
print("----------各次数の係数に注目して") $
bL:["","...","......",".........","............",
"...............","..................","....................."] /* "出力の空白を設定し" */$
for k:0 thru jem do(
/**/if k<jem then print(bL[k+1],coeff(e,moji,(jem-k))*moji^(jem-k))
/*....*/else print(bL[k+2],coeff(e,moji,(jem-k))*moji^(jem-k))
/**/) /* "xの各次数の項を求めて(◆直前の2式から求め◆)" */$
em:rat(e,moji) /* "mojiに着目して整理した結果" */;

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
e:(2*x +1)*(3*x^2 +x -2) /* "多項式の積 (◆修正部分)" */;


   C 展開の公式
◆コマンド番号204
●例11
展開公式●●●●●●●●●●●●●●●●
kill(all) /* "204 展開公式" */;
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:"204 次の式の展開は"$
e:(3*x +1)^2 /* "この式の展開(◆修正部分)" */;
moji:x /* "着目する文字(◆修正部分)" */;
e1:3*x +1 /* "第1因子(◆修正時変更)" */$
e2:3*x +1 /* "第2因子(◆修正時変更)" */$
e:expand(e) /* "積の展開" */$
powerdisp:false /* "降べきの順に" */$
jem:hipow(e,moji) /* "mojiに着目したときの最大の次数" */;
print(e1)$
print(e2)$
print("----------各次数の係数に注目して") $
bL:["","...","......",".........","............",
"...............","..................","....................."] /* "出力の空白を設定し" */$
for k:0 thru jem do(
/**/if k<jem then print(bL[k+1],coeff(e,moji,(jem-k))*moji^(jem-k))
/*....*/else print(bL[k+2],coeff(e,moji,(jem-k))*moji^(jem-k))
/**/) /* "xの各次数の項を求めて(◆直前の2式から求め◆)" */$
em:rat(e,moji) /* "mojiに着目して整理した結果" */;

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
e:(x -2*a)*(x -7*a) /* "この式の展開(◆修正部分)" */;
moji:x /* "着目する文字(◆修正部分)" */;

◆コマンド番号205
●例12
展開公式●●●●●●●●●●●●●●●●
kill(all) /* "205 展開公式" */;
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:"205 次の式の展開は"$
e:(3*x +2)*(4*x +1) /* "この式の展開(◆修正部分)" */;
moji:x /* "この文字に着目し(◆修正部分)" */;
e1:3*x +2 /* "第1因子(◆修正時変更)" */$
e2:4*x +1 /* "第2因子として(◆修正時変更)" */$
e:expand(e) /* "積の展開をする場合" */$
jem:hipow(e,moji) /* "着目するxの最大次数から" */;
print(e1) /* "第1因子と" */$
print(e2) /* "第2因子を縦にして" */$
print("----------各次数の係数に注目して") $
bL:["","...","......",".........","............",
"...............","..................","....................."] /* "出力の空白を設定し" */$
for k:0 thru jem do(
/**/if k<jem then print(bL[k+1],coeff(e,moji,(jem-k))*moji^(jem-k))
/*....*/else print(bL[k+2],coeff(e,moji,(jem-k))*moji^(jem-k))
/**/) /* "xの各次数の項を求めて(◆直前の2式から求め◆)" */$
em:rat(e,moji) /* "mojiに着目して整理した結果" */;

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
e:(3*x -2*a)*(4*x -3*a) /* "整式 ●積を展開●(◆修正部分)" */;
moji:x /* "着目する文字(◆修正部分)" */;

   D 式の展開の工夫
◆コマンド番号206
●例13
展開の工夫●●●●●●●●●●●●●●●●
kill(all) /* "206 展開の工夫" */;
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:"206 次の式の展開は"$
e:(a +b +1)*(a +b -1) /* "置き換えて展開(◆修正部分)" */;
e:(A+1)*(A-1) /* "a+bをAとする(◆修正時変更)" */;
powerdisp:false /* "降べきの順に" */$
moji:A /* "着目する文字(◆修正時変更)" */;
e:rat(e,moji) /* "mojiに着目して◆◆公式で展開整理◆◆" */;
e:subst(A=a+b,e) /* "Aをa +bにする(◆修正時変更)" */;
moji:a /* "着目する文字(◆修正時変更)" */;
e:rat(e,moji) /* "mojiに着目して◆◆公式で展開整理◆◆" */;

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
e:(x -y +3)*(x -y -2) /* "置き換えて展開(◆修正部分)" */;

◆コマンド番号207
●例題1
展開の工夫●●●●●●●●●●●●●●●●
kill(all) /* "207 展開の工夫" */;
ordergreat(X,Y,Z,x,y,z,A,B,C,a,b,c,a,b,c) /* "できるだけ、X,Y,Z,x,y,z,A,B,C,a,b,c,a,b,cの順に並べる" */;
MONDAI:"207 次の式の展開は"$
e:(a +b +c)^2 /* "置き換えて展開(◆修正部分)" */;
e:(A+c)^2 /* "a+bをAとする(◆修正時変更)" */;
powerdisp:false /* "降べきの順に" */$
moji:A /* "着目する文字(◆修正時変更)" */;
e:rat(e,moji) /* "mojiに着目して◆◆公式で展開整理◆◆" */;
e:subst(A=a+b,e) /* "Aをa +bに戻す(◆修正時変更)" */;
e:expand(e);

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
e:(x +2*y +3*z)^2 /* "置き換えて展開(◆修正部分)" */;


◆コマンド番号208
●例題2
展開の工夫●●●●●●●●●●●●●●●●
kill(all) /* "208 展開の工夫" */;
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:"208 次の式の展開は"$
e:(a +b)^2 *(a -b)^2 /* "計算順を変えて展開(◆修正部分)" */;
e1:(a +b)*(a -b) /* "e1を(a +b)*(a -b)とする(◆修正時変更)" */;
e2:e1^2 /* "e2を((a +b)*(a -b))^2とする(◆修正時変更)" */;
e1:expand(e1) /* "展開" */;
e2:e1^2 /* "e2を((a +b)*(a -b))^2とする(◆修正時変更)" */;
e2:expand(e2) /* "展開" */;
e:expand(e) /* "展開" */;

◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
e:(x^2 +1)*(x +1)*(x-1) /* "計算順を変えて展開(◆修正部分)" */;


:   3.因数分解
   A 共通因数による因数分解
◆コマンド番号301
●例14
共通因数で因数分解●●●●●●●●●●●●●●●●
kill(all) /* "301 共通因数で因数分解" */;
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:"301 次の式の因数分解は"$
e:2*a*x^2+6*a*x*y /* "共通因数の括りだし(◆修正部分)" */;
e1:2*a*x^2 /* "eの第1項(◆修正時変更)" */;
e2:6*a*x*y /* "eの第2項(◆修正時変更)" */;
e3:0 /* "eの第3項(◆修正部分2)" */;
moji:x /* "着目する文字(◆修正時変更)" */;
jem:hipow(e,moji) /* "mojiに着目したときの最大の次数" */;
print("--------")$
cde:gcd(e1,e2) /* "eの共通因数(◆修正部分3)" */;
qe:quotient(e,cde) /* "eの共通因数による商" */;
print("--------展開してみて")$
bL:["","...","......",".........","............",
"...............","..................","....................."] /* "出力の空白を設定し" */$
for k:0 thru jem do(
/**/if k<jem then print(bL[k+1],coeff(e,moji,(jem-k))*moji^(jem-k))
/*....*/else print(bL[k+2],coeff(e,moji,(jem-k))*moji^(jem-k))
/**/) /* "確かめて" */$
expand(cde*qe);
print("--------確かめて")$
cde*qe;
factor(e) /* "eの因数分解" */;

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
e:3*a^2*x +6*a*x^2 +a*x /* "整式 ●共通因数の括りだし●(◆修正部分)" */;
e3:a*x /* "eの第3項(◆修正部分2)" */;
cde:gcd(gcd(e1,e2),e3) /* "eの共通因数(◆修正部分3)" */;

◆コマンド番号302
●例題3
共通因数で因数分解●●●●●●●●●●●●●●●●
kill(all) /* "302 共通因数で因数分解" */;
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:"301 次の式の因数分解は"$
e:(a -b)*x +(b -a)*y /* "共通因数の括りだし(◆修正部分)" */;
e1:(a -b)*x /* "eの第1項(◆修正時変更)" */;
e2:(b -a)*y /* "eの第2項(◆修正時変更)" */;
moji:x /* "着目する文字(◆修正時変更)" */;
jem:hipow(e,moji) /* "mojiに着目したときの最大の次数" */;
print("--------")$
cde:gcd(e1,e2) /* "eの共通因数" */;
qe:quotient(e,cde) /* "eの共通因数による商" */;
print("--------展開してみて")$
bL:["","...","......",".........","............",
"...............","..................","....................."] /* "出力の空白を設定し" */$
e9:expand(cde*qe)$
for k:0 thru jem do(
/**/if k<jem then print(bL[k+1],coeff(e9,moji,(jem-k))*moji^(jem-k))
/*....*/else print(bL[k+2],coeff(e9,moji,(jem-k))*moji^(jem-k))
/**/) /* "確かめて" */$
rat(e9);
print("--------確かめて")$
cde*qe;
factor(e) /* "eの因数分解" */;

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
e:(a -2*b)*x +(2*b -a)*y /* "整式 ●共通因数の括りだし●(◆修正部分)" */;

   B 2次式の因数分解
◆コマンド番号303
●例15
公式による因数分解●●●●●●●●●●●●●●●●
kill(all) /* "303 公式による因数分解" */;
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:"303 次の式の因数分解は"$
e:x^2 +8*x +16 /* "公式による因数分解(◆修正部分)" */;
moji:x /* "文字(◆修正部分)" */;
moji2:1 /* "文字2(◆修正部分)" */;
e1:coeff(e,moji,2) /* "moji^2の係数" */;
e2:coeff(e,moji,1) /* "mojiの係数" */;
e3:coeff(e,moji,0) /* "mojiの定数項" */;
re3:sqrt(abs(subst(moji2=1,e3)))*moji2 /* "mojiの定数項の平方根" */;
if e2=2*sqrt(e1)*re3 then(
/*....*/print(sqrt(e1)*moji +re3),print(sqrt(e1)*moji +re3),
/*....*/print("--------2因子をかけて確認"),print(e1,moji^2),print("...",e2,moji),print("......",e3), /*....*/print("--------"),
/*....*/kousiki:"a^2 +2*a*b +b^2=(a +b)^2" /* "和の平方" */
/**/)elseif e2=-2*sqrt(e1)*re3 then(
/*....*/print(sqrt(e1)*moji -re3),print(sqrt(e1)*moji -re3),
/*....*/print("--------2因子をかけて確認"),print(e1,moji^2),print("...",e2,moji),print("......",e3), /*....*/print("--------"),
/*....*/kousiki:"a^2 -2*a*b +b^2=(a +b)^2" /* "差の平方" */
/**/)elseif e2=0 and subst(moji2=1,e3) <0 then(
/*....*/print(sqrt(e1)*moji +re3),print(sqrt(e1)*moji -re3),
/*....*/print("--------2因子をかけて確認"),print(e1,moji^2),print("...",e2,moji),print("......",e3), /*....*/print("--------"),
/*....*/kousiki:"a^2 -b^2=(a +b)*(a -b)" /* "和と差の積" */
/**/)elseif e1=1 and mod(sqrt(subst(moji2=1,e2^2-4*e1*e3)),1)=0 then(
/*....*/print("定数項の約数  ",divisors(subst(moji2=1,e3))*moji2),
/*....*/e31:1*moji2 /* "第1因子の定数項=定数項の約数(◆修正時変更)" */,
/*....*/e32:e3/e31 /* "第2因子の定数項" */,
/*....*/print(sqrt(e1)*moji +e31),print(sqrt(e1)*moji +e32),
/*....*/print("--------2因子をかけて確認"),print(e1,moji^2),print("...",e2,moji),print("......",e3), /*....*/print("--------"),
/*....*/kousiki:"x^2 +(a+b)*x +a*b" /* "定数項の因子の和" */
/**/)else kousiki:"公式なし"
/*....*//* "公式で因数分解(◆◆次の2式から、その下の次数ごとの係数を確認◆◆)" */;
print(e) /* "eを確認" */$
print("--------")$
factor(e) /* "eの因数分解" */;

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
e:16*a^2 -25*b^2 /* "公式による因数分解(◆修正部分)" */;
moji:a /* "文字(◆修正部分)" */;
moji2:b /* "文字2(◆修正部分)" */;

◆コマンド番号304
●例16
公式による因数分解●●●●●●●●●●●●●●●●
kill(all) /* "304 公式による因数分解" */;
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:"304 次の式の因数分解は"$
e:x^2 +6*x +8 /* "公式による因数分解(◆修正部分)" */;
moji:x /* "文字(◆修正部分)" */;
moji2:1 /* "文字2(◆修正部分)" */;
e1:coeff(e,moji,2) /* "moji^2の係数" */;
e2:coeff(e,moji,1) /* "mojiの係数" */;
e3:coeff(e,moji,0) /* "mojiの定数項" */;
re3:sqrt(abs(subst(moji2=1,e3)))*moji2 /* "mojiの定数項の平方根" */;
if e2=2*sqrt(e1)*re3 then(
/**/print(sqrt(e1)*moji +re3),print(sqrt(e1)*moji +re3),
/**/print("--------2因子をかけて確認"),print(e1,moji^2),print("...",e2,moji),print("......",e3), /**/print("--------"),
/**/kousiki:"a^2 +2*a*b +b^2=(a +b)^2" /* "和の平方" */
)elseif e2=-2*sqrt(e1)*re3 then(
/**/print(sqrt(e1)*moji -re3),print(sqrt(e1)*moji -re3),
/**/print("--------2因子をかけて確認"),print(e1,moji^2),print("...",e2,moji),print("......",e3), /**/print("--------"),
/**/kousiki:"a^2 -2*a*b +b^2=(a +b)^2" /* "差の平方" */
)elseif e2=0 and subst(moji2=1,e3) <0 then(
/**/print(sqrt(e1)*moji +re3),print(sqrt(e1)*moji -re3),
/**/print("--------2因子をかけて確認"),print(e1,moji^2),print("...",e2,moji),print("......",e3), /**/print("--------"),
/**/kousiki:"a^2 -b^2=(a +b)*(a -b)" /* "和と差の積" */
)elseif e1=1 and mod(sqrt(subst(moji2=1,e2^2-4*e1*e3)),1)=0 then(
/**/print("定数項の約数  ",divisors(subst(moji2=1,e3))*moji2),
/**/e31:2*moji2 /* "第1因子の定数項=定数項の約数(◆修正時変更)" */,
/**/e32:e3/e31 /* "第2因子の定数項" */,
/**/print(sqrt(e1)*moji +e31),print(sqrt(e1)*moji +e32),
/**/print("--------2因子をかけて確認"),print(e1,moji^2),print("...",e2,moji),print("......",e3), /**/print("--------"),
/**/kousiki:"x^2 +(a+b)*x +a*b" /* "定数項の因子の和" */
)else kousiki:"公式なし"
/* "公式の判断(◆◆次の2式から、その下の次数ごとの係数を確認◆◆)" */;
print(e) /* "eを確認" */$
print("--------")$
factor(e) /* "eの因数分解" */;

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
e:y^2 -y -20 /* "公式による因数分解(◆修正部分)" */;
moji:y /* "文字(◆修正部分)" */;
moji2:1 /* "文字2(◆修正部分)" */;

◆コマンド番号305
●例題4
公式による因数分解●●●●●●●●●●●●●●●●
kill(all) /* "305 公式による因数分解" */;
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:"305 次の式の因数分解は"$
e:x^2 +2*x*y -8*y^2 /* "公式による因数分解(◆修正部分)" */;
moji:x /* "文字(◆修正部分)" */;
moji2:y /* "文字2(◆修正部分)" */;
e1:coeff(e,moji,2) /* "moji^2の係数" */;
e2:coeff(e,moji,1) /* "mojiの係数" */;
e3:coeff(e,moji,0) /* "mojiの定数項" */;
re3:sqrt(abs(subst(moji2=1,e3)))*moji2 /* "mojiの定数項の平方根" */;
if e2=2*sqrt(e1)*re3 then(
/**/print(sqrt(e1)*moji +re3),print(sqrt(e1)*moji +re3),
/**/print("--------2因子をかけて確認"),print(e1,moji^2),print("...",e2,moji),print("......",e3), /**/print("--------"),
/**/kousiki:"a^2 +2*a*b +b^2=(a +b)^2" /* "和の平方" */
)elseif e2=-2*sqrt(e1)*re3 then(
/**/print(sqrt(e1)*moji -re3),print(sqrt(e1)*moji -re3),
/**/print("--------2因子をかけて確認"),print(e1,moji^2),print("...",e2,moji),print("......",e3), /**/print("--------"),
/**/kousiki:"a^2 -2*a*b +b^2=(a +b)^2" /* "差の平方" */
)elseif e2=0 and subst(moji2=1,e3) <0 then(
/**/print(sqrt(e1)*moji +re3),print(sqrt(e1)*moji -re3),
/**/print("--------2因子をかけて確認"),print(e1,moji^2),print("...",e2,moji),print("......",e3), /**/print("--------"),
/**/kousiki:"a^2 -b^2=(a +b)*(a -b)" /* "和と差の積" */
)elseif e1=1 and mod(sqrt(subst(moji2=1,e2^2-4*e1*e3)),1)=0 then(
/**/print("定数項の約数  ",divisors(subst(moji2=1,e3))*moji2),
/**/e31:4*moji2 /* "第1因子の定数項=定数項の約数(◆修正時変更)" */,
/**/e32:e3/e31 /* "第2因子の定数項" */,
/**/print(sqrt(e1)*moji +e31),print(sqrt(e1)*moji +e32),
/**/print("--------2因子をかけて確認"),print(e1,moji^2),print("...",e2,moji),print("......",e3), /**/print("--------"),
/**/kousiki:"x^2 +(a+b)*x +a*b" /* "定数項の因子の和" */
)else kousiki:"公式なし"
/**//* "公式の判断(◆◆次の2式から、その下の次数ごとの係数を確認◆◆)" */;
print(e) /* "eを確認" */$
print("--------")$
factor(e) /* "eの因数分解" */;

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
e:x^2 -a*x -12*a^2 /* "公式による因数分解(◆修正部分)" */;
moji:x /* "文字(◆修正部分)" */;
moji2:a /* "文字2(◆修正部分)" */;

◆コマンド番号306
●例題5
公式による因数分解●●●●●●●●●●●●●●●●
kill(all) /* "306 公式による因数分解" */;
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:"306 次の式の因数分解は"$
e:2*x^2 -5*x +3 /* "公式による因数分解(◆修正部分)" */;
moji:x /* "文字(◆修正部分)" */;
moji2:1 /* "文字2(◆修正部分)" */;
e1:coeff(e,moji,2) /* "moji^2の係数" */;
e2:coeff(e,moji,1) /* "mojiの係数" */;
e3:coeff(e,moji,0) /* "mojiの定数項" */;
re3:sqrt(abs(subst(moji2=1,e3)))*moji2 /* "mojiの定数項の平方根" */;
if e2=2*sqrt(e1)*re3 then(
/**/print(sqrt(e1)*moji +re3),print(sqrt(e1)*moji +re3),
/**/print("--------2因子をかけて確認"),print(e1,moji^2),print("...",e2,moji),print("......",e3), /**/print("--------"),
/**/kousiki:"a^2 +2*a*b +b^2=(a +b)^2" /* "和の平方" */
)elseif e2=-2*sqrt(e1)*re3 then(
/**/print(sqrt(e1)*moji -re3),print(sqrt(e1)*moji -re3),
/**/print("--------2因子をかけて確認"),print(e1,moji^2),print("...",e2,moji),print("......",e3), /**/print("--------"),
/**/kousiki:"a^2 -2*a*b +b^2=(a +b)^2" /* "差の平方" */
)elseif e2=0 and subst(moji2=1,e3) <0 then(
/**/print(sqrt(e1)*moji +re3),print(sqrt(e1)*moji -re3),
/**/print("--------2因子をかけて確認"),print(e1,moji^2),print("...",e2,moji),print("......",e3), /**/print("--------"),
/**/kousiki:"a^2 -b^2=(a +b)*(a -b)" /* "和と差の積" */
)elseif e1=1 and mod(sqrt(subst(moji2=1,e2^2-4*e1*e3)),1)=0 then(
/**/print("定数項の約数  ",divisors(subst(moji2=1,e3))*moji2),
/**/e31:4*moji2 /* "第1因子の定数項=定数項の約数(◆修正時実行してみて変更)" */,
/**/e32:e3/e31 /* "第2因子の定数項" */,
/**/print(sqrt(e1)*moji +e31),print(sqrt(e1)*moji +e32),
/**/print("--------2因子をかけて確認"),print(e1,moji^2),print("...",e31+e32,moji),print("......",e3), /**/print("--------"),
/**/kousiki:"x^2 +(a+b)*x +a*b" /* "定数項の因子の和" */
)elseif mod(sqrt(subst(moji2=1,e2^2-4*e1*e3)),1)=0 then(
/**/print(moji^2,"の係数の約数",divisors(e1)),
/**/print("定数項の約数  ",divisors(subst(moji2=1,e3))*moji2,"この数値を見て次を変更"),
/**/e11:1 /* "第1因子の1次の係数=moji^2の係数の約数(◆修正時実行してみて変更)" */,
/**/e12:e1/e11 /* "第2因子の1次の係数" */,
/**/e31:-1*moji2 /* "第1因子の定数項=定数項の約数(◆修正時実行してみて変更)" */,
/**/e32:e3/e31 /* "第2因子の定数項" */,
/**/print(e11*moji +e31) /* "第1因子" */,
/**/print(e12*moji +e32) /* "第2因子" */,
/**/print("--------2因子をかけて確認"),print(e1,moji^2),print("...",e11*e32+e12*e31,moji),print("......",e3), /**/print("--------"),
/**/kousiki:"a*c*x^2 +(a*d+b*c)*x +b*d" /* "たすき掛" */
)else kousiki:"公式なし"
/**/ /* "公式の判断(◆◆次の2式から、その下の次数ごとの係数を確認◆◆)" */;
print(e) /* "eを確認" */$
print("--------")$
factor(e) /* "eの因数分解" */;

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
e:4*x^2 +13*x*y -35*y^2 /* "公式による因数分解(◆修正部分)" */;
moji:x /* "文字(◆修正部分)" */;
moji2:y /* "文字2(◆修正部分)" */;

   C 因数分解の工夫
◆コマンド番号307
●応用例題1
因数分解の工夫●●●●●●●●●●●●●●●●
kill(all) /* "307 因数分解の工夫" */;
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:"307 次の式の因数分解は"$
e:(x+y)^2 +2*(x+y) -15 /* "置換して因数分解(◆修正部分)" */;
eA:A=x +y /* "A=x+yとする(◆修正時変更)" */;
e0:A^2 +2*A -15 /* "x+yをAに置換(◆修正時変更)" */;
moji:A /* "mojiをAとする" */;
moji2:1 /* "moji2を1とする(◆修正時変更)" */;
e1:coeff(e0,moji,2) /* "moji^2の係数" */;
e2:coeff(e0,moji,1) /* "mojiの係数" */;
e3:coeff(e0,moji,0) /* "定数項" */;
print(divisors(subst(moji2=1,e1))) /* "moji^2の係数の約数" */;
print(divisors(subst(moji2=1,e3))*moji2) /* "定数項の係数" */;
e11:1 /* "第1因子のmojiの係数(◆修正時変更)" */;
e12:subst(moji2=1,e1)/e11 /* "第2因子のmojiの係数" */;
e21:5*moji2 /* "第1因子の定数項(◆修正時変更)" */;
e22:subst(moji2=1,e3)/e21*moji2 /* "第2因子の定数項" */;
print("--------")$
(print(e11*moji +e21*moji2) /* "第1因子" */,
print(e12*moji +e22*moji2) /* "第2因子" */,
print("--------展開して確認"),
print(e1*moji^2 +e2*moji*moji2 +e3*moji2^2) /* "◆◆下の2式から、その次の式の次数ごとの係数を確認◆◆" */
)$
e0:factor(e0) /* "Aの式として因数分解" */;
print("--------Aを戻して")$
e0:subst(eA,e0) /* "Aをx+yに置換" */;
e0:expand(e0)$ moji:x$ factor(e) /* "eを因数分解" */;

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
e:2*(x+y)^2 -(x+y) -1 /* "置換して因数分解(◆修正部分)" */;


◆コマンド番号308
●応用例題2
因数分解の工夫●●●●●●●●●●●●●●●●
kill(all) /* "308 因数分解の工夫" */;
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:"308 次の式の因数分解は"$
e:x^4 -3*x^2 -4 /* "整式 ●置換して因数分解●(◆修正部分)" */;
eA:A=x^2 /* "A=x^2とする(◆修正時変更)" */;
e:A^2 -3*A -4 /* "x+yをAに置換(◆修正時変更)" */;
(moji:A /* "mojiをAとする" */,
moji2:1 /* "moji2を1とする(◆修正時変更)" */,
e1:coeff(e,moji,2) /* "moji^2の係数" */,
e2:coeff(e,moji,1) /* "mojiの係数" */,
e3:coeff(e,moji,0) /* "定数項" */,
print("moji^2の係数の約数",divisors(subst(moji2=1,e1))) /* "moji^2の係数の約数" */,
print("定数項の約数",divisors(subst(moji2=1,e3))) /* "定数項の係数" */,
print("--------"),
e11:1*moji2 /* "第1因子のmojiの係数(◆修正時変更)" */,
e12:subst(moji2=1,e1)/e11*moji2 /* "第1因子の定数項" */,
e21:1*moji2 /* "第2因子のmojiの係数(◆修正時変更)" */,
e22:subst(moji2=1,e3)/e21*moji2 /* "第2因子の定数項" */,
print(e11*moji +e21*moji2) /* "第1因子" */,
print(e12*moji +e22*moji2) /* "第2因子" */)$
print("--------展開して確認")$
print(e) /* "◆◆上の2式から、次の式の次数ごとの係数となるか確認◆◆" */$
e:factor(e) /* "Aの式として因数分解" */;
e:subst(eA,e) /* "Aをx^2に置換(◆修正時変更)" */;
print("--------Aを戻して")$
factor(e) /* "◆◆eをさらに因数分解◆◆" */;

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
e:x^4 -8*x^2 -9 /* "整式 ●置換して因数分解●(◆修正部分)" */;

◆コマンド番号309
●応用例題3
因数分解の工夫●●●●●●●●●●●●●●●●
kill(all) /* "309 因数分解の工夫" */;
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:"309 次の式の因数分解は"$
e:x^2 +x*y +x +2*y -2 /* "整式 ●次数の低い文字で整理して因数分解●(◆修正部分)" */;
moji2:y /* "moji2次数の低い文字(◆修正部分)" */;
print("--------")$
e:rat(e,moji2) /* "次数の低い文字で整理" */;
(ey1:coeff(e,moji2,1) /* "yの係数" */,
/**/ey0:coeff(e,moji2,0) /* "yに着目した定数項" */,
/**/print(ey0," yに着目した定数項"),
/**/ey0:factor(ey0) /* "yに着目した定数項の因数分解" */,
/**/print(ey0," yに着目した定数項の因数分解"),
/**/eA:gcd(ey1,ey0) /* "ey1とey0の共通因数" */,
/**/print("与式="),
/**/print("(",eA,")*",quotient(ey1,eA)*moji2,"+(",eA,")*(",quotient(ey0,eA),")") /* "eをyに着目して、各係数を共通因数で因数分解すると" */,
/**/print(eA," 2項の共通因数"),
/**/print("与式="),
/**/print("(",eA,")*(",quotient(ey1,eA)*moji2+quotient(ey0,eA),")") /* "共通因数を括りだした◆◆" */)$
print("--------")$
e:factor(e) /* "eを因数分解" */;

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
e:x^2 +3*a*x -9*a -9 /* "整式 ●次数の低い文字で整理して因数分解●(◆修正部分)" */;
moji2:a /* "moji2次数の低い文字(◆修正部分)" */;

◆コマンド番号310
●応用例題4
因数分解の工夫●●●●●●●●●●●●●●●●
kill(all) /* "310 因数分解の工夫" */;
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:"310 次の式の因数分解は"$
e:x^2 +3*x*y +2*y^2 -x -3*y -2 /* "整式 ●ある文字で整理して因数分解●(◆修正部分)" */;
moji:x /* "moji:着目する文字(◆修正部分)" */;
moji2:y /* "moji2:別の文字(◆修正部分)" */;
e:rat(e,moji) /* "mojiで整理" */;
e2:coeff(e,moji,2) /* "x^2の係数" */;
e1:coeff(e,moji,1) /* "xの係数" */;
e0:coeff(e,moji,0) /* "xの定数項" */;
e0:rat(e0,moji2) /* "定数項をmoji2で整理" */;
(e02:coeff(e0,moji2,2) /* "y^2の係数" */,
/**/e01:coeff(e0,moji2,1) /* "yの係数" */,
/**/e00:coeff(e0,moji2,0) /* "yの定数項" */,
/**/print(moji2^2,"の係数の約数",divisors(e02)),
/**/print("定数項の約数",divisors(e00)),
/**/e021:1 /* "第1因子の1次の係数(◆修正時変更)" */,
/**/e022:e02/e021 /* "第2因子の1次の係数" */,
/**/e001:-2 /* "第1因子の定数項(◆修正時変更)" */,
/**/e002:e00/e001 /* "第2因子の定数項" */,
/**/print("--------"),
/**/print(e021*moji2 +e001) /* "第1因子" */,
/**/print(e022*moji2 +e002) /* "第2因子" */,
/**/print("--------2因子をかけて確認"),print(e02,moji2^2),print("...",e021*e002+e022*e001,moji2),print("......",e00),
/**/print("--------"),
/**/print(e0)) /* "◆◆次の2式から、その下の次数ごとの係数を確認◆◆" */$
factor(e0);
(e2:coeff(e,moji,2) /* "x^2の係数" */,
/**/e1:coeff(e,moji,1) /* "xの係数" */,
/**/e0:coeff(e,moji,0) /* "xの定数項" */,
/**/print(moji^2,"の係数の約数",divisors(e2)),
/**/e0:factor(e0) /* "定数項を因数分解" */,
/**/print("定数項の約数",e0),
/**/e21:1 /* "第1因子の1次の係数(◆修正時変更)" */,
/**/e22:e2/e21 /* "第2因子の1次の係数" */,
/**/e01:y-2 /* "第1因子の定数項(◆修正時変更)" */,
/**/e02:e0/e01 /* "第2因子の定数項" */,
/**/print("--------"),
/**/print(e21*moji +e01) /* "第1因子" */,
/**/print(e22*moji +e02) /* "第2因子" */,
/**/print("--------2因子をかけて確認"),print(e2,moji^2),print("...(",e21*e02+e22*e01,")",moji),print("......",e0),
/**/print("--------"),
/**/print(e2,moji^2,"+(",e1,")",moji,"+",e0)) /* "◆◆次の2式から、その下の次数ごとの係数を確認◆◆" */$
e:factor(e) /* "因数分解" */;

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
e:2*x^2 +5*x*y +2*y^2 -x +y -1 /* "整式 ●ある文字で整理して因数分解●(◆修正部分)" */;
moji:x /* "moji:着目する文字(◆修正部分)" */;
moji2:y /* "moji2:別の文字(◆修正部分)" */;


:    発展 3次式の展開と因数分解
◆コマンド番号10101
●例1
3乗公式による展開●●●●●●●●●●●●●●●●
kill(all) /* "10101 3乗公式による展開" */;
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:"10101 次の式の展開は"$
e:(x +1)^3 /* "整式 ●3乗公式による展開●(◆修正部分)" */;
a:x /* "因子の第1項(◆修正時変更)" */;
b:1 /* "因子の第2項(◆修正時変更)" */;
(print(a+b),print(a+b),print(a+b),
/**/e3:a^3,e2:3*a^2*b,e1:3*a*b^2,e0:b^3,
/**/print("--------3因子をかけて確認"),
/**/print(e3),print("...",e2),print("......",e1),print(".........",e0),
/**/print("--------")
/**/) /* "◆◆次の3式から、その下の次数ごとの係数を確認◆◆" */$
e3+e2+e1+e0;
e:expand(e);

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
e:(x -2*y)^3 /* "整式 ●3乗公式による展開●(◆修正部分)" */;

◆コマンド番号10102
●例2
3乗公式による展開●●●●●●●●●●●●●●●●
kill(all) /* "10102 3乗公式による展開" */;
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:"10102 次の式の展開は"$
e:(x +2)*(x^2 -2*x +4) /* "整式 ●3乗公式による展開●(◆修正部分)" */;
a1:x /* "第1因子の第1項(◆修正時変更)" */;
b1:2 /* "第1因子の第2項(◆修正時変更)" */;
a2:a1^2 /* "第2因子の第1項(◆修正時確認)" */;
b2:-a1*b1 /* "第2因子の第2項(◆修正時確認)" */;
c2:b1^2 /* "第2因子の第3項(◆修正時確認)" */;
(print(a1+b1),print(a2+b2+c2),
/**/e3:a1^3,e2:a1*b2+a2*b1,e1:a1*c2+b1*b2,e0:b1*c2,
/**/print("--------2因子をかけて確認"),
/**/print(e3),print("...",e2),print("......",e1),print(".........",e0),
/**/print("--------")
/**/) /* "◆◆次の2式から、その下の次数ごとの係数を確認◆◆" */$
e3+e2+e1+e0;
e:expand(e);

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
e:(x +3*y)*(x^2 -3*x*y +9*y^2) /* "整式 ●3乗公式による展開●(◆修正部分)" */;

◆コマンド番号10103
●例3
公式による因数分解●●●●●●●●●●●●●●●●
kill(all) /* "10103 公式による因数分解" */;
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:"10103 次の式の因数分解は"$
e:x^3 +8 /* "整式 ●3乗公式による因数分解●(◆修正部分)" */;
a1:x /* "第1因子の第1項(◆修正時変更)" */;
b1:2 /* "第1因子の第2項(◆修正時変更)" */;
a2:a1^2 /* "第2因子の第1項(◆修正時確認)" */;
b2:-a1*b1 /* "第2因子の第2項(◆修正時確認)" */;
c2:b1^2 /* "第2因子の第3項(◆修正時確認)" */;
(print(a1+b1),print(a2+b2+c2),
/**/e3:a1^3,e2:a1*b2+a2*b1,e1:a1*c2+b1*b2,e0:b1*c2,
/**/print("--------2因子をかけて確認"),
/**/print(e3),print("...",e2),print("......",e1),print(".........",e0),
/**/print("--------")
/**/) /* "◆◆次の2式から、その下の次数ごとの係数を確認◆◆" */$
e3+e2+e1+e0;
e:factor(e);

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
e:27*x^3 +a^3 /* "整式 ●3乗公式による展開●(◆修正部分)" */;


   補充問題
◆コマンド番号10104
●1●●●●●●●●●●●●●●●●
kill(all) /* "10104 整式の和・差・定数倍" */;
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:"10104 次の式の展開は"$
(A:x +y +z /* "Aの定義" */,
B:2*x -y-z /* "Bの定義" */,
C:x -y -3*z /* "Cの定義" */)$
e:2*(A -B) -(B -C) /* "e ●x,y,zで表現●(◆修正部分)" */$
(e:2*A -3*B +C /* "eの計算(◆修正時変更)" */,
/**/eA:2,eB:-3,eC:1 /* "A,B,Cの係数(◆修正時変更)" */,
/**/print("e = (",eA,")*A +(",eB,")*B +(",eC,")*C") /* "eの計算(◆修正時変更)" */,
/**/print(eA,"A= ",eA*(A)),
/**/print(eB,"B= ",eB*(B)),
/**/print(eC,"C= ",eC*(C)),
/**/ex:eA*coeff(A,x,1)+eB*coeff(B,x,1)+eC*coeff(C,x,1) /* "x項(◆修正時変更)" */,
/**/ey:eA*coeff(A,y,1)+eB*coeff(B,y,1)+eC*coeff(C,y,1) /* "y項(◆修正時変更)" */,
/**/ez:eA*coeff(A,z,1)+eB*coeff(B,z,1)+eC*coeff(C,z,1) /* "z項(◆修正時変更)" */,
/**/print("--------x,y,zの3項の係数をそれぞれ加えて確認"),
/**/print(ex*x),print("...",ey*y),print("......",ez*z),
/**/print("--------"),
/**/print(e)
/**/) /* "◆◆次の2式から、その下の次数ごとの係数を確認◆◆" */$
rat(e) /* "e ●x,y,zで表現●(◆修正部分)" */;

◎上のMaximaコマンドを実行せよ。
◎上のコマンドを、次により修正して実行し、結果を比較して考察せよ。
e:3*(A +C) -2*(2*B -A) /* "eの定義(◆修正部分)" */$


◆コマンド番号10105
●4●●●●●●●●●●●●●●●●
kill(all) /* "10105 因数分解" */;
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:"10105 次の式の因数分解は"$
e:a*(b^2 -c^2) +b*(c^2 -a^2) +c*(a^2 -b^2) /* "整式 ●ある文字に着目して因数分解●" */;
moji:a /* "anに着目" */;
e:rat(e,moji) /* "aで整理" */;
(ea2:factor(coeff(e,moji,2)) /* "a^2の係数の因数分解" */,
/**/ea1:factor(coeff(e,moji,1)) /* "aの係数の因数分解" */,
/**/ea0:factor(coeff(e,moji,0)) /* "aについて定数項の因数分解" */,
/**/e:ea2*moji^2 +ea1*moji +ea0 /* "◆◆aで整理、係数を因数分解◆◆" */,
/**/print(e),
/**/ce:c-b /* "係数の最大公約因数=第1因子(◆修正時変更)" */,
/**/qec:rat(quotient(e,ce),moji) /* "第2因子" */,
/**/E:ce*qec /* "◆◆最大公約因数のくくりだし◆◆" */,
/**/print("--------第1因子括りだし"),
/**/print("(",ce,")(",qec,")"))$
print(qec," この第2因子は")$
(qa2:coeff(qec,a,2) /* "a^2の係数" */,
/**/qa1:coeff(qec,a,1) /* "aの係数" */,
/**/qa0:coeff(qec,a,0) /* "aの定数項" */,
/**/print("第2因子のa^2の係数の約数",divisors(qa2)),
/**/print("第2因子の定数項の約数",divisors(qa0)),
/**/qa21:1 /* "第2-1因子の1次の係数(◆修正時変更)" */,
/**/qa22:qa2/qa21 /* "第2-2因子の1次の係数" */,
/**/qa01:-b /* "第2-1因子の定数項(◆修正時変更)" */,
/**/qa02:qa0/qa01 /* "第2-2因子の定数項" */,
/**/qec1:qa21*moji +qa01 /* "第2-1因子" */,
/**/qec2:qa22*moji +qa02 /* "第2-2因子" */,
/**/print(qec1," 第2-1因子"),print(qec2," 第2-2因子"),
print("--------"),
print("--------2因子をかけて確認"),
print(qa2,moji^2),print("...",factor(qa21*qa02+qa22*qa01),moji),print("......",qa0),
print("--------"),
print(qec)) /* "◆◆次の2因子から、その下の次数ごとの係数を確認◆◆" */$
E:factor(ce*qec1*qec2) /* "◆◆第1因子をくくりだして、第2因子を因数分解◆◆" */;
factor(e) /* "eの因数分解" */;

◎上のMaximaコマンドを実行せよ。
◎解法の流れを考察せよ。