当前位置:首页>正文

matlab数据拟合 在matlab中如何根据拟合图得到函数

2023-04-20 13:23:40 互联网 未知

matlab数据拟合

一组数据可以拟合出许多函数的公式,一般都是根据数据的特征,然后用 Matlab cftool,挨个试,找出拟合效果最好的那个~
根据我遇到的问题,这个比根据公式求具体的参数,要容易,尤其是碰到一个非线性模型拟合的时候,想求出公式的参数,要做大量分析与尝试。。。

在matlab中如何根据拟合图得到函数?

在matlab中根据拟合图得到函数步骤如下:
1、常用的模型有多项式模型、幂函数模型、指数函数模型等。

2、设出函数,用命令“plot”绘出图像作为对比。

3、准备好散点数据,用命令“plot”绘出散点作为对比。

4、调用函数“fit”,参数包括散点数据和曲线拟合模型。

5、按回车键即可完成曲线拟合,p1、p2、p3为多项式前面的系数。

matlab 里拟合函数 几种对比。

不管是什么程序(matlab或是excel),你必须得告许程序目标拟合公式的形式。这里的形式,是指你的公式是多项式型、对数型、三角形或其它的形式,但是这个公式里面有待定的系数,而这个系数就是通过拟合得到的。

还有就是数据拟合,一般采用最小二乘的方法,这种方法并不是所有形式的公式都可以拟合。如果你的公式比较复杂,比如上说是一个积分形式,并且这个积分还不能显示的积出来,需要数值积分才可以积出来的话,用最小二乘法就不行了,这时,matlab是没有现成的函数来进行拟合的,这时就需要自己编程序来实现,比如可以运用“黄金分割法”、“Powell优化”等方法来实现。

但,如你所提的问题,多项式是可以拟合的,多项式拟合也是最基本的数据拟合。可是呢,你又不知这个多项式是多少次的,这时候就需要根据你对已有数据观察加以判断了。你可以先假定是N次的,然后根据拟合的效果看是否需要更改。数据拟合并没有标准答案,只要你拟合出来的曲线和已有的数据符得相对比较好就行了。

最后,希望我的回答可以帮助你。也希望你能采纳我的回答。

Matlab数据拟合

指数拟合如下:
-----------------------------------------------------------------
先定义函数:
function Y=nhfun(b,x)
Y=b(1)*exp(b(2)*x) b(3)
在运行程序:
x=[0 20 40 60 100 130 160 190]
y=[18 17.586 17.136 16.704 15.84 15.129 14.544 13.896]
x0=[0,1,0] %设置初始值

b=lsqcurvefit(@nhfun,x0,x,y)
Xi=0:0.001:200
Yi=b(1)*exp(b(3)*Xi) b(2)
plot(x,y,cp,MarkerEdgeColor,k,MarkerFaceColor,g,MarkerSize,6)
hold on
plot(Xi,Yi,linewidth,2,markersize,16)
legend(原始数据点,拟合曲线)
sprintf(曲线方程:Y=%0.5g e^(%0.5gxX) (%0.5g),b(1),b(2),b(3))
--------------------------------------------------------------
!!!曲线方程程序运行时会报错,是因为你的X数据中有一个为0,这个不影响结果的
曲线方程:Y=3.1461e-020 e^(1xX) (7.8423e-041)
你的参数是不是少了一个??