Python 2分法による平方根算出のソースを表示
新しいページはコチラ
移動:
案内
,
検索
== ''' プログラム ‘'' == 平方根を手計算するには2分法というものを使いますが手計算を実際に手で計算するのは骨が折れるので、プログラムでその手順を追うための物です。あまりプログラムは得意ではないので、綺麗なコードとは言えませんが、一例を示しておきます。冒頭にあるnInputに算出したい平方根の数値を与えると2分法をnCntに与えられた深さまで算出を繰り返します。nCntが大きいほど近似値の精度が高くなります。 <syntaxhighlight lang="python"> import numpy as np nInput = 3 nScan = 1 while nInput > np.power(nScan, 2) : nScan += 1 print('nPrev: ', nScan - 1,'nNext: ', nScan) nPrev = nScan -1 nNext = nScan if nInput - np.power(nPrev, 2) < np.power(nNext, 2) - nInput: fNear = nPrev else: fNear = nNext print('nNear: ', fNear) fSplit = nInput / fNear fSplitMedian = (fSplit + fNear) / 2 fValue = (fNear + fSplitMedian) / 2 fPrepreValue = 0 fPrevValue = 0 nCnt = 12 print(nCnt,' fSplitMedian: ', fSplitMedian, 'fValue: ', fValue, 'fSplitMedian^2', np.power(fSplitMedian, 2), 'fValue^2: ', np.power(fValue, 2)) def Nibun_Func(nInput,fValue,fSplitMedian,fPrepreValue,fPrevValue,nCnt): if nInput > np.power(fValue, 2): str = '#' fNear = fValue fValue = (fNear + fSplitMedian) / 2 nCnt -= 1 else: str = '+' fNear = fPrepreValue fSplitMedian = fValue fValue = (fNear + fSplitMedian) / 2 if nInput < np.power(fValue, 2): fValue = fPrepreValue fPrepreValue = fPrevValue fPrevValue = fValue print(str,nCnt,' fSplitMedian: ', fSplitMedian, 'fValue: ', fValue, 'fSplitMedian^2', np.power(fSplitMedian, 2), 'fValue^2: ', np.power(fValue, 2)) if nCnt > 0: Nibun_Func(nInput,fValue,fSplitMedian,fPrepreValue,fPrevValue,nCnt) Nibun_Func(nInput,fValue,fSplitMedian,fPrepreValue,fPrevValue,nCnt) </syntaxhighligt>
Python 2分法による平方根算出
に戻る。
個人用ツール
ログイン
名前空間
ページ
議論
変種
表示
閲覧
ソースを表示
履歴表示
操作
検索
案内
メインページ
コミュニティ・ポータル
最近の出来事
最近の更新
おまかせ表示
ヘルプ
ツールボックス
リンク元
関連ページの更新状況
特別ページ