曲线拟合函数

ceil():向上取整

cell:单元数组    与普通数组不一样的是单元数组放在{  }里

拟合是为了更好的展示数据所要表示的趋势,尽可能与实际样本数据相符合

常见的拟合有fit()函数  nlinfit()函数   lsqnonlin()函数 lsqcurvefit()

1.多项式拟合

polyfit(x,y,n)  x,y均为向量   (xi,yi)为所要表示的数据   n为多项式的最高次幂,n过大可能导致过拟合,过小可能导致欠拟合

loss=(y1-f(x1))^2+(y2-f(x2))^2....  得到的表达式要满足所有可能表达式中的loss最小

[p,e]=polyfit(x,y,n)  返回多项式向量p和矩阵e用在polyval中计算误差

多项式的阶数不超过length(x)-1

2.加权最小方差拟合WLS

 

比上面的那个拟合更加精确    不过需要提前设函数

3.非线性拟合

最前面说的那些函数都可以进行非线性拟合

在不清楚系数向量时可以通过这来求得

x=lsqcurvefit(fun,x0,xdata,ydata)

x=lsqcurvefit(fun,x0,xdata,ydata,lb,ub)

x=lsqcurvefit(fun,x0,xdata,ydata,lb,ub,options)

x0初始解向量   xdata,ydata为满足式子的数据

lb,ub为解向量的下界和上界

options为优化参数

[x,resnorm]=...在x处残差的平方和

[x,resnorm,residual]=  x处的残差

[x,resnorm,residual,exitflag]=  终止矢代的条件

[..........output]   输出的优化信息

Matlab中用于曲线拟合函数是polyfit(x, y, n),其中x和y是数据点的横坐标和纵坐标,n是拟合多项式的阶次。这个函数可以找到一个次数为n的多项式,使得拟合数据与原始数据的差的平方和最小化。函数的返回值是多项式的系数。另外,可以使用polyval(p, x)函数来计算使用拟合多项式p对给定的横坐标x进行预测的纵坐标值。 在示例代码中,使用了polyfit函数将给定的数据点进行了5阶和9阶的多项式拟合。然后使用polyval函数根据拟合多项式计算了对应的纵坐标值,最后使用plot函数将原始数据点和拟合曲线绘制在一张图上。从图中可以看出,9阶多项式拟合的结果与原始数据更加符合。 需要注意的是,在使用polyfit函数进行拟合时,多项式的阶次不应超过数据点的数量减1。 LS方法是WLS方法的一种特例,相当于将每个基础数据的准确度都设为1。值得注意的是,自行编写的M文件和默认的命令结果可能会有不同。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [MATLAB曲线拟合函数](https://blog.csdn.net/EliminatedAcmer/article/details/88408525)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值