21a12sid03m
1>ai>0のとき、(1-a1)(1-a2)...(1-an)>1-(a1+a2+...+an) (n>2)を示せ。
(1)次のMaximaコマンドを実行し、さらに、k:9として実行せよ。
(2)▲▲▲の印の部分の出力を見て、
帰納法の仮定lk>rkを、どのように使っているか考察せよ。
MONDAI:"1>ai>0のとき、(1-a1)(1-a2)...(1-an)>1-(a1+a2+...+an) (n>2)となるか";
for m: 1 thru 10 do(
/**/assume(a[m]>0) /* a[m]の条件*/,
/**/assume(a[m]<1) /* a[m]の条件*/ );
cp(n):=block([p],
/**/p:1,
/**/for m: 1 thru n do (
/*....*/p:p*(1-a[m])),
/**/p) /* 問題式の左辺の関数*/ ;
cs(n):=block([s],
/**/s:0,
/**/for m: 1 thru n do (
/*....*/s:s+a[m] ),
/**/1-s) /* 問題式の右辺の関数*/ ;
n:2 /*nの最初の値●●●*/;
l2:cp(2) /*n=2の場合の問題の左辺*/;
r2:cs(2) /*n=2の場合の問題の右辺*/;
l2Hr2:factor(l2-r2) /*n=2の場合の問題の左辺−右辺*/;
if(l2Hr2>0) then print("n=2で左辺>右辺")
/**/else print("n=2で左辺<=右辺") /*左辺と右辺の大小*/;
k:8 /*帰納法の仮定を行うn=kの値●●●*/;
lk:cp(k) /*n=kの場合の左辺*/;
rk:cs(k) /*n=kの場合の右辺*/;
KKATEI:lk>rk /*帰納法の仮定.n=kで左辺>右辺*/;
lkT1:lk*(1-a[k+1]) /*n=k+1の場合の左辺*/;
lKKATEI2:lhs(KKATEI)*(1-a[k+1]) /*帰納法の仮定から作ったn=k+1の場合の左辺▲▲▲*/;
rKKATEI2:rhs(KKATEI)*(1-a[k+1]) /*帰納法の仮定から作った上の式の右辺▲▲▲*/;
rKKATEI2:expand(rKKATEI2) /*帰納法の仮定から作った式の右辺の展開▲▲▲*/;
rkT1:rk-a[k+1] /*n=k+1の場合の右辺*/;
KHr:rKKATEI2-rkT1 /*帰納法の仮定から作った式の右辺からn=k+1の右辺を引くと▲▲▲*/;
lHr:KHr /*n=k+1の左辺から右辺を引いたものと同じで*/;
if lHr >0 then print("n=k+1で左辺>右辺") else print("n=k+1で左辺<=右辺") ;