function p = lagrange(x, y)
% p = lagrange(x, y)
% 其中x和y是向量,p是返回的多項式向量
% m獲取x的個數
m = length(x);
for k = 1:1:m
% 表示乙個插值函式的起始值
v = 1;
for i = 1:1:m
if k ~= i
% 注意: 以後凡是在遇到乙個在數學上是 x + 1 等包含著變數的表示式, 在matlab中同時使用多項式來表示, 也就是表示成 [1, 1], 當然這個是在只有乙個變數的情況下]
% x(k) - x(i), 為分母, 分子 conv(v, [1, x(i)])是乙個多項式, 最後將得到的多項式賦給v, 這個就是我們在上面寫到的拉格朗日的插值函式的使用累乘符號表示式在matlab中的表達而已
v = conv(v, [1, x(i)])/ (x(k) - x(i));
endend
% 當k為k的時候得到的一組拉格朗日插值函式儲存起來
l(k, :) = v;
end% 得出最終的多項式
p = y * l;
posted @
2018-11-01 15:45
andrew_chan 閱讀(
...)
編輯收藏
拉格朗日插值法
拉格朗日插值法 拉格朗日插值法可以幫助我們解決以下的問題 已知x取值0,1,1,2時,f取值2,2,0,6 求x 3時f的值。示例1 intxs intys f 3 intval lagrangepolynomial 3,xs,ys staticint lagrangepolynomial intx...
拉格朗日插值法
模板題 給出n nn個點 xi yi x i,y i xi y i 讓你確定這個n 1 n 1n 1次方程並代入求值 這個有三種求法 第一種是差分法,只適用於xi ix i i xi i的情況,就是不斷做差分直到序列變成乙個定值就可以求出所有項的係數,複雜度o n 2 o n 2 o n2 第二種是...
拉格朗日插值法
當 x 的取值不一定是 1 n 連續的時候,我們只能 o n 地插出結果 洛谷 p4781 include define ll long long using namespace std const int n 2e3 10 const int mod 998244353 int x n y n l...