MATLAB如何选择合适的拟合函数?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MATLAB如何选择合适的拟合函数?相关的知识,希望对你有一定的参考价值。

知道一些散点图如何选择合适的拟合函数?或者说一下常用的拟合函数的特点,比如:
Expotential e
Fourier
Gaussian
Interpolant
Polynomial
Power
选择参数SSE,R-square,Adjusted R-square:,RMSE拟合得最好的一定是对的吗?

1、首先启动matlab,选择编辑器,再新建一个命令文件。

2、然后在编辑器窗口中输入图示的代码。

3、然后我们点击界面上方菜单栏里的保存图标进行保存。

4、需要注意的是,保存文件的位置要与当前搜索路径的位置保持一致。这可以通过右键编辑窗口的文件,在弹出的下拉框中选择。

5、最后再命令行窗口处输入dxsnh,并敲入键盘上的enter建。可以看出阶数越高,曲线与拟合点拟合得越好。

扩展资料:

函数中所使用的算法都是科研和工程计算中的最新研究成果,而且经过了各种优化和容错处理。在通常情况下,可以用它来代替底层编程语言,如C和C++ 。在计算要求相同的情况下,使用MATLAB的编程工作量会大大减少。

MATLAB的这些函数集包括从最简单最基本的函数到诸如矩阵,特征向量、快速傅立叶变换的复杂函数。

函数所能解决的问题其大致包括矩阵运算和线性方程组的求解、微分方程及偏微分方程的组的求解、符号运算、傅立叶变换和数据的统计分析、工程中的优化问题、稀疏矩阵运算、复数的各种运算、三角函数和其他初等数学运算、多维数组操作以及建模动态仿真等。

参考技术A 用cftool拟合工具箱,可以快速得到你要的拟合函数。
Expotential指数逼近

Fourier傅立叶逼近
Gaussian 高斯逼近
Interpolant 插值逼近
Polynomial 多项式逼近
Power幂函数逼近
拟合结果的确定,主要要看R-square相关系数是否最接近1,RMSE均方根误差是否比较小追问

那如果有几个函数都差不多要怎么选择?另外我想问一下,三元函数用cftool的时候插值逼近没办法得到表达式,用其他的又不准确怎么办?

追答

那就看那个的R-square最接近1,RMSE均方根误差最小了。

三元函数用cftool的时候插值逼近没办法得到表达式,可用多项式插值、样条插值,再用多项式来逼近。

追问

原来如此。请问那个多项式逼近具体指什么?能详细说一下吗,不胜感激

追答

追问

谢谢~

本回答被提问者和网友采纳

Matlab正弦曲线拟合

我有一组数据,想通过正弦曲线拟合算法找到最合适的拟合正弦信号哦,再分析其与实际输入原始数据的对比

方法/步骤

    运行Matlab软件。

    在工作空间中存入变量的实验数据。具体如下:

    可以直接用矩阵来存放数据,直接在命令窗口输入

    x=[数据x1,数据x2,...,数据xn];

    y=[数据y1,数据y2,...,数据yn];

    当数据较多时,可以从excel,txt等文件中导入。

    把数据存入工作空间后,在命令窗口中输入cftool,回车运行。

    在这个拟合工具窗口的左边,选择变量,即分别选择x,y。

    选择拟合的曲线类型,一般是线性拟合,高斯曲线,平滑曲线等,根据需要选择。

    选择完后会自动完成拟合,并且给出拟合函数表达式。

    点击菜单栏中的“file”,选择“print to figure"进行画图。

    在图形窗口中,可以对图形显示模式进行修改,如添加标题,坐标名称等。

    最后得到比较完整的图形曲线。点击”file"中的“save"进行保存。

追问

我是想通过一组正弦曲线的拟合,找出残差平方和最小,最合适的拟合正弦信号怎么办呢?

参考技术A 【1】第一步
<br>>>cftool
<br>【2】出现对话框,点击data选x和y
<br>【3】creat data set,然后close
<br>【4】点击fitting,在type of type,选Fourier
<br>选择一个合适的即可。

例如:
>> x=0:0.1:pi
>> y=sin(x+x.^2)
>> plot(x,y,'o-')
用非线性回归,得到
得到
General model Sin8:
f(x) =
a1*sin(b1*x+c1) + a2*sin(b2*x+c2) + a3*sin(b3*x+c3) +
a4*sin(b4*x+c4) + a5*sin(b5*x+c5) + a6*sin(b6*x+c6) +
a7*sin(b7*x+c7) + a8*sin(b8*x+c8)
Coefficients (with 95% confidence bounds):
a1 = 4.36 (-2.007e+010, 2.007e+010)
b1 = 1.643 (-1.371e+009, 1.371e+009)
c1 = 0.4803 (-2.517e+009, 2.517e+009)
a2 = 4.282 (-3.806e+006, 3.806e+006)
b2 = 5.715 (-8.181e+004, 8.182e+004)
c2 = -4.306 (-7.305e+004, 7.305e+004)
a3 = 3.823 (-3.826e+006, 3.826e+006)
b3 = 5.867 (-6.623e+004, 6.624e+004)
c3 = -7.586 (-6.24e+004, 6.238e+004)
a4 = 2.67 (-1.363e+014, 1.363e+014)
b4 = 7.29e-006 (-5.336e+011, 5.336e+011)
c4 = -0.8273 (-5.575e+013, 5.575e+013)
a5 = 2.006 (-2.405e+014, 2.405e+014)
b5 = 0.5948 (-1.429e+013, 1.429e+013)
c5 = -0.5683 (-8.375e+013, 8.375e+013)
a6 = 1.729 (-2.606e+014, 2.606e+014)
b6 = 0.5869 (-1.455e+013, 1.455e+013)
c6 = -0.5213 (-8.638e+013, 8.638e+013)
a7 = -2.189 (-1.781e+009, 1.781e+009)
b7 = 2.225 (-1.048e+008, 1.048e+008)
c7 = -0.8675 (-2.948e+008, 2.948e+008)
a8 = 1.225 (-1.956e+014, 1.956e+014)
b8 = 0.616 (-4.375e+012, 4.375e+012)
c8 = -0.03419 (-1.33e+014, 1.33e+014)

Goodness of fit:
SSE: 0.01188
R-square: 0.9992
Adjusted R-square: 0.9968
RMSE: 0.03854

以上是关于MATLAB如何选择合适的拟合函数?的主要内容,如果未能解决你的问题,请参考以下文章

如何根据散点图用MATLAB拟合函数图象?

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

matlab曲线拟合后如何给出得到的各个参数的标准差

matlab已知散点图如何拟合

如何利用matlab将数值拟合成函数

想用matlab确定拟合函数的最佳次数?