ニュートン法で平方根を求める

説明

ニュートン法で平方根を求めます。

ニュートン法の詳細については以下のページなどを参照してください。収束が早いので低速なコンピューターでも高速に計算できます。なお、このプログラムでは精度的な限界を利用して前回と求めたのが同じ値なら計算終了としています。科学計算で精度を必要とする場合はdo...loopではなくforループを使った方がよいでしょう。

ニュートン法とは - Wikipedia

Studioで試す

以下のリンクから Jasmine Tea でこのサンプルプログラムを Studio 画面で開いて実際に試すことができます。プログラムを実行したいときは、エディターの右下にある青色の「実行」ボタンを押してください。

Studio で開く

プログラム

// ニュートン法で平方根を求める
cls
input "平方根を求める値を入れてください!",n
x=n
old=0
do
  x=(1/2)*(x+n/x)
  print x
  if x=old then
    end
  end if
  old=x
loop

解説

2行目で画面を消去しています。

3行目でユーザーからの数値の入力を待ちます。

4行目で求める平方根の値を設定しています。ここでは入力された値を初期値としています。

5行目では前回計算した値を入れる変数を初期化しています。

6〜13行目が繰り返しで、平方根を求める部分になります。

7行目が計算式です。この計算式はwikiなどに記載されていますので、そちらを参照してください。

8行目で計算した値を表示しています。

9〜11行目で前回計算した値と同じかどうかを調べています。同じ値であれば、これ以上計算する必要がないのでプログラムを終了させます。

12行目で計算した値を変数に入れ前回の値としています。