Quick BASICの練習(9)~数列の二項間漸化式と固有値、一般項
いつも1ヶ月くらい間を空けて書いて来た、このシリーズ記事。今日は前回
から1週間しか経ってないけど、区切りがいいからサラッと終わらせとこう。
初心者用の無料ソフト「クイック・ベーシック」を使ったプログラミング学習だ。
これまでの関連記事10本(2本+8本)は以下の通り。ほぼ完全に知識ゼロ、
ソフトも無い初心者状態からスタート。必要なら過去記事に戻って読むことを
お勧めする。
初めてのプログラミング♪
初めてのプログラミング(2)~計算その他、簡単なバッチファイル
・・・・・・・・・・・・・・・・・・・・
Quick BASICのダウンロード、ダイレクトモード(Immediate)入力と計算
Quick BASICの練習(2)~プログラム・モードでの入力&実行
(3)~REM 文、GOTO 文、IF 文、各種トラブル・・
(7)~関数値の計算、方程式の近似解
テキストはいつもの通り、一昔前の高校数学の教科書、数研出版『数学A』
(1995年版)。教科書のままだと上手く行かないこともあるし、勉強にもなら
ないので、マイナーチェンジや試行錯誤を繰り返すことになる。今回で一通り
終了で、次回は高校2年生向けの『数学B』に進む予定。
☆ ☆ ☆
では、教科書p.197。問題や索引を除くと一番最後となるページに書かれ
てるのは、既にp.86~87で説明されてる、数列の漸化式の話だ。解き方は
既に習ってるわけだが、数列の一番の基本は、まず具体的に書き並べてみ
ること。この単純作業をコンピューターに高速でやらせたい。
教科書の例29は、「自然数5から始め、2倍しては3を引く操作によってでき
る数列 5,7,11,19,35,・・・・・・」を扱うもの。数列を{A(n)}として、漸化
式で書くと、
A(n+1) = 2A(n) -3
ここで、 α=2α-3という方程式を解くと、 α=3。
漸化式の両辺からこのαを引いて、変形すると、
A(n+1) -3= 2{A(n)-3}
よって、数列{A(n)-3}は公比2の等比数列。初項はA(1)-3=2だから、
A(n)-3=2×(2のn-1乗)
∴ A(n)=(2のn乗)+3
これが第n項(一般項)の式となる。途中のα=2α-3は、教科書には名
前が無いけど、普通は「特性方程式」と呼ばれ、その解αは「固有値」と呼
ばれる。参考書、塾、予備校などではお馴染みの基礎知識だろう。
一般に A(n+1) = p A(n)+q (p≠1)に対して、
特性方程式 α=pα+q ; 固有値 q/(1-p)
第n項 A(n) = {A(1)-q/(1-p)}(pのn-1乗)+q/(1-p)
p=1の場合は単なる等差数列だから、簡単に解ける。
☆ ☆ ☆
さて、ここでは教科書の例の設定を少し変えて、
初項 A(1)=2、 漸化式 A(n+1)=4A(n)-3
で与えられる数列{A(n)}を考えてみよう。
最初の6項を表示
した後、そのすぐ
下に、それぞれか
ら固有値1を引い
た数を表示するプ
ログラムは、次の
通り。
途中で第7項まで
計算することにな
るので、最初の配
列変数の設定は、
A(7)としてある。もちろん、7以上の自然数なら10でも100でもいいはず。固
有値p=1は、上に書いた一般論に従って、-3/(1-4)を計算したものだ。
実行結果は左の通り。
分かりにくい元の数列
の下に、分かりやすい
別の数列が並ぶ。数列
の初歩的な授業だと、下側を数列{B(n)}などとおくけど、慣れて来るとこの
程度の数列にそんな面倒な置き換えはしない。下側の第n項は4のn-1乗
だから、上側にある元の数列だと、A(n)=(4のn-1乗)+1。
ちなみに、最初の行でうっかり「DIM A(6)」と書いてしまうと、下のように、
エラーメッセージが現れる。
「Subscript out of range」とは、「数列の添字(番号)が範囲外」という
意味で、その間違いが生じてる第50行の番号が反転されてる。どこでおか
しくなるのか、指摘してくれてるわけだ。
☆ ☆ ☆
続いて、教科書の練習31を少しだけ変えた問題。
初項3、漸化式A(n+1)=3A(n)-4の場合について、最初の7項目を表示。
ただし、前に書い
た一般的な二項間
漸化式を意識した
書き方にした。
これなら初項とp、
qの値を変えるだ
けで、すべての場
合に使えることに
なる(p≠1)。
実行結果は左の通
り。下側に3のn
乗を表す簡単な数列
が出来てる。結論としては、A(n)=(3のn-1乗)+2。
☆ ☆ ☆
続いて、p.198の最初、問題11。「10個の数値を入力したとき、入力した
純とは逆の順に数値を表示するプログラムを、配列変数を用いて作れ」。こ
れは漸化式の問題ではないけど、初歩的な数列の問題だから解いてみた。
10個の入力を、数
列みたいに並べて
一気に済ませよう
としたけど、今の所
は成功してない。
1個ずつ、10か
ら1までを入力す
ると、逆順で1か
ら10まで並んだ。
ちなみに第50行
を20行と同じに
して、第60行を
A(11-N)をPR
INTさせても同じ結果になる。
☆ ☆ ☆
最後に、教科書p.198の問題について。
A(n)が奇数なら、 A(n+1)=3A(n)+1
A(n)が偶数なら、 A(n+1)=A(n)/2
まず(1)では、初項が1~10の時の数列をそれぞれ表示して、いずれも、あ
る項以降が1、4、2の繰返しになることを確認する。
最後なので、二重ループと改行を使って、第20項までを一気に並べてみた。
初項が7と9の
場合は、なかな
か1、4、2にな
らない。
人間の手作業だ
と大変だけど、プ
ログラムの場合は
配列変数の範囲を
大きく取ればいい
だけ。右端の第20
項辺りで、すべて
1、4、2となる。
(2)では、数列に1が現れたところで実行を停止し、その1が何番目の項であ
るのかも表示するプログラムを作成。初項27を入力して実行する。私が作っ
たのは、下の通り。10項ごとに改行して、何番目なのかを分かりやすくした。
A(1)=27の場合はなかなか1にならず、第112項でようやく1となった。
これは並みの人間だと、途中で挫ける作業だろう。最後の行に、「112」と
表示されてる。
これで『数学A』の教科書は一応終了だが、まだ消化不良なので、もう少し
問題演習を重ねた後、『数学B』の記事を書く予定。今日はこの辺で。。☆彡
(計 2684字)
| 固定リンク | 0
「数学」カテゴリの記事
- 3年連続中止の数学甲子園の2019年・予選問題、2つのAIに解かせると大苦戦(ChatGPT4、Wolfram Alpha)(2023.09.15)
- パズル「絵むすび」29、小学生向けのカンタンな解き方(難易度4、ニコリ作、朝日新聞be、2023年8月26日)(2023.08.28)
- パズル「絵むすび」28、AI(ChatGPT4)では解けないので、人間の解き方(難易度4、ニコリ、朝日、23年6月10日)(2023.06.10)
- ChatGPT-4、パズル「推理」の解答に大苦戦♪(難易度5、ニコリ作、朝日be、23年5月27日、表は使わない)(2023.05.27)
- パズル「絵むすび」27、解き方とコツ、考え方(難易度4、ニコリ作、朝日新聞be、2023年4月8日)(2023.04.09)
「プログラミング」カテゴリの記事
- Python(パイソン)入門2~高校副教材とオンライン環境Bit Arrow、さらにAI(ChatGPT4)も使用(2023.09.06)
- Python(パイソン)入門1~人気プログラミング言語を高校教科書副教材(東京書籍)とオンライン環境Bit Arrowで簡単に(2023.02.28)
- 令和3年度、文科省・情報活用能力調査の調査問題例と正答(小中高、4年1~2月)、感想とレビュー(2022.12.28)
- C言語入門5~選択構造、if文、else、switch-case文による多岐分岐(2021.11.20)
- 将棋AIも採用、ミニ・マックス法の無駄を省いた α β(アルファ・ベータ)法と α 値、β 値の具体例の解説(2021.11.18)
コメント