/*WORK:"202107-2MaximaTrial.html";
: トピックス6
●関数列と極限関数(日数教秋期研究大会用)
・使用法 1. この画面(右側の枠部分)をクリックして、Ctrl+aとしてからCtrl+c
2. 左下の枠の「MaximaOnLine」のリンクをクリックして、新しいタブを開く
3. 開いた新しいタブのMaximaOnLineの「Clear」をクリックし、黄色い入力枠をクリックして、Ctrl+v
4. MaximaOnLineの「Click」をクリックして実行
5. 結果出力後、Ctrl+fで表示される枠内に/*=を半角で入力しEnterを4回
6. 画面中央に表示される課題に取り組む。(結果出力をスクロールし、細字部分とグラフに着目)
◆コマンド番号202107-2
●極限と微積分の操作交換
●●●●●●●●●●●●●●●●*/
/*(kill(all), print("インストールMaximaでは、行頭の/*を、行末の$の後にCut&Paste"))$
*/
(MONDAI:"・202107-21
fn(x) =Σ(k*x^(k-1),k,1,n) =1 +2*x +3*x^2 +...+n*x^(n-1) (nは自然数)を求め、
/**/-1<x<1で、lim(x^n,n,inf)=lim(n*x^n,n,inf)=0を仮定して、
/**/n→∞のときのfn(x)の極限を検討せよ。"/*(◆修正部分1)*/,
KOUSATU:"微積分で考えると、・・・"/**/)$
(KATEI:"SetKATEI(検算用数値)",
subl:[x=1/%pi, K=5, n=6],print([subl,"subl"])/**/,
KATEI:"EndKATEI")$
(Kansuu0:"ユーザ定義関数(一般用)",
I(x,a):=if(x>a) then 1 else 0,
gr(T,c,l,pP,pK,lab,xm,xM,ym,yM):=block(
/**/wxdraw2d(
/*....*/title =T, yrange=[ym,yM] /* "タイトルと値域を確認し" */,dimensions = [400,300],
/*....*/color=cyan,line_width=2,
/*....*/implicit(c,x,xm,xM,y,ym,yM),
/*....*/color=blue,line_width=1,
/*....*/implicit(l,x,xm,xM,y,ym,yM),
/*....*/color=red,point_type =7,line_width=1,
/*....*/points_joined =true,point_size =1,points(pK[2]) /* "点pK[2]を赤で打点結線" */,
/*....*/color=blue,point_type =7,line_width=1,
/*....*/points_joined =true,point_size =1,points(pK[1]) /* "点pK[1]を青で打点結線" */,
/*....*/color=green,point_type =1,line_width=1,
/*....*/points_joined =false,point_size =2,points(pP) /* "点pPを緑で打点結線" */,
/*....*/color=red,lab[2][1],lab[2][2],lab[2][3],lab[2][4],lab[2][5],lab[2][6],
/*.......*/lab[2][7],lab[2][8],lab[2][9],lab[2][10],lab[2][11],lab[2][12],lab[2][13],
/*....*/color=black,line_width=1,
/*....*/implicit(y=0,x,xm,xM,y,ym,yM),implicit(x=0,x,xm,xM,y,ym,yM) /* "x,y軸を引く" */,
/*....*/color=black)),
lab(nam,p):=label([nam,p[1],p[2]]) /* 図中の文字設定 */,
Kansuu0:"EndKansuu")$
(KANSUU:"Teigi(ユーザ定義関数(本問用))",
/**/f(n,x):=sum(k*x^(k-1),k,1,n),print("fn(x) =",f(n,x)) /*(◆修正部分2)*/,
KANSUU:"EndTeigi")$
(SUIRON:"StartSUIRON",print([subl,"subl"]),
e00:["K*x^(K-1) =-d/dx(x^K)","(k乗の微分)",
/**/float(subst(subl,[K*x^(K-1)," =",diff(x^K,x)]) ),"e00"],
/**/print(e00) /*(◆修正部分3)*/,
e01:["fn(x) =Σ(k*x^(k-1),k,1,n) =Σ(d/dx(x^k),k,1,n)","(代入)",
/**/float(subst(subl,["fn(x) =",nusum(k*x^(k-1),k,1,n) =nusum(diff(x^k,x),k,1,n)]) ),"e01"],
/**/print(e01) /*(◆修正部分3)*/,
e02:[" =d/dx(Σ(x^k,k,1,n))","(加法・微分の交換)",
/**/float(subst(subl,[" =",diff(nusum(x^k,k,1,n),x)]) ),"e02"],
/**/print(e02) /*(◆修正部分3)*/,
e10:["(Case x<>1)","e10"],print(e10) /*(◆修正部分3)*/,
e11:["fn(x) =d/dx((x-x^(n+1))/(1-x))","(x<>1,級数簡約)",
/**/float(subst(subl,[" =",diff((x-x^(n+1))/(1-x),x)]) ),"e11"],
/**/print(e11) /*(◆修正部分3)*/,
e12:[" =((1-(n+1)*x^n)*(1-x)-(x-x^(n+1))*(-1))/(1-x)^2 ","(微分実行)",
/**/float(subst(subl,[" =",((1-(n+1)*x^n)*(1-x)-(x-x^(n+1))*(-1))/(1-x)^2]) ),"e12"],
/**/print(e12) /*(◆修正部分3)*/,
e13:[" =(n*x^(n+1)-(n+1)*x^n +1)/(1-x)^2 ","(簡約)",
/**/float(subst(subl,[" =",(n*x^(n+1)-(n+1)*x^n +1)/(1-x)^2]) ),"e13"],
/**/print(e13) /*(◆修正部分3)*/,
e20:["(Case x=1)","e20"],print(e20) /*(◆修正部分3)*/,
e21:["fn(1) =Σ(k,k,1,n)","(x=1,元の級数に代入)",
/**/float(subst(subl,["(Case x=1), fn(1) =",nusum(k,k,1,n)]) ),"e21"],
/**/print(e21) /*(◆修正部分3)*/,
e22:[" =n*(n+1)/2","(級数簡約)",
/**/float(subst(subl,[" =",n*(n+1)/2]) ),"e22"],print(e22) /*(◆修正部分3)*/,
e30:["(-1<x<1での極限関数)","e30"],
/**/print(e30),subl:[x=1/%pi],print([subl,"subl"]) /*(◆修正部分3)*/,
e31:["lim(fn(x),n,inf) =lim((n*x^(n+1)-(n+1)*x^n +1)/(1-x)^2,n,inf)","(-1<x<1でのfn(x)を代入)",
/**/float(["lim(fn(x),n,inf) =",limit(subst(subl,(n*x^(n+1)-(n+1)*x^n +1)/(1-x)^2),n,inf)] ),"e31"],
/**/print(e31) /*(◆修正部分3)*/,
e32:[" =lim((n*x^n*x-n*x^n-x^n +1)/(1-x)^2,n,inf)","(簡約)",
/**/float([" =", limit( subst(subl,(n*x^n*x-n*x^n-x^n +1)/(1-x)^2) ,n,inf) ])/**/,"e32"],
/**/print(e32) /*(◆修正部分3)*/,
e33:[" =1/(1-x)^2","(極限実行(abs(x)<1))",float(subst(subl,[" =",1/(1-x)^2]) )/**/,
"e33"],
/**/print(e33) /*(◆修正部分3)*/,
ansl:[[e10[1],e13[1]],[e20[1],e22[1]],[e30[1],e33[1]],"解答","ansl"],print(ansl) ,
/**/END:"EndSUIRON")$
(GJUNBI:"グラフ準備",
n:11,X:1,g(n,x):=if (x< X or x> X) then (n*x^(n+1)-(n+1)*x^n +1)/(1-x)^2 else n*(n+1)/2
/*gn(x)はfn(x)の簡約化*//*n:10,n:21,n:30と変化させてみよ*/ /*(◆修正部分4)*/,
xM:2, yM: f(n,X)*9/8, xm:-2, ym:-yM/8, dm:0.01,print([xm,xM,ym,yM,dm]) ,
dO:[0,0],dI:[0.2,0],dP:[0.2,-ym/2],dK:[-0.1,0],dQ:[-0.25,0],
pO:[0,0],pI:[X,0],pP:[X,f(n,X)],pJ:[0,f(n,X)],pK:[-X,0],pQ:[-X,f(n,-X)],pL:[0,f(n,-X)] /**/,
labO:lab("O",pO+dO),labI:lab("1",pI+dI),labP:lab("P",pP+dP),labQ:lab("Q",pQ+dQ),
labK:lab("-1",pK+dK),dJ:[-0.6,ym/2],dL:[1.05,-ym/3] ,
labJ:lab("n*(n+1)/2",pJ+dJ),labL:lab("-q(n,2)+n*m(n,2)",pL+dL) /**//*(◆修正部分5)*/,
print(["n,f(n,-X),-q(n,2)+n*m(n,2)",n,f(n,-X),-quotient(n,2)+n*mod(n,2)]),
pRB:[[pQ,pK,pI,pP],[pQ,pL,pJ,pP]]/**/,print(float(pRB)) /*点出力準備*/,
lab:[13,[labO,labO,labJ,labP,labQ,labO,labL,labO,labO,labO,labO,labO,labO]],
/**/print(float(lab)) /*ラベル準備*/,
pPG:[pO],print(float(pPG)) /**/,
/**/GJUNBI:"EndGJunbi")$
(GPrint:"グラフを書いて、視覚的に確認",
print(["n =",n]),print("与えられた関数fn(x)(blue)と、簡約後のgn(x) (cyan)"),
c:y =f(n,x) /**/,
T:"y =fn(x) (blue), gn(x) (cyan)", c1: y =g(n,x) /**/,
print([T,c,c1,pPG,pRB,lab,xm,xM,ym,yM]) /* 出力形式*/,
gr(T,c,c1,pPG,pRB,lab,xm,xM,ym,yM) /* グラフ出力すると*/,
/**/Gprint:"EndGPrint")$
(GPrint:"極限関数グラフ出力",
print(["n =",n]),print("極限関数(blue)と、gn(x) 簡約済(cyan)の(1,gn(1))付近"),
gr("y=1/(1-x)^2 (blue), gn(x) (cyan)",c,y=1/(1-x)^2*I(x,-1)*(1-I(x,1)),pPG,pRB,lab,xm,xM,ym,yM)
/* 極限関数グラフ出力すると*/ /*(◆修正部分6)*/,
/**/Gprint:"EndGPrint")$
(GPrint:"極限関数グラフ出力",
print(["n =",n]),print("極限関数(blue)と、gn(x) 簡約済(cyan)の(-1,gn(-1))付近"),
gr("y=1/(1-x)^2 (blue), gn(x) (cyan)",c,y=1/(1-x)^2*I(x,-1)*(1-I(x,1)),pPG,pRB,lab,xm,xM,-n*2/3,n*2/3)
/* 極限関数グラフ出力すると*/ /*(◆修正部分7)*/,
/**/Gprint:"EndGPrint")$
(GPrint:"極限関数グラフ出力",
print(["n =",n]),print("極限関数(blue)と、gn(x) 簡約済(cyan)の-1<x<1の様子"),
gr("y=1/(1-x)^2 (blue), gn(x) (cyan)",c,y=1/(1-x)^2*I(x,-1)*(1-I(x,1)),pPG,pRB,lab,xm,xM,-1,10)
/* 極限関数グラフ出力すると*/ /*(◆修正部分8)*/,
/**/Gprint:"EndGPrint")$
/*=*//*◆◆◆◎上のMaximaコマンドを実行せよ。
課題1 修正部分4のnの数値を変化させてみること。
課題2 有限級数と極限級数が、大きくずれる部分の原因は何か?
課題3 逆に、有限級数と極限級数が、ほとんどずれていない原因は何か?
◆◆◆◎上のコマンドを、下の例2(下の例1は上と同じ)により、各修正部分の対応部分を置き換えて修正・実行し、結果を比較して考察せよ。
例2
(MONDAI:"・202107-22
/**/fn(x) =Σ(k*(-x)^(k-1),k,1,n) =1 -2*x +3*x^2 +...+n*(-x)^(n-1) (nは自然数)を求め、
/**/-1<x<1で、lim(x^n,n,inf)=lim(n*x^n,n,inf)=0を仮定して、
/**/n→∞のときのfn(x)の極限を検討せよ。"/*(◆修正部分1)*/,
f(n,x):=sum(k*(-x)^(k-1),k,1,n),print("fn(x) =",f(n,x)) /*(◆修正部分2)*/,
e00:["K*(-x)^(K-1) =-d/dx((-x)^K)","(k乗の微分)",
/**/float(subst(subl,[K*(-x)^(K-1)," =",-diff((-x)^K,x)]) ),"e00"],
/**/print(e00) /*(◆修正部分3)*/,
e01:["fn(x) =Σ(k*(-x)^(k-1),k,1,n) =Σ(-d/dx((-x)^k),k,1,n)","(代入)",
/**/float(subst(subl,["fn(x) =",nusum(k*(-x)^(k-1),k,1,n) =nusum(-diff((-x)^k,x),k,1,n)]) ),"e01"],
/**/print(e01) /*(◆修正部分3)*/,
e02:[" =d/dx(Σ(-(-x)^k,k,1,n))","(加法・微分の交換)",
/**/float(subst(subl,[" =",diff(nusum(-(-x)^k,k,1,n),x)]) ),"e02"],
/**/print(e02) /*(◆修正部分3)*/,
e10:["(Case x<>-1)","e10"],print(e10) /*(◆修正部分3)*/,
e11:["fn(x) =d/dx((x+(-x)^(n+1))/(1+x)))","(x<>-1,級数簡約)",
/**/float(subst(subl,[" =",diff((x+(-x)^(n+1))/(1+x),x)]) ),"e11"],
/**/print(e11) /*(◆修正部分3)*/,
e12:[" =((1-(n+1)*(-x)^n)*(1-(-x))-(x+(-x)^(n+1)))/(1+x)^2 ","(微分実行)",
/**/float(subst(subl,[" =",((1-(n+1)*(-x)^n)*(1+x)-(x+(-x)^(n+1)))/(1+x)^2]) ),"e12"],
/**/print(e12) /*(◆修正部分3)*/,
e13:[" =(n*(-x)^(n+1)-(n+1)*(-x)^n +1)/(1+x)^2 ","(簡約)",
/**/float(subst(subl,[" =",(n*(-x)^(n+1)-(n+1)*(-x)^n +1)/(1+x)^2]) ),"e13"],
/**/print(e13) /*(◆修正部分3)*/,
e20:["(Case x=-1)","e20"],print(e20) /*(◆修正部分3)*/,
e21:["fn(-1) =Σ(k,k,1,n)","(x=-1,元の級数に代入)",
/**/float(subst(subl,["(Case x=1), fn(-1) =",nusum(k,k,1,n)]) ),"e21"],
/**/print(e21) /*(◆修正部分3)*/,
e22:[" =n*(n+1)/2","(級数簡約)",float(subst(subl,[" =",n*(n+1)/2]) ),"e22"],
/**/print(e22) /*(◆修正部分3)*/,
e30:["(-1<x<1での極限関数)","e30"],print(e30),subl:[x=1/%pi],
/**/print([subl,"subl"]) /*(◆修正部分3)*/,
e31:["lim(fn(x),n,inf) =lim((n*(-x)^(n+1)-(n+1)*(-x)^n +1)/(1+x)^2,n,inf)","(-1<x<1でのfn(x)の結果を代入)",
/**/float(["lim(fn(x),n,inf) =",limit(subst(subl,(n*(-x)^(n+1)-(n+1)*(-x)^n +1)/(1+x)^2),n,inf)] ),"e31"],
/**/print(e31) /*(◆修正部分3)*/,
e32:[" =lim((n*(-x)^n*(-x)-n*(-x)^n-(-x)^n +1)/(1+x)^2,n,inf)","(簡約)",
/**/float([" =", limit( subst(subl,(n*(-x)^n*(-x)-n*(-x)^n-(-x)^n +1)/(1+x)^2) ,n,inf) ])/**/,"e32"],
/**/print(e32) /*(◆修正部分3)*/,
e33:[" =1/(1+x)^2","(極限実行(-1<x<1))",float(subst(subl,[" =",1/(1+x)^2]) )/**/,"e33"],
/**/print(e33) /*(◆修正部分3)*/,
n:11,X:-1,g(n,x):=if (x< X or x> X) then (n*(-x)^(n+1)-(n+1)*(-x)^n +1)/(1+x)^2 else n*(n+1)/2
/**//*n:10,n:21,n:30と変化させてみよ*/ /*(◆修正部分4)*/,
labO:lab("O",pO+dO),labI:lab("-1",pI+dI),labP:lab("P",pP+dP),labQ:lab("Q",pQ+dQ),
labK:lab("1",pK+dK),dJ:[0.6,ym/2],dL:[-1.05,-ym/3] ,
labJ:lab("n*(n+1)/2",pJ+dJ),labL:lab("-q(n,2)+n*m(n,2)",pL+dL) /**//*(◆修正部分5)*/,
gr("y=1/(1+x)^2 (blue), gn(x) (cyan)",c,y=1/(1+x)^2*I(x,-1)*(1-I(x,1)),pPG,pRB,lab,xm,xM,ym,yM)
/* 極限関数グラフ出力すると*/ /*(◆修正部分6)*/,
gr("y=1/(1+x)^2 (blue), gn(x) (cyan)",c,y=1/(1+x)^2*I(x,-1)*(1-I(x,1)),pPG,pRB,lab,xm,xM,-n*2/3,n*2/3)
/* 極限関数グラフ出力すると*/ /*(◆修正部分7)*/,
gr("y=1/(1+x)^2 (blue), gn(x) (cyan)",c,y=1/(1+x)^2*I(x,-1)*(1-I(x,1)),pPG,pRB,lab,xm,xM,-1,10)
/* 極限関数グラフ出力すると*/ /*(◆修正部分8)*/,
例1
(MONDAI:"・202107-21
fn(x) =Σ(k*x^(k-1),k,1,n) =1 +2*x +3*x^2 +...+n*x^(n-1) (nは自然数)を求め、
/**/-1<x<1で、lim(x^n,n,inf)=lim(n*x^n,n,inf)=0を仮定して、
/**/n→∞のときのfn(x)の極限を検討せよ。"/*(◆修正部分1)*/,
/**/f(n,x):=sum(k*x^(k-1),k,1,n),print("fn(x) =",f(n,x)) /*(◆修正部分2)*/,
e00:["K*x^(K-1) =-d/dx(x^K)","(k乗の微分)",
/**/float(subst(subl,[K*x^(K-1)," =",diff(x^K,x)]) ),"e00"],
/**/print(e00) /*(◆修正部分3)*/,
e01:["fn(x) =Σ(k*x^(k-1),k,1,n) =Σ(d/dx(x^k),k,1,n)","(代入)",
/**/float(subst(subl,["fn(x) =",nusum(k*x^(k-1),k,1,n) =nusum(diff(x^k,x),k,1,n)]) ),"e01"],
/**/print(e01) /*(◆修正部分3)*/,
e02:[" =d/dx(Σ(x^k,k,1,n))","(加法・微分の交換)",
/**/float(subst(subl,[" =",diff(nusum(x^k,k,1,n),x)]) ),"e02"],
/**/print(e02) /*(◆修正部分3)*/,
e10:["(Case x<>1)","e10"],print(e10) /*(◆修正部分3)*/,
e11:["fn(x) =d/dx((x-x^(n+1))/(1-x))","(x<>1,級数簡約)",
/**/float(subst(subl,[" =",diff((x-x^(n+1))/(1-x),x)]) ),"e11"],
/**/print(e11) /*(◆修正部分3)*/,
e12:[" =((1-(n+1)*x^n)*(1-x)-(x-x^(n+1))*(-1))/(1-x)^2 ","(微分実行)",
/**/float(subst(subl,[" =",((1-(n+1)*x^n)*(1-x)-(x-x^(n+1))*(-1))/(1-x)^2]) ),"e12"],
/**/print(e12) /*(◆修正部分3)*/,
e13:[" =(n*x^(n+1)-(n+1)*x^n +1)/(1-x)^2 ","(簡約)",
/**/float(subst(subl,[" =",(n*x^(n+1)-(n+1)*x^n +1)/(1-x)^2]) ),"e13"],
/**/print(e13) /*(◆修正部分3)*/,
e20:["(Case x=1)","e20"],print(e20) /*(◆修正部分3)*/,
e21:["fn(1) =Σ(k,k,1,n)","(x=1,元の級数に代入)",
/**/float(subst(subl,["(Case x=1), fn(1) =",nusum(k,k,1,n)]) ),"e21"],
/**/print(e21) /*(◆修正部分3)*/,
e22:[" =n*(n+1)/2","(級数簡約)",
/**/float(subst(subl,[" =",n*(n+1)/2]) ),"e22"],print(e22) /*(◆修正部分3)*/,
e30:["(-1<x<1での極限関数)","e30"],
/**/print(e30),subl:[x=1/%pi],print([subl,"subl"]) /*(◆修正部分3)*/,
e31:["lim(fn(x),n,inf) =lim((n*x^(n+1)-(n+1)*x^n +1)/(1-x)^2,n,inf)","(-1<x<1でのfn(x)を代入)",
/**/float(["lim(fn(x),n,inf) =",limit(subst(subl,(n*x^(n+1)-(n+1)*x^n +1)/(1-x)^2),n,inf)] ),"e31"],
/**/print(e31) /*(◆修正部分3)*/,
e32:[" =lim((n*x^n*x-n*x^n-x^n +1)/(1-x)^2,n,inf)","(簡約)",
/**/float([" =", limit( subst(subl,(n*x^n*x-n*x^n-x^n +1)/(1-x)^2) ,n,inf) ])/**/,"e32"],
/**/print(e32) /*(◆修正部分3)*/,
e33:[" =1/(1-x)^2","(極限実行(abs(x)<1))",float(subst(subl,[" =",1/(1-x)^2]) )/**/,
"e33"],
/**/print(e33) /*(◆修正部分3)*/,
n:10,X:1,g(n,x):=if (x< X or x> X) then (n*x^(n+1)-(n+1)*x^n +1)/(1-x)^2 else n*(n+1)/2
/**//*n:10,n:21,n:30と変化させてみよ*/ /*(◆修正部分4)*/,
labO:lab("O",pO+dO),labI:lab("1",pI+dI),labP:lab("P",pP+dP),labQ:lab("Q",pQ+dQ),
labK:lab("-1",pK+dK),dJ:[-0.6,ym/2],dL:[1.05,-ym/3] ,
labJ:lab("n*(n+1)/2",pJ+dJ),labL:lab("-q(n,2)+n*m(n,2)",pL+dL) /**//*(◆修正部分5)*/,
gr("y=1/(1-x)^2 (blue), gn(x) (cyan)",c,y=1/(1-x)^2*I(x,-1)*(1-I(x,1)),pPG,pRB,lab,xm,xM,ym,yM)
/* 極限関数グラフ出力すると*/ /*(◆修正部分6)*/,
gr("y=1/(1-x)^2 (blue), gn(x) (cyan)",c,y=1/(1-x)^2*I(x,-1)*(1-I(x,1)),pPG,pRB,lab,xm,xM,-n*2/3,n*2/3)
/* 極限関数グラフ出力すると*/ /*(◆修正部分7)*/,
gr("y=1/(1-x)^2 (blue), gn(x) (cyan)",c,y=1/(1-x)^2*I(x,-1)*(1-I(x,1)),pPG,pRB,lab,xm,xM,-1,10)
/* 極限関数グラフ出力すると*/ /*(◆修正部分8)*/,
*/END:"Finish"$