Solve:二分法

2016-07-06 :  PCクリニック
本文の前に、
-・・・ -・-
現時点での blogramのランクインカテゴリは、
7、2、0、0、1、 0、0、0、0、0(40)で、換算ポイント 88pt 。
「Perl」「化学業界」「硝子業界」「FM COCOLO」「グルコサミン」「Python」、
「Firefox」bg値変動。「C言語」「e-radio」「FM青森」変化無し。
・-・ - -・

さて、本文。

先月(2016-06-24)の記事「SciLua:Solve
で、方程式の根を求める方法について書いているが、・・・

更に「Lua Solve Equation」で検索したら、
wxLua / SVN / [r3] /trunk/wxLua/modules/lua/test/bisect.lua
を見つけた。

この“ bisect.lua ”プログラムは、

  bisection method for solving non-linear equations

つまり?

  非線形方程式を解くための二分法

じゃなくて、

  非線形方程式を、二分法で解く。

でしょうか?


このページは、
“wxLua”処理系を導入した後でのテストプログラムですね。


何はともあれ、このコードを頂きました。
----- test.gsl -----
delta=1e-6 ----- 収束判定値
function bisect( f, a, b, fa, fb )
local c=(a+b)/2
if c==a or c==b or math.abs(a-b) local fc=f(c)
if fa*fc<0 then return bisect(f,a,c,fa,fc)
else return bisect(f,c,b,fc,fb)
end
end

function solve( f, a, b ) return bisect(f,a,b,f(a),f(b)) end
----- find root f(x)=0 in [a,b], needs f(a)*f(b) < 0

x, e = solve( |x| math.cos(x)-x, 0, 1 ) -- サンプル式
print( x, e ) ----- 根(0.73908…), 残差(9.5367…e-007)
OKですね。(当然か?)

因みに、
<紙>のマシンでは、0.1mS 未満でした。

前回の“SciLua”でも似たような速さ。(これも当然か?)


本日はここまで。


Lua ( GSL Shell ) 学習は続く。


見ていただいた序でとは厚かましい限りですが、
お帰りに投票して頂けるとなお嬉しいです。 ⇒ blogram投票ボタン


160609
関連記事
スポンサーサイト

コメントの投稿

管理者にだけ表示を許可する

おきてがみ/blogram
blogram投票ボタン



おきてがみ

最新記事
カレンダー
03 | 2017/04 | 05
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 - - - - - -
月別アーカイブ
カテゴリ
最新コメント
検索フォーム
リンク
プロフィール

<紙>

Author:<紙>
ようこそ。
「パソコンヲタクの雑記帳」
もろもろなことを綴っています。
パソコン ヲタクってねくら?
画像は kami でなく kani です。

カウンター(fc2、i2i) /Google Analytics


i2i(from 2010-08-24)
Total =
Today  =  
Yesterday=
アンチエイジング

Google Analytics
ブックマーク