三次样条拟合范例
Python实现线性插值和三次样条插值的示例代码

Python实现线性插值和三次样条插值的⽰例代码(1)、函数y = sin(x)(2)、数据准备#数据准备X=np.arange(-np.pi,np.pi,1) #定义样本点X,从-pi到pi每次间隔1Y= np.sin(X)#定义样本点Y,形成sin函数new_x=np.arange(-np.pi,np.pi,0.1) #定义差值点(3)、样条插值#进⾏样条差值import scipy.interpolate as spi#进⾏⼀阶样条插值ipo1=spi.splrep(X,Y,k=1) #样本点导⼊,⽣成参数iy1=spi.splev(new_x,ipo1) #根据观测点和样条参数,⽣成插值#进⾏三次样条拟合ipo3=spi.splrep(X,Y,k=3) #样本点导⼊,⽣成参数iy3=spi.splev(new_x,ipo3) #根据观测点和样条参数,⽣成插值(4)、绘图##作图fig,(ax1,ax2)=plt.subplots(2,1,figsize=(10,12))ax1.plot(X,Y,'o',label='样本点')ax1.plot(new_x,iy1,label='插值点')ax1.set_ylim(Y.min()-1,Y.max()+1)ax1.set_ylabel('指数')ax1.set_title('线性插值')ax1.legend()ax2.plot(X,Y,'o',label='样本点')ax2.plot(new_x,iy3,label='插值点')ax2.set_ylim(Y.min()-1,Y.max()+1)ax2.set_ylabel('指数')ax2.set_title('三次样条插值')ax2.legend()(5)、综合代码import numpy as npimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['SimHei'] #⽤来正常显⽰中⽂标签plt.rcParams['axes.unicode_minus']=False #⽤来正常显⽰负号#数据准备X=np.arange(-np.pi,np.pi,1) #定义样本点X,从-pi到pi每次间隔1Y= np.sin(X)#定义样本点Y,形成sin函数new_x=np.arange(-np.pi,np.pi,0.1) #定义差值点#进⾏样条差值import scipy.interpolate as spi#进⾏⼀阶样条插值ipo1=spi.splrep(X,Y,k=1) #样本点导⼊,⽣成参数iy1=spi.splev(new_x,ipo1) #根据观测点和样条参数,⽣成插值#进⾏三次样条拟合ipo3=spi.splrep(X,Y,k=3) #样本点导⼊,⽣成参数iy3=spi.splev(new_x,ipo3) #根据观测点和样条参数,⽣成插值##作图fig,(ax1,ax2)=plt.subplots(2,1,figsize=(10,12))ax1.plot(X,Y,'o',label='样本点')ax1.plot(new_x,iy1,label='插值点')ax1.set_ylim(Y.min()-1,Y.max()+1)ax1.set_ylabel('指数')ax1.set_title('线性插值')ax1.legend()ax2.plot(X,Y,'o',label='样本点')ax2.plot(new_x,iy3,label='插值点')ax2.set_ylim(Y.min()-1,Y.max()+1)ax2.set_ylabel('指数')ax2.set_title('三次样条插值')ax2.legend()(6)、结果展⽰以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
用三次样条函数拟合模具型腔廓线

( ≤暂+, J , , ,一1 暂≤ I =12 …,l ) 其 中 劬 , , 西为待定 系数 。 %
() 1
线的数据 ,然后根据所测数据利用数控机床进行加工 。这种制 1 2 , , . 造方法存 在两个 问题 ,一是 使用 过 的原 型腔表 面有一定 的磨 1 2 1确 定 % ..
Байду номын сангаас
固 用次侯丁合具腔 曾郑清毅科。1 珊梅源拟模咸2 三样函(大阳1 琪 条数西学7 陕 型廓 技 0 8 ) 线
Di a i u l e f t u i s l e f n t n e c vt o tn iwi c bc pi u ci y i t h n o
Z N hn—q 。 H N Ii HO ig u n D N i E GS a i Z E G le。 U Qn —y a , I G Y  ̄ (h a x U i r t o c ne&T c nlg , in ag7 2 8 , hn ) S a n i nv s y f i c e i S e eh o y X a yn 10 1C ia o
因之 一 。
西 =一2 ,+ 一, /^, +(』 +) + (,- , 3+1 6+ -/^,・ ) ( =12 … ,l ) J , , ,一1
() 3
三次样条函数属于 高次分段 多项式 ,整体具有一定的连续 性 。它是一般多项 式的推广 ,也可以看成是阶梯函数的若干次
西的确 定
损, 使测得的廓线数据 有误 差。同时 , 量中还会 产生一定 的测 测 量误差 ,在加工过程中难以得到精确的修正 ;二 是无法从离散 点组成的曲线分析 出它 的成形规律 。因此 ,制造 出的型腔与原
三次样条函数

