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
「数学」カテゴリの記事
- パズル「絵むすび」32、解き方とコツ、考え方(難易度4、ニコリ作、朝日新聞be、2024年11月9日)(2024.11.09)
- 中国アリババ世界数学コンテスト2023予選、火の玉のコントロール、球状閃電(球電:ball lightening)の問題と解説(2024.11.05)
- NOT回路(ゲート)、AND回路、OR回路を組み合わせた設計、論理回路の問題の解き方、考え方~ 高校『情報 Ⅰ 』(2024.11.02)
- Python(パイソン)入門4~ランダムなサイコロの目の予想、数値データのリストの処理(ChatGPT4oも使用)(2024.09.20)
- パズル「絵むすび」31、解き方とコツ、考え方(難易度4、ニコリ作、朝日新聞be、2024年9月14日)(2024.09.15)
「プログラミング」カテゴリの記事
- Python(パイソン)入門4~ランダムなサイコロの目の予想、数値データのリストの処理(ChatGPT4oも使用)(2024.09.20)
- ps5.js Web Editor(Processing)のプログラミングでお絵描き、アニメーション作成~ 高校教科書『情報 II 』(東京書籍)(2024.08.22)
- Python(パイソン)入門3~乱数を利用した、じゃんけんゲーム作成など(生成AI・ChatGPT4も使用)(2023.10.06)
- Python(パイソン)入門2~高校副教材とオンライン環境Bit Arrow、さらにAI(ChatGPT4)も使用(2023.09.06)
- Python(パイソン)入門1~人気プログラミング言語を高校教科書副教材(東京書籍)とオンライン環境Bit Arrowで簡単に(2023.02.28)
コメント