matlab求插值多项式 如何用MATLAB求出插值后的具体函数?
如何用MATLAB求出插值后的具体函数?样条函数插值。对于此方法,命令interp1调用函数spline、ppval、mkpp、umkpp。这些命令为分段多项式运算生成一系列函数。命令spline使用
如何用MATLAB求出插值后的具体函数?
样条函数插值。对于此方法,命令interp1调用函数spline、ppval、mkpp、umkpp。这些命令为分段多项式运算生成一系列函数。命令spline使用它们执行三次样条插值;
y=样条曲线(x,y,插值点)
例如,在2.5处找到y的值。
&Gt>X=[012345678910
]&Gt>y=[00.791.532.192.713.033.272.893.063.193.29
]&Gt>A=spline(x,y,2.5)
a==1.8715
还可以一次获得多个值,例如:
&Gt>xx=1:0.1:10
&Gt>yy=spline(x,y,XX)
这样,您可以得到每个XX
绘图(x,y)
你可以看到图片
]但是根据我目前的知识,我无法得到这个函数。
我们只能使用拟合方法
>>P=polyfit(x,y,2)%二项式拟合,其中二次P的三个值是系数
>>yy=polyval(P,x)]>>plot(x,YY)
拟合函数是-0.0536x^20.832x[0.0738
拟合度0.9717非常高
一般来说,我们还没见过用插值法找表达式,一般是拟合或回归
求解方法:[1。使用三次样条函数插值()来插值席席=1:0.1:15yI= IpP1(x,y,Xi,“样条”)!2!用最小二乘函数nlinfit()拟合插值函数模型,y=A/(1)Exp(B-C*x))3。绘图比较和拟合效果
这个题目看起来很简单,但是我在分析过程中遇到了问题。
请看下图1。图中蓝色为实测离散数据,用MATLAB的plot命令绘制。红线是detrend命令导出的趋势曲线与原始曲线(此处不绘制趋势曲线)之间差异的结果。必须说趋势曲线与原始曲线相似。)绿线是通过插值函数interp1得到的曲线。我的想法是得到一条类似绿色曲线的趋势曲线,而不是一条有很多拐点的曲线。红线过于平滑,无法反映科学问题,绿线因人工调整而不稳定。对于图1中的示例,让我们看看下面的简单示例。图2。数据是正弦函数,干扰很小。我们的目标是在下图中画一条绿色的正弦趋势线,而不是一条红线或它自己的蓝线。我的问题是:如何在不受离散数据干扰的情况下得到平滑稳定的趋势曲线?