yi ' = a1 + a 2 (2 xi − xi +1 ) + a3 3 xi − 2( xi +1 + xi )xi + xi xi +1
]
2
i +1
1
2
i +1
3
i +1
i
i +1
其中:
y − yi y − y i −1 + arctg i arctg i +1 xi +1 − xi xi − xi −1 yi ' = tg 2
y1 − y 0 x1 − x 0 x1 − x0
(
)
y1 '− a 2 + a 3 x1 =
(0.6)
由(0.4)
2a 2 + a 3 (4 x0 − 2 x1 ) = 0
(0.7)
(0.6)-(0.7)
a 3 x1 − a 3 (2 x0 − x1 ) = y1 '− y1 '− y1 − y 0 x1 − x0 x1 − x0
3
2 n−2
− x n−1 x n − 2
)
)(2.3)
y n −1 " = 2a 2 + a3 (6 x n −1 − 2( x n − 2 + x n −1 )) = 2a 2 + 2a3 (2 x n −1 − x n− 2 ) (2.2) –(2.1)
(2.4)
y n −1 − y n − 2 = a1 ( x n −1 − x n− 2 ) + a 2 ( x n −1 − x n − 2 )x n − 2 = ( xi +1 − xi )(a1 + a 2 xi )
基于遗传算法的三次样条函数拟合_陈小平

引 言
在连 续信号 的复原 和重建 过程中 ,须从 离散样 本求出不位于取样点上的数值。 如果 考虑复原过程 总会 存在误差 ,那么通 过一些 有误差 的离散 数据来 得到 整个区间的 曲线是 一个曲 线拟合或 逼近问 题。
而当误差为零时 ,逼近就退化成了插值。作为逼近当 然存在一个用什么函数来逼近的 问题 ,样条 函数 ,尤 其是 三次样条函 数 ,是 曲线拟 合的一 个公认 的较好 方法 ,它具有很好的分段光滑性。但三次样条函数拟 合涉及到矩阵求逆 ,当离散样本点 (观测数据 )越多 , 矩阵就越庞大 ,求逆就越繁琐。 为了解决这 个矛盾 , 本文提出将遗 传算法 ( Genetic algo rithms, GA )用于
据采 样点处 于 tk 上 ,k 为整 数 ,而 h 为采样 间隔 ,则
任意一点可以表 示为 t= tk+ ph , 0≤ p < 1,当采用三
次 B-样条函数来进 行信号拟合时 ,有
k+ 2
∑ S( tk + ph ) =
anB3 ( p + k - n)
n= k- 1
其中
∑ =
1 6h
3 n=
0
Genetic Algorithms Based Cubic Spline Functions Fitting
Chen X iaoping Y u Shengl in Liu Wenbo
Depar tment of M ea sur ement and T esting Enginee ring , N anjing U niv ersity of Aer onautics & Astr onautics N anjing , 210016
三次样条实验报告范文三次样条插值的实验报告范文

