lagrangewucha.m
来自「数值计算实践是我们必备的一门学科!这是我在学习之余利用MATLAB编写的程序」· M 代码 · 共 20 行
M
20 行
function [y,R]=lagranzi(X,Y,x,M) %构造拉格朗日函数
%X为节点的横坐标向量;
%Y为节点的纵坐标向量;
%x为最终所要求的节点;
n=length(X);m=length(x); %n为节点X的长度,m为插值点x的长度
for i=1:m %i取从1到m的值,即对i进行循环
z=x(i);s=0.0; %令z等于每一个插值点,s取初值为0.0
for k=1:n %k取从1到n的值,即对k进行循环
p=1.0;q1=1.0;c1=1.0; %p取初值为1.0,q1取值为1.0,c1取初值为1.0
for j=1:n %对j进行循环,从1到n进行循环
if j~=k %当j不等于k时
p=p*(z-X(j))/(X(k)-X(j));%得出拉格朗日的式子的系数
end
q1=abs(q1*(z-X(j)));c1=c1*j;
end
s=p*Y(k)+s; %得出拉格朗日的插值函数
end
y(i)=s;
end
R=M*q1/c1; %R为插值余项
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?