ZKX's LAB

如何利用matlab解决插值拟合中的龙格现象 拉格朗日插值法求龙格函数matlab

2020-07-20知识15

请解释一下这个拉格朗日插值的matlab函数实现,希望详细些。。各个参数的意义也解释一下啊。。一头雾 教材上学过的,建议跟着教材看就能明白了。做了一个测试,希望有所帮助。代码:%用matlab编写拉格朗日插值算法的程序,并以下面给出的函数表为数据基础,在整个插值区间上采用拉格朗日插值法计算f(0.6),写出程序源代码,输出计算结果x-2.15-1.00 0.01 1.02 2.03 3.25y 17.03 7.24 1.05 2.03 17.06 23.05function main()clc;x=[-2.15-1.00 0.01 1.02 2.03 3.25];y=[17.03 7.24 1.05 2.03 17.06 23.05];x0=0.6;f=Language(x,y,x0)function f=Language(x,y,x0)求已知数据点的拉格朗日插值多项式已知数据点的x坐标向量:x已知数据点的y坐标向量:y插值点的x坐标:x0求得的拉格朗日插值多项式或在x0处的插值:fsyms t l;if(length(x)=length(y))n=length(x);elsedisp('x和y的维数不相等!');return;检错endh=sym(0);for(i=1:n)l=sym(y(i));for(j=1:i-1)l=l*(t-x(j))/(x(i)-x(j));end;for(j=i+1:n)l=l*(t-x(j))/(x(i)-x(j));end;h=h+l;endsimplify(h);if(nargin=3)f=subs(h,'t',x0);计算插值点的函数值elsef=collect(h);f=vpa(f,6);将插值多项式的系数化成6位精度的小数end结果:f=0.0201>;>;拉格朗日插值法matlab程序 syms t;if(length(x)=length(y))n=length(x);elsedisp('x和y的维数不相等!');return;end%检错f=0.0;for(i=1:n)l=y(i);for(j=1:i-1)l=l*(t-x(j))/(x(i)-x(j));end;for(j=i+1:n)l=l*(t-x(j))/(x(i)-x(j));计算拉格朗日基函数end;f=f+l;计算拉格朗日插值函数simplify(f);化简if(i=n)if(nargin=3)f=subs(f,'t',x0);计算插值点的函数值elsef=collect(f);将插值多项式展开f=vpa(f,6);将插值多项式的系数化成6位精度的小数endend

#matlab函数#插值法#fprintf#拉格朗日插值法#sor

随机阅读

qrcode
访问手机版