このディレクトリの索引

http://pc12.2ch.net/test/read.cgi/tech/1276810079/224 # [1] 授業単元: 解析 # # [2] 問題文(含コード&リンク): # x=1.0, 1.1,...,3.9, 4.0が与えられた時のlogxの値をラグランジュ補間で求め、 # その近似値とlogxの真値をそれぞれ出力せよ。 # また、求めた値と真値との誤差(絶対値)も求め、一次多項式の誤差と2次多項式の誤差を # それぞれ出力せよ。 # 標本値を採取(LX,LY) :- findall(X,(between(10,40,N),X is N / 10),LX), findall(Y,(member(V,LX),Y is log(V)),LY). ラグランジェ補間(X,Y) :- 標本値を採取(LX,LY), ラグランジェ補間(LX,LY,X,0.0,Y). ラグランジェ補間(_,_,[],[],_,Y,Y) :- !. ラグランジェ補間([B|R1],[C|R2],X,A,Y) :- ラグランジェ補間(LX,[B|R1],X,1.0,U), A2 is A + U * C, ラグランジェ補間(R1,R2,X,A2,Y). ラグランジェ補間([],_,_,U,U) :- !. ラグランジェ補間([C|R1],[B|R2],X,D,U) :- \+(R1=R2),!, D2 is D * (X-C) / (B-C), ラグランジェ補間(R1,[B|R2],X,D2,U). ラグランジェ補間([C|R1],[B|R2],X,D,U) :- ラグランジェ補間(R1,[B|R2],X,D,U).