SciLua:Solve

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

さて、本文。

先月末(2016-05-30)の記事「GSL Shell 学習:SciLua」では、

  ・・・・・
  ・・・・・
  これで、
  「SciLua - Scientific Computing with LuaJIT」サイトの中の

    sci.alg:vector and matrix algebra
    sci.diff:automatic differentiation

  にあるコードでは実行出来た。

    sci.root:root-finding algorithms

  にあるのは、“API”関数仕様だけなので、
  使いたいのだが、イマイチ学習不足で、・・・・・

  もう少し、学習しなければ!
  ・・・・・
  ・・・・・

と書いた。

その後の学習で、やっと使い方が分かった。
Sci.Root: Root Finding Algorithms
にある3つの“API”について。

  解があると思われる範囲を指定すること。
  即ち、f(x1) と、f(xu) は、異符号であること。
それと、
  導関数を指定すること。

ですね。


例として、

  x^2 - 3 * x + 2 = 0

を解いてみる。

local alg  = require 'sci.alg'
local root = require 'sci.root'

function stp( x, y ) ----- 収束判定
if math.abs(y)<0.0005 then return true
else return false
end
end

----- 1つ目の“root.ridders”
function f(x) return x^2-3*x+2 end ----- 対象の式
-- x,y,x1,xu,y1,yu = root.ridders( f, 0, 1.5, stp )
x = root.ridders( f, 0, 1.5, stp )
print( x ) -----> 1.000001196393 解の1つ。

x = root.ridders( f, 1.5, 2.25, stp )
print( x ) -----> 2.0000464382297 2つ目の解

----- 2つ目の“root.newton”では、戻り値が2つで、↓
function f1(x) return x^2-3*x+2, 2*x-3 end -- 2つ目に導関数
-- x,y,x1,xu,y1,yu = root.newton( f, 0, 1.5, stp )
x = root.newton( f1, 0, 1.5, stp )
print( x ) -----> 0.99999743999345 解の1つ。

----- 3つ目の“root.halley”では、戻り値は3つで、2つ目に加え↓
function f2(x) return x^2-3*x+2, 2*x-3, 2 end -- 3つ目に2次導関数
-- x,y,x1,xu,y1,yu = root.halley( f, 0, 1.5, stp )
x = root.halley( f2, 0, 1.5, stp )
print( x ) -----> 0.99999948799974 解の1つ。

-----------------------------------------------
----- おまけに、一寸複雑(?)な式

function g(x) return math.cos(x)-x end

x = root.ridders( g, 0, 1.5, stp )
print( x ) -----> 0.73908513026639
と云うコトでした。


本日はここまで。


Lua ( GSL Shell ) 学習は続く。


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


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

コメントの投稿

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

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



おきてがみ

最新記事
カレンダー
02 | 2017/03 | 03
- - - 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
ブックマーク