はじめました。SmallBasic塾-分からないことはメールで。学習状況はノートで。結果はプログラムで。そして、チャットでつながる。待ち合った学習方法で、間違ったプログラミングスタイルにならないために

Top > Small Basic > 関数グラフを描画する

小学生・中学生からはじめられる
Small Basic
テキストベースの初心者向けプログラミング言語 

関数グラフを描画する

[数学系の座標でグラフを描く]の座標系を使って、今度は関数y = f(x)のグラフを-1< x < 1, -1 < y < 1 の範囲で描いてみましょう。

今回は

とします。

Small Basicでは、ピクセル(点)か直線しかサポートされていないので、
y = f(x) の グラフを描くためには,次のステップを踏む必要があります。

  • x(1), x(2), x(3), ..., x(m) を -1 < x(1) < x(2) < x(3) < .... < x(m) < 1 を満たす数にとる。
  • f(x(1)), f(x(2)), f(x(3)), ..., f(x(m)) を計算し,y(i ) = f(x(i)) ( i=1,2,3,...,m ) とする。
  • 2点 (x, y) = (x(i), y(i)), (x, y) = ((x(i+1), y(i+1)) ( i = 1,2,3,...,m-1) の間に直線を引く。

つまり,y = f(x) のグラフを下の図のように,直線で近似するのです。

なお、m が十分大きければ(つまり,-1 < x < 1 の範囲の分割が十分小さければ)、
BASIC で描いたグラフは本当のグラフに十分近いと考えて良いでしょう。

y = f(x) のグラフを描くプログラムは次のようになります。


画像をダウンロードすると読みやすくなります。

 

実行結果

このプログラムを実行すると次の様になります。 

 

デバッグの方法

計算式が正しいかどうかを検証する場合、ソースコードをカットしてテキストウィンドウに計算結果を表示するといいでしょう。

extWindow.WriteLine()を使って、計算結果を表示させます。

Small Basicにはデバッガ機能はありません。したがって、実行状態を調べるためには
テスト用のメッセージを埋め込んだり、メッセージボックスを追加して、内容を確認したり
実行状態を追跡するといった方法で対策するしかありません。

dx = 0.0202020202020202020202020202
x[1] = -0.9797979797979797979797979798
x[2] = -0.9595959595959595959595959596
x[3] = -0.9393939393939393939393939394
x[4] = -0.9191919191919191919191919192
x[5] = -0.8989898989898989898989898990
x[6] = -0.8787878787878787878787878788
x[7] = -0.8585858585858585858585858586
x[8] = -0.8383838383838383838383838384
x[9] = -0.8181818181818181818181818182
x[10] = -0.7979797979797979797979797980
x[11] = -0.7777777777777777777777777778
x[12] = -0.7575757575757575757575757576
x[13] = -0.7373737373737373737373737374
x[14] = -0.7171717171717171717171717172
x[15] = -0.6969696969696969696969696970
x[16] = -0.6767676767676767676767676768
x[17] = -0.6565656565656565656565656566
x[18] = -0.6363636363636363636363636364
x[19] = -0.6161616161616161616161616162
x[20] = -0.5959595959595959595959595960
x[21] = -0.5757575757575757575757575758
x[22] = -0.5555555555555555555555555556
x[23] = -0.5353535353535353535353535354
x[24] = -0.5151515151515151515151515152
x[25] = -0.4949494949494949494949494950
x[26] = -0.4747474747474747474747474748
x[27] = -0.4545454545454545454545454546
x[28] = -0.4343434343434343434343434344
x[29] = -0.4141414141414141414141414142
x[30] = -0.3939393939393939393939393940
x[31] = -0.3737373737373737373737373738
x[32] = -0.3535353535353535353535353536
x[33] = -0.3333333333333333333333333334
x[34] = -0.3131313131313131313131313132
x[35] = -0.2929292929292929292929292930
x[36] = -0.2727272727272727272727272728
x[37] = -0.2525252525252525252525252526
x[38] = -0.2323232323232323232323232324
x[39] = -0.2121212121212121212121212122
x[40] = -0.1919191919191919191919191920
x[41] = -0.1717171717171717171717171718
x[42] = -0.1515151515151515151515151516
x[43] = -0.1313131313131313131313131314
x[44] = -0.1111111111111111111111111112
x[45] = -0.0909090909090909090909090910
x[46] = -0.0707070707070707070707070708
x[47] = -0.0505050505050505050505050506
x[48] = -0.0303030303030303030303030304
x[49] = -0.0101010101010101010101010102
x[50] = 0.0101010101010101010101010100
x[51] = 0.0303030303030303030303030302
x[52] = 0.0505050505050505050505050504
x[53] = 0.0707070707070707070707070706
x[54] = 0.0909090909090909090909090908
x[55] = 0.1111111111111111111111111110
x[56] = 0.1313131313131313131313131312
x[57] = 0.1515151515151515151515151514
x[58] = 0.1717171717171717171717171716
x[59] = 0.1919191919191919191919191918
x[60] = 0.2121212121212121212121212120
x[61] = 0.2323232323232323232323232322
x[62] = 0.2525252525252525252525252524
x[63] = 0.2727272727272727272727272726
x[64] = 0.2929292929292929292929292928
x[65] = 0.3131313131313131313131313130
x[66] = 0.3333333333333333333333333332
x[67] = 0.3535353535353535353535353534
x[68] = 0.3737373737373737373737373736
x[69] = 0.3939393939393939393939393938
x[70] = 0.4141414141414141414141414140
x[71] = 0.4343434343434343434343434342
x[72] = 0.4545454545454545454545454544
x[73] = 0.4747474747474747474747474746
x[74] = 0.4949494949494949494949494948
x[75] = 0.5151515151515151515151515150
x[76] = 0.5353535353535353535353535352
x[77] = 0.5555555555555555555555555554
x[78] = 0.5757575757575757575757575756
x[79] = 0.5959595959595959595959595958
x[80] = 0.6161616161616161616161616160
x[81] = 0.6363636363636363636363636362
x[82] = 0.6565656565656565656565656564
x[83] = 0.6767676767676767676767676766
x[84] = 0.6969696969696969696969696968
x[85] = 0.7171717171717171717171717170
x[86] = 0.7373737373737373737373737372
x[87] = 0.7575757575757575757575757574
x[88] = 0.7777777777777777777777777776
x[89] = 0.7979797979797979797979797978
x[90] = 0.8181818181818181818181818180
x[91] = 0.8383838383838383838383838382
x[92] = 0.8585858585858585858585858584
x[93] = 0.8787878787878787878787878786
x[94] = 0.8989898989898989898989898988
x[95] = 0.9191919191919191919191919190
x[96] = 0.9393939393939393939393939392
x[97] = 0.9595959595959595959595959594
x[98] = 0.9797979797979797979797979796
x[99] = 0.9999999999999999999999999998
x[100] = 1.0202020202020202020202020200
y[0] = 1
y[1] = 0.9600040812162024283236404449
y[2] = 0.9208244056728905213753698602
y[3] = 0.8824609733700642791551882461
y[4] = 0.8449137843077237016630956025
y[5] = 0.8081828384858687888990919294
y[6] = 0.7722681359044995408631772268
y[7] = 0.7371696765636159575553514948
y[8] = 0.7028874604632180389756147332
y[9] = 0.6694214876033057851239669422
y[10] = 0.6367717579838791960004081217
y[11] = 0.6049382716049382716049382716
y[12] = 0.5739210284664830119375573921
y[13] = 0.5437200285685134169982654832
y[14] = 0.5143352719110294867870625447
y[15] = 0.4857667584940312213039485767
y[16] = 0.4580144883175186205489235793
y[17] = 0.4310784613814916845219875523
y[18] = 0.4049586776859504132231404959
y[19] = 0.3796551372308948066523824100
y[20] = 0.3551678400163248648097132946
y[21] = 0.3314967860422405876951331497
y[22] = 0.3086419753086419753086419754
y[23] = 0.2866034078155290276502397715
y[24] = 0.2653810835629017447199265382
y[25] = 0.2449750025507601265177022753
y[26] = 0.2253851647791041730435669830
y[27] = 0.2066115702479338842975206612
y[28] = 0.1886542189572492602795633099
y[29] = 0.1715131109070503009896949291
y[30] = 0.1551882460973370064279155189
y[31] = 0.1396796245281093765942250791
y[32] = 0.1249872461993674114886236099
y[33] = 0.1111111111111111111111111112
y[34] = 0.0980512192633404754616875829
y[35] = 0.0858075706560555045403530252
y[36] = 0.0743801652892561983471074381
y[37] = 0.0637690031629425568819508214
y[38] = 0.0539740842771145801448831752
y[39] = 0.0449954086317722681359044996
y[40] = 0.0368329762269156208550147944
y[41] = 0.0294867870625446383022140598
y[42] = 0.0229568411386593204775022957
y[43] = 0.0172431384552596673808795021
y[44] = 0.0123456790123456790123456790
y[45] = 0.0082644628099173553719008265
y[46] = 0.0049994898479746964595449444
y[47] = 0.0025507601265177022752780329
y[48] = 0.0009182736455463728191000918
y[49] = 0.0001020304050607080910111213
y[50] = 0.0001020304050607080910111213
y[51] = 0.0009182736455463728191000918
y[52] = 0.0025507601265177022752780328
y[53] = 0.0049994898479746964595449444
y[54] = 0.0082644628099173553719008264
y[55] = 0.0123456790123456790123456790
y[56] = 0.0172431384552596673808795021
y[57] = 0.0229568411386593204775022956
y[58] = 0.0294867870625446383022140597
y[59] = 0.0368329762269156208550147944
y[60] = 0.0449954086317722681359044995
y[61] = 0.0539740842771145801448831751
y[62] = 0.0637690031629425568819508213
y[63] = 0.0743801652892561983471074379
y[64] = 0.0858075706560555045403530251
y[65] = 0.0980512192633404754616875828
y[66] = 0.1111111111111111111111111110
y[67] = 0.1249872461993674114886236097
y[68] = 0.1396796245281093765942250790
y[69] = 0.1551882460973370064279155187
y[70] = 0.1715131109070503009896949290
y[71] = 0.1886542189572492602795633097
y[72] = 0.2066115702479338842975206610
y[73] = 0.2253851647791041730435669828
y[74] = 0.2449750025507601265177022751
y[75] = 0.2653810835629017447199265380
y[76] = 0.2866034078155290276502397713
y[77] = 0.3086419753086419753086419751
y[78] = 0.3314967860422405876951331495
y[79] = 0.3551678400163248648097132944
y[80] = 0.3796551372308948066523824098
y[81] = 0.4049586776859504132231404957
y[82] = 0.4310784613814916845219875521
y[83] = 0.4580144883175186205489235790
y[84] = 0.4857667584940312213039485764
y[85] = 0.5143352719110294867870625444
y[86] = 0.5437200285685134169982654829
y[87] = 0.5739210284664830119375573918
y[88] = 0.6049382716049382716049382713
y[89] = 0.6367717579838791960004081213
y[90] = 0.6694214876033057851239669419
y[91] = 0.7028874604632180389756147329
y[92] = 0.7371696765636159575553514944
y[93] = 0.7722681359044995408631772265
y[94] = 0.8081828384858687888990919291
y[95] = 0.8449137843077237016630956021
y[96] = 0.8824609733700642791551882457
y[97] = 0.9208244056728905213753698598
y[98] = 0.9600040812162024283236404445
y[99] = 0.9999999999999999999999999996
y[100] = 1.0408121620242832364044485252
Press any key to continue... 

▲ページトップに戻る

【本を読んでもよくらからない】 … 個別指導でわかりやすくお教えします