三次样条实验报告范文三次样条插值的实验报告范文湘潭大学实验报告课程名称计算机图形学实验名称参数三次样条的绘制页数专业计算机科学与技术班级一班同组者姓名学号2022551208姓名刘兆臣实验日期2022.05.05实验目的使学生掌握三次参数样条的定义、画法和程序的编写。
实验内容和要求给定型值点,要求用VC++6.0画出通过给定型值点的参数三次样条曲线。
实验方案设计给定型值点,计算出参数三次样条曲线的每个区间段的代数式,由Hermit曲线定义画出每个区间的曲线。
开始开始给定型值点给定型值点计算出参数计算出参数ifn=1Yifn=1N给系数矩阵赋值给系数矩阵赋值Ifn=2YIfn=2给定系数值给定系数值N求解方程组,计算出各点导数求解方程组,计算出各点导数Ifi<ni=0Ifi<ni=0Y计算第i段的二次项,三次项系数计算第i段的二次项,三次项系数结束结束t=0t=0Ift<tt[i-1]Ift<tt[i-1]NYt=t+et=t+e计算出第i段中各点的某,y值计算出第i段中各点的某,y值连线段连线段i++i++程序运行和实验结果说明和分析。
使用VC++6.0运行程序后得到如下图形图为四段曲线组成的三次参数样条曲线,其中各段的绘制是通过给定了型值点的相关参数计算出型值点的导数,再由Hermit曲线知识,在各段上以直代曲绘制出每段的图形。
基本达到了实验目的,完成实验要求。
性能、扩展性等方面存在的不足和可能的改进之处。
不足:在源代码中的n个点采用了数据初始化的方法给出且给定了型值点的个数。
由于给定型值点较少,三次参数样条曲线看起来不够明显。
可改进:可将初始化的型值点数据去除,采用手动键盘输入或文件输入的方法导入多个型值点数据。
附件一源程序,执行程序,符号列表文件。
#include<graphic.h>#include<math.h>#include<conio.h>main(){intgdriver=DETECT,gmode;float某[100],y[100],a[100],b[100],c[100];floatp某[100],py[100],q某[100],qy[100],tt[100];floatd某[100],dy[100];inti,n=4,t,e=3;floatb某3,b某4=0.0,by3=0.0,by4,c某,cy;initgraph(&gdriver,&gmode,"");for(i=0;i<n;i++) {a[i]=0.0;b[i]=0.0;c[i]=0.0;p某[i]=0.0;py[i]=0.0;d某[i]=0.0;dy[i]=0.0;tt[i]=0.0;q某[i]=0.0;qy[i]=0.0;}p某[0]=1.0;py[0]=1.0;p某[4]=1.0;py[4]=1.0;某[0]=10.0;y[0]=110.0;某[1]=40.0;y[1]=100.0;某[2]=80.0;y[2]=90.0;某[3]=130.0;y[3]=95.0;某[4]=200.0;y[4]=105.0;moveto(某[0],y[0]);for(i=0;i<n;i++)putpi某el(某[i],y[i],15);putpi某el(某[0],y[0],15);for(i=0;i<n;i++)tt[i]=qrt((某[i]-某[i-1])某(某[i]-某[i-1])+(y[i]-y[i-1])某(y[i]-y[i-1]));if(n==1)gotopO;for(i=1;i<=n-1;i++){a[i]=2某(tt[i]+tt[i+1]);b[i]=tt[i+1];c[i]=tt[i];d某[i]=3某(tt[i]某(某[i+1]-某[i])/tt[i+1]+tt[i+1]某(y[i]-y[i+1])/tt[i]);}d某[i]=d某[1]-tt[2]某p某[0];d某[n-1]=d某[n-1]-tt[n-1]某p某[n];dy[1]=dy[1]-tt[2]某py[0];dy[n-1]=dy[n-1]-tt[n-1]某py[n];if(n==2){p某[1]=d某[1]/a[1];py[1]=dy[1]/a[1];gotopO;}c[1]=c[1]/a[1];for(i=2;i<=n-1;i++){a[i]=a[i]-b[i]某c[i-1];c[i]=c[i]/a[i];}q某[1]=d某[1]/a[1];qy[1]=dy[1]/a[1];for(i=2;i<=n-1;i++){q某[i]=(d某[i]-b[i]某q某[i-1])/a[i]; qy[i]=(dy[i]-b[i]某qy[i-1])/a[i];}p某[n-1]=q某[n-1];qy[n-1]=qy[n-1];for(i=n-2;i>=1;i--){p某[i]=q某[i]-c[i]某p某[i+1];py[i]=qy[i]-c[i]某py[i+1];}pO:for(i=0;i<=n-1;i++){b某3=(3某(某[i+1]-某[i])/tt[i+1]-2某p某[i]-p某[i+1])/tt[i+1];b某4=((2某(某[i]-某[i+1])/tt[i+1]+p某[i]+p某[i+1])/tt[i+1])/tt[i+1];by3=(3某(y[i+1]-y[i])/tt[i+1]-2某py[i]-py[i+1])/tt[i+1];by4=((2某(y[i]-y[i+1])/tt[i+1]+py[i]+py[i+1])/tt[i+1])/tt[i+1];t=0;do{t=t+e;c某=某[i]+(p某[i]+(b某3+b某4某t)某t)某t;cy=y[i]+(py[i]+(by3+by4某t)某t)某t;lineto(c某,cy);}while(t<tt[i+1]);}getch();cloegraph();}某[i]i型值点某坐标y[i]i型值点Y坐标a[i]初始赋值方程组系数矩阵mi,i的值b[i]初始赋值方程组系数矩阵mi,i+1的值c[i]初始赋值方程组系数矩阵mi,i-1的值p某[i]i型值点导函数某值py[i]i型值点导函数Y值q某[i],qy[i],d某[i],dy[i]均为解方程组中的各项系数tt[i]第i段参数范围(型值点i-1到型值点i的距离)b某,y3每段函数中二次项的系数b某,y4每段函数中三次项的系数c某每段函数中各点的某值cy每段函数中各点的Y值e作图时每段‘以直代曲’中的参数增量其中方程矩阵形式为:m1,1m1,2p1C1m2,1m2,2m2,3p2C2m3,2m3,3m3,4p3C3............=...mn-1,n-2mn-1,n-1mn-1,npn-1Cn-1mn,n-1mn,npnCn将系数矩阵改写为:其中方程矩阵形式为:(变量与代码变量不对应,如a2不等于a[2]) m1,1m1,2l11u1m2,1m2,2m2,3a2l21u2m3,2m3,3m3,4a3l31u3.........=.........mn-1,n-2mn-1,n-1mn-1,nan-1ln-11un-1mn,n-1mn,nanln1pi对应代码中p某[i],py[i]的值Ci对应代码中q某[i],qy[i]的值附件二运行结果文件。
基于多项式插值与三次样条插值曲线拟合的比较

