F#を触ってみたのですが
Posted: 2015年2月22日(日) 00:12
ラグランジュ補間をやってみようと思って自分なりに調べながら書き書きしてたのですが、どうもよくわからなくなったので
エラーが出たりしたのですが何をどう直せばいいのかよくわからないもので、何がどう間違っているのか
// Learn more about F# at http://fsharp.org
// See the 'F# Tutorial' project for more help.
let DataX=[|1.0;2.0;3.0;4.0|]
let DataY=[|4.5;5.7;7.3;8.5|]
let rec pi1 x i re j=
if j==4 then re
elif i==j then pi1 x i re j+1
else pi1 x i (re*x-re*DataX.[j]) j+1
let rec pi2 (i re j)=
if j>==4 then re
elif i==j then pi2 i re j+1
else pi2 i re*(DataX.[j]-DataX.[i]) j++
let fl (x i)=
pi1 x i 1 0 / pi2 i 1 0
let rec Lagrange (x sum i)=
if i==4 then sum
else Lagrange x sum+(fl x i) i+1
[<EntryPoint>]
let main argv =
printfn "%A\n\n" argv
printf "%f" Lagrange 1.4 0 0
0 // return an integer exit code