Quick BASICの練習(7)~関数値の計算、方程式の近似解
今週から一気に、週間1万字制限まで絞り込んで、引越し荷物の片付けを最
優先にする。こうなると、記事1本の字数は長くても2000字前後だから、プ
ログラミング記事には手頃だろう。
そこで、三連休最終日の今日は、9本目をアップしとこう。これまでの関連記
事8本(2本+6本)は以下の通り。ほぼ完全に知識ゼロ、ソフトも無い初心
者状態からスタート。必要なら過去記事に戻って読むことをお勧めする。
初めてのプログラミング♪
初めてのプログラミング(2)~計算その他、簡単なバッチファイル
・・・・・・・・・・・・・・・・・・・・
Quick BASICのダウンロード、ダイレクトモード(Immediate)入力と計算
Quick BASICの練習(2)~プログラム・モードでの入力&実行
Quick BASICの練習(3)~REM 文、GOTO 文、IF 文、各種トラブル・・
Quick BASICの練習(4)~IF文、FOR文、NEXT文とループ(繰返し)
Quick BASICの練習(5)~二重ループ、流れ図(フローチャート)
Quick BASICの練習(6)~DIM文と配列変数(添字つき変数)
テキストはいつもの通り、一昔前の高校数学の教科書、数研出版『数学A』
(1995年版)。教科書のままだと上手く行かないこともあるし、勉強にもなら
ないので、マイナーチェンジや試行錯誤を繰り返すことになる。
☆ ☆ ☆
ではまず、前回の復習から。教科書p.190の練習問題26を解いてみよう。
「5個の数値を入力した
とき、それらの平均値m
を計算し、次に入力した
数値からmを引いた値
を、入力順に表示する
プログラムを作れ。」
直前の例24を参考に
して作成したブログラム
が上図。行番号を付け忘れたが、大丈夫だった。まずDIM文で、配列変数X
の次元(DIMENSION)を5と設定。「DEV」とは「偏差」(DEVIATION)、つま
り、注目してる値から、何か特別な値(しばしば平均値:mean)を差し引いた
値で、これを用いて「標準偏差」や「偏差値」も計算される。
実行して、5個の配列変数X(1),X(2),
X(3),X(4),X(5)の値として、順に6、
7、8、9、10を入力。
すると、WA(和)=40、m(平均)=8
だから、DEV(偏差)=-2,-1,0,
1,2となる。
「DEV」に「(N)」をつけたのは失敗で、本当は「DEV(6)=」などの表示にし
たかった。そのやり方は、下で登場する。
☆ ☆ ☆
続いて新しい話、「関数値の計算」。多数の実数 x に対して、関数 f(x)の値を
計算できれば、方程式 f(x)=0 の解を推測できる。さらに、動きが分かる簡
単な f(x)の場合なら、その推測は近似解となる。
まず、例25を少し簡単にした問題。関数 f(x)=3x²+4x+1(p≦x≦q)につ
いて、定義域をn等分するxの値それぞれに対する f の値を表示させるプログ
ラム。ただし、p、q、nは後から色々と入力できるようにする。

第60行、「”f(”;X,”)=”」という書き方は初登場。引用符で囲まれた部分は
そのまま表示されるのが基本だが、引用符の中で再び引用符を使うと、そこだ
けは、コンピューター計算で使われた個別の値が表示される。あと、セミコロン
とコンマでXを挟むことで、実行した時のXの表示が縦に揃うらしい。
実行して、p、q、nの
値として1、2、10を
入力すると、左のよう
に表示された。
なぜか、f(1.1)の
値が9.030001と
なってるが、本来は
9.03のはず。約
1000万分の1の相対誤差だから実害は僅かとはいえ、理由は不明。HELP
ファイルは壊れてるし、今後の課題としとこう。
日経PC21のサイトでエクセルの説明を見ると、演算誤差とか浮動小数点とい
う言葉を使って説明されてる感じだが、次回以降に扱う予定。
☆ ☆ ☆
3問目は方程式への応用で、p.192の問11を少し変えたもの。定義域の分
割点における2次関数 f(x)の値を調べて、2次方程式 f(x)=0の実数解を
大まかに推測する。ただし、f(x)の係数a、b、c、定義域の両端(p、q)や、何
分割するか(n)は、後から色々と入力できるようにする。

実行して、教科書
の設定通り、まず
a=2、b=-7、
c=4を入力。次
にp=0、q=1、
n=10を入力す
ると、また細かい
誤差(絶対値で
1000万分の1レ
ベル)が発生。あ
と、「0.1」とかの先頭の「0」は省略されるようだ。f(0.7)の値は、
0.08000005という意味で、「E-02」は「10の-2乗倍」を表す。本来の
正しい値は0.08だ。
いずれにせよ、x=0.7とx=0.8の間でf(x)の符号が+から-に変化する
から、f(x)=0の実解が1つあるのが分かる(2つではない)。近似解としては、
0.7でもいいし、0.72くらいでもいい。正確には(7-√17)/4だから、約
0.719。
☆ ☆ ☆
最後に、p.193の例26を少し変えた問題。関数g(x)=x²-ax(0≦x≦2)の
最小値を大まかに探す問題。定義域を20等分して、一番小さい値と、それを
与えるxを求める。aは後で入力。

最小値MINは最初、0(x=0の時)からスタート。それを下回る関数値Yが出て
来たら、それを新たな最小値とする(IF~THEN~の構文)。最小値を与えるx
の値Zも、0からスタートして更新していく。
実行して、a=2を代入す
ると、左の通り。最小値
は-1で、それを与える
xは1と出た。
平方完成すると、g(x)=x²-2x=(x-1)²-1だから、それらは数学的に正確
な答となってる。
それは単に、私が問題の設定を調整したからであって、一般には、100等分で
も1000等分でも、近似的な解しか求まらない。ただし、近似の精度が高ければ、
十分に実用的な解となる。
それでは、今回はこの辺で。。☆彡
(計 2434字)
cf. Quick BASICの練習(8)~素数の判別、エラトステネスのふるい
Quick BASICの練習(9)~数列の二項間漸化式と固有値、一般項
(追記 71字 ; 合計 2505字)
| 固定リンク | 0
「数学」カテゴリの記事
- 長方形の紙を多数の直線で切り分けると、いくつの部分になるか~灘中学校2026年入試、算数1・問題4の考え方・解き方(2026.02.12)
- 3人と4人のリーグ戦の関係、優勝決定の抽選つき~ 2026年共通テスト・数学 Ⅰ A・第4問(場合の数、確率)の解き方(2026.02.03)
- デジタル画像処理、色変換・ハメ込み合成と、NOT・AND・OR演算~ 2026年共通テスト・情報 I ・第2問B(2026.01.21)
- 2026年共通テスト・数学 Ⅰ A・第1問〔1〕、パラメーター入りで定義された自然数の集合の解き方&つなぎラン(2026.01.19)
- ルービック・キューブみたいな立体図形、適度な難問~海陽中等教育学校2026年度特別給費生入試、算数・問題4の解き方(2026.01.07)
「プログラミング」カテゴリの記事
- 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)


コメント