《数值分析》课外课堂大作业论文题目:基于多项式插值与三次样条插值曲线拟合的比较姓名:学号:学院:专业方向:联系方式:(QQ号)(手机号)导师姓名:完成人(亲笔)签字基于多项式插值与三次样条插值曲线拟合的比较摘要:在数值计算中经常要计算函数,当函数只在有限点集上给定函数值要包含改点集的区间上用公式给出函数的简单表达式,这就涉及在已知区间上用简单函数逼近已知复杂函数问题。
本文为了解决这类问题就采用多项式插值与三次样条插值两种插值法并利用MATLAB数值分析软件进行编程,实现相应数据的曲线拟合以获得最佳曲线模型与相应数据的曲线拟合,选出最优的插值法以解决所给数据的曲线拟合问题。
关键词:函数;多项式插值;三次样条插值;曲线拟合;MATLABAbstract:In numerical analysis ,the function value is often calculated .when the function is only given a function point set ,the simple expression of the function is given by the interval .which involves the use of a simple function to approximate the known complex function .in order to solve this problem ,we use polynomial interpolation and cubic spline interpolation tow kind of interpolation method and use MATLAB numerical analysis software to program ,to achieve the curve fitting of the corresponding date to obtain the best cure fitting ,and to choose the best interpolation method to solve the problem of curve fitting to the date.Keyword: Function ; Polynomial interpolation ; Cubic spline interpolation ; Fitting of a curve ; MATLAB前言现代科学研究中,物理量之间的相互关系通量是用函数来描述的,许多实际问题都用函数y=f(x)来表示某种内在规律的数量关系其中相当一部分函数是通过试验或观测得到的也有少量函数关系是由经典物理分析推导得到的,但许多实际问题很难用经典理论分析得出,因为虽然f(x)在某个区间[a,b]上是存在的,有的还是连续的,但往往这个f(x)并不包含我们所得函数表的所有值因此我们希望根据给定的函数表做一个即能反应函数f(x)的特行,又便于计算的简单函数p(x),用p(x)近似f(x),这样确定的p(x)就是我们希望得得到的插值函数。
三次样条拟合算法

