見た目の前方参照(新方式):応用例

2017-05-01 :  PCクリニック
Python、C言語、Perl、グルコサミン、Firefox
先日(2017-04-12)の記事「GSL Shell 学習:見た目の前方参照?(新方式)」の
応用として、
先日(2017-04-05)の記事「GSL Shell 学習:Fitting サブ(改)」で書いた、
'SUB_GSL_Fit.lua' サブプログラムを、
それを利用するプログラムの後段に追加するようにしてみた。

---- GSL_Fit_init_After.gsl -----
F=io.open(arg[0]); w=F:read('*a'); F:close(); fnd=string.find
m='--ini'; _,k=fnd(w,m..'s',1,true); j=fnd(w,m..'e',k,true)
assert(load( string.sub(w,k+2,j-1) ))()
----------- 以下部分が本体 -----------
X = matrix.vec{ ・・・・・ }
Y = matrix.vec{ ・・・・・ }
------- Y ~ exp( -b * log(X) + c ) で近似
--------------------------------------
s = GSL_Fit( X, Y, 'b,c', 'exp(-b*log(x)+c)', '1,0', '-log(x)*exp(-b*log(x)+c)', 'exp(-b*log(x)+c)')
--------------------------------------
b, c = s.x[1], s.x[2] -- 求めた係数

----------- 以下初期化部分 -----------
os.exit(0) ----- これは必須
--inis
exp=math.exp; log=math.log
fmt = string.format
function GSL_Fit( x_, y_, k_, f_, p_, ... )
X__, Y__ = x_, y_ ----- これは local ではダメ
local pj = {...}
local n, jj = #x_, #pj
local st = 'function fdf( k, f, J )\n'
.. fmt( ' for i=1,%d do\n', n )

st = st .. fmt( ' local %s = k[1]', k_ )
for j=2,jj do st = st..fmt( ', k[%d]', j ) end
st = st .. '\n local x, y = X__[i], Y__[i]\n'
st = st .. fmt( ' if f then f[i] = ( %s - y ) end\n', f_ )
st = st .. ' if J then\n'
for j=1,jj do st=st..fmt( ' J:set( i, %d, %s )\n', j, pj[j] ) end
st = st .. 'end; end; end\n'
st = st .. fmt( 's_ = num.nlinfit{ n=%d, p=%d }\n', n,jj )
st = st .. fmt( 's_:set( fdf, matrix.vec{%s} )\n', p_ )

assert( load( st ) )() ----- function fdf 定義

for i=1, 100 do
s_:iterate()
if s_:test( 0, 1e-8 ) then break end
end
return s_
end
--inie
--- 以下は 自由領域:主にコメント用 ---

-- コメント

こんな感じ?

  assert( load( ~ ) )()

の2重(?)も可能ですネ。・・・当たり前?


本日はここまで。


Lua ( GSL Shell ) 学習は続く。


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


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

コメントの投稿

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

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



おきてがみ

最新記事
カレンダー
04 | 2017/05 | 06
- 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 31 - - -
月別アーカイブ
カテゴリ
最新コメント
検索フォーム
リンク
プロフィール

<紙>

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

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


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

Google Analytics
ブックマーク