三次样条拟合算法
三次样条拟合算法是一种常用的曲线拟合方法,其基本思想是利用三次多项式连接数据点,构造出一条光滑的曲线来拟合给定的数据。
具体算法步骤如下:
1. 根据给定的数据点,构造出一个三次多项式曲线,对数据点进行拟合。
2. 利用三次样条插值的方法,将拟合曲线分成多个小段,每个小段内均匀分布着一些样本点。
将每个小段的三次多项式分别写成标准形:
s(x)=a+bx+cx^2+dx^3。
3. 选定初始点,设置边界条件。
一般常用的边界条件有“自然边界”和“固定边界”:自然边界所表达的是函数的一阶导数值相等;固定边界将所选定的端点函数值设定为已知值。
4. 利用样条函数的连续性和光滑性,得到关于系数a,b,c,d 的线性方程组,然后进行求解。
5. 通过求解系数,得到每个小段内的三次多项式,将这些小段拼接起来,得到最终的三次样条拟合曲线。
三次样条拟合算法适用于平滑曲线拟合、数据平滑处理、信号平滑处理等方面,具有一定的实用性和广泛性。
参数三次插值样条曲线

边界条件: 给定 点P1 和Pn的一阶导数 给定 点P1 和Pn的二阶导数 造型中的实际方法,头尾增加两个虚拟点, 使所有型值点成为内点(例如采用自然边 界条件)。
优缺点:
优点:三次多项式在使用的灵活性和计算速度上
提供一个合理的平衡方案,与高次多项式比较, 运算较少且较稳定,与低次多项式比则在曲线拟 合上更灵活。
n=2时,有3个控制点p0、p1和p2,Bezier多项式是 二次多项式:
p (t ) Pk BENk , 2 (t )
k 0 2 (1 t ) 2 P0 2t (1 t ) P t P2 1 2 ( P2 2 P P ) t 2( P 1 0 1 P 0 )t P 0 2
向量方程: P(u)=au3 +bu2 +cu +d, (0≤u≤ 1) 曲线矩阵方程: a P(u)= [u3 u2 u 1] b 以0,1代入,求出边界条件
Pk-1 Pk Pk+1 Pk+2 c d
求解多项式系数
a b c d 其中: Mc = -t 2-t t-2 t 2t t-3 3-2t -t -t 0 t 0 0 1 0 0 是Cardinal矩阵 Pk-1 Pk Pk+1 Pk+2 Pk-1 Pk Pk+1 Pk+2 Pk-1 Pk Pk+1 Pk+2
2 3 p(t ) Pk BENk ,3 (t ) (1 t )3 P0 3t (1 t ) 2 P 3 t ( 1 t ) P t P3 1 2 k 0 3
BEN0,3 (t ) P 0 BEN 1,3 (t ) P 1 BEN2,3 (t ) P 2 BEN3,3 (t ) P 3
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
plot(x0,y0,'-r')
holdon
%三次拟合曲线
plot(x1,y1,'-b')
上图中,蓝色部分为三次拟合曲线,红色部分为原曲线
6结果分析
拉格朗日插值的优点是对于某一区域,不限于被估计点周围,公式简单易实施。一般认为n的次数越高,逼近 的精度就越好,但在本题中,对龙格函数 ,中间部分插值效果比较好,而对于两端,插值结果是非常不理想的,即龙格现象。样条函数可以给出光滑的插值曲线,从本题中就能体现出来。从以上图形可以看出,三次样条插值的图形是比较逼近于原图的,收敛性相对而言是非常好的,但在本题中,仅将原区间分成10个等距区间,因此,逼近效果还不是特别理想,当我们将n增大时,插值后的曲线越逼近于原曲线。总的来说,三次样条插值的稳定性比较好,收敛性比较强。
f =
1/(1+25*x^2)
>> diff(f)
ans=
-(50*x)/(25*x^2+ 1)^2
将函数的两个端点,代入上面的式子中:
f’(-1)=0.0740
f’(1)=-0.0740
求出从-1到1的n=10的等距节点,对应的x,y值
对应m文件代码如下:
for x=-1:0.2:1
y=1/(1+25*x^2)
n=length(x);
r=ones(n-1,1);
u=ones(n-1,1);
d=ones(n,1);
r(1)=1;
d(1)=6*((y(2)-y(1))/(x(2)-x(1))-df0)/(x(2)-x(1));
y=[0.0385 0.05880.10.2 0.510.50.20.10.05880.0385];
a=polyfit(x,y,3);
x1=[-1:0.01:1];
y1=a(4)+a(3)*x1+a(2)*x1.^2+a(1)*x1.^3;
x0=[-1:0.01:1];
y0=1./(1+25*x0.^2)
3采用软件、设备
计算机、matlab软件
4设计内容
1、多项式插值:
在区间 上取 的等距节点,带入拉格朗日插值多项式中,求出各个节点的插值,并利用matlab软件建立m函数,画出其图形。
在matlab中建立一个lagrange.m文件,里面代码如下:
%lagrange函数
function y=lagrange(x0,y0,x)
2设计原理
(1)多项式插值:利用拉格朗日多项式插值的方法,其主要原理是拉格朗日多项式,即:
表示待插值函数的 个节点,
,其中 ;
(2)三次样条插值:三次样条插值有三种方法,在本例中,我们选择第一边界条件下的样条插值,即两端一阶导数已知的插值方法:
(3)三次曲线拟合:本题中采用最小二乘法的三次多项式拟合。最小二乘拟合是利用已知的数据得出一条直线或者曲线,使之在坐标系上与已知数据之间的距离的平方和最小。在本题中,n=10,故有11个点,以这11个点的 和 值为已知数据,进行三次多项式拟合,设该多项式为 ,该拟合曲线只需 的值最小即可。
holdon
x0=-1:0.01:1;
y0=1./(1+25*x0.^2);
plot(x0,y0,'--b')
得到如下图像:
.
其中蓝色曲线为原图,红色曲线为拟合后的图像。
3、三次曲线拟合:
这里我们使用最小二乘法的3次拟合
建立一个Three_fitting .m文件,代码如下:
%主要代码
x=[-1 -0.8-0.6 -0.4-0.200.2 0.40.6 0.81];
%lagrange插值
x=[-1:0.2:1];
y=1./(1+25*x.^2);
x0=[-1:0.02:1];
y0=lagrange(x,y,x0);
y1=1./(1+25*x0.^2);
plot(x0,y0,'--r')
%插值曲线
hold on
%原曲线
plot(x0,y1,'-b')
运行duoxiangshi.m文件,得到如下图形:
三次样条拟合范例
———————————————————————————————— 作者:
———————————————————————————————— 日期:
ﻩ
1设计目的、要求
对龙格函数 在区间[-1,1]上取 的等距节点,分别作多项式插值、三次样条插值和三次曲线拟合,画出 及各逼近函数的图形,比较各结果。
参考文献:
[1]李庆扬 王能超等.数值分析[M].清华大学出版社
[2]吴振远.科学计算实验指导书基于MATLAB数值分析[M].中国地质大学出版社
[3]宋叶志.MATLAB数值分析与应用[M].机械工业出版社 , 2009.07
附录
三次样条插值主要代码:
function [m,p]=scyt1(x,y,df0,dfn)
n=length(x0);m=length(x);
for i=1:m
z=x(i);
s=0.0;
fork=1:n
p=1.0;
for j=1:n
ifj~=k
p=p*(z-x0(j))/(x0(k)-x0(j));
end
end
s=p*y0(k)+s;
end
y(i)=s;
end
建立一个polynomial.m文件,用于多项式插值的实现,代码如下:
end
y=
得出
x=-1-0.8-0.6-0.4-0.2 00.2 0.40.60.8 1
y=0.0385 0.05880.10.20.510.5 0.20.10.05880.0385
编写m文件Three_Spline.m
x=linspace(-1,1,11);
y=1./(1+25*x.^2);
[m,p]=scyt1(x,y,0.0740,-0.0740);
在这三种方法中,三次曲线拟合的效果是最差的,所得的图形与原曲线差距甚远。最小二乘法中,并不要求拟合后的曲线经过所有已知的点,只需要拟合多项式上的点在某种标准上与定点之间的差距最小即可,因此与原曲线的逼近程度是最差的。最小二乘法的多项式拟合只适用于多项式,而本题中的函数并不是一个多项式,因此,不建议使用最小二乘法拟合。
2、三次样条插值:
所谓三次样条插值多项式 是一种分段函数,它在节点 分成的每个小区间 上是3次多项式,其在此区间上的表达式如下:
因此,只要确定了 的值,就确定了整个表达式, 的计算方法如下:
令:
则 满足ห้องสมุดไป่ตู้下 个方程:
对于第一种边界条件下有
ﻩ如果令 那么解就可以为
求函数的二阶导数:
>>symsx
>>f=sym(1/(1+25*x^2))