-
2021-04-18 08:22:00
课题需要拟合一堆成本曲线,函数形式y=A*x*x+B*x,且A>0,B>0。
一帮人用eviews,spss都没搞定,只好要我编程,没想到matlab拟合工具箱帮了大忙,即形象,又方便。不到一天工夫所有曲线估计完毕。
使用方法也很简单
将x输入如x=[
110.3323 148.7328 178.064 202.8258033 224.7105 244.5711 262.908 280.0447 296.204 311.5475
]
输入y=[
5 10 15 20 25 30 35 40 45 50
]
启动曲线拟合工具箱
》cftool
进行曲线拟合工具箱界面
点data
读入x,y,退出
点fit
点newfit
点dataset进入数据集
从type of fit中选custom equations,点new equation
点general equation
输入函数形式
修改待估计参数的上下限,也就是把-inf,inf改成具体数据hko
点ok
点apply
就可以得到函数,如下例:
general model:
f(x) = a*x*x+b*x
Coefficients (with 95% confidence bounds):
a = 0.009194 (0.009019, 0.00937)
b = 1.78e-011 (fixed at bound)
Goodness of fit:
SSE: 6.146
R-square: 0.997
Adjusted R-square: 0.997
RMSE: 0.8263
analysis功能我就不介绍了
曲线拟合工具箱拟合仅能拟合单变量曲线模型
更多相关内容 -
浅谈matlab多变量拟合_matlab多变量拟合工具箱
2020-10-30 21:57:17首先申明本人是土木专业的因为有需要要用到 matlab 中的拟合用途今天好好学习 一些关于 matlab 多变量拟合的东西从网上下载了一些程序也运行了一下就举一些 实例附上源程序吧主要是两个自变量和三个自变量一个因变量... -
matlab多变量控制工具箱
2010-03-20 18:16:04本工具箱是matlab下的多变量频域设计的工具箱,对于多变量系统设计来说,功能十分强大。 -
MATLAB曲线拟合工具箱(cftool)介绍(完结)
2021-07-23 18:47:24本文通过实例对MATLAB曲线拟合工具箱进行详细讲解,帮助大家更容易理解曲线拟合工具箱(cftool)。 目录1.实例介绍2. 进入系统辨识工具箱界面3. 加载数据4. 加载数据5. 选择拟合曲线的类型 1.实例介绍 已知 x = [0 ...本文通过实例对MATLAB曲线拟合工具箱进行详细讲解,帮助大家更容易理解曲线拟合工具箱(cftool)。
1.实例介绍
已知
x = [0 0.2 0.50.8 0.9 1.3 1.4 1.9 2.1 2.2 2.5 2.6 2.9 3.0];
y = [1.27792.1596 2.7311 2.5974 2.4068 1.6215 1.4178 0.9955 0.9666 0.8837 0.9639 1.00311.1233 1.1583];并且根据某种物理或数学关系确定y=f(x)的表达形式,并求出拟合结果对应的系数。
2. 进入曲线拟合工具箱界面
两种方法,第一种:
打开app栏的曲线拟合工具箱(Curve Fitting),
第二种,直接在命令行窗口输入“cftool”:
进入界面后,弹出如下窗口:
3. 加载数据
新建一个.m文件,并写入如下代码:
clc;clear; x = [0 0.2 0.5 0.8 0.9 1.3 1.4 1.9 2.1 2.2 2.5 2.6 2.9 3.0]; y = [1.2779 2.1596 2.7311 2.5974 2.4068 1.6215 1.4178 0.9955 0.9666 0.8837 0.9639 1.0031 1.1233 1.1583];
作为要拟合曲线所需要的数据。
4. 加载数据
在上述窗口中选中相应数据和拟合选项:
5. 选择拟合曲线的类型
通过下拉菜单选择拟合曲线的类型,
工具箱提供的拟合类型有:- Custom Equations:用户自定义的函数类型;
- Exponential:指数逼近,有2种类型, a ∗ e x p ( b ∗ x ) a*exp(b*x) a∗exp(b∗x) 、 a ∗ e x p ( b ∗ x ) + c ∗ e x p ( d ∗ x ) a*exp(b*x) + c*exp(d*x) a∗exp(b∗x)+c∗exp(d∗x);
- Fourier:傅立叶逼近,有7种类型,基础型是 a 0 + a 1 ∗ c o s ( x ∗ w ) + b 1 ∗ s i n ( x ∗ w ) a0 + a1*cos(x*w) + b1*sin(x*w) a0+a1∗cos(x∗w)+b1∗sin(x∗w);
- Gaussian:高斯逼近,有8种类型,基础型是 a 1 ∗ e x p ( − ( ( x − b 1 ) / c 1 ) 2 ) a1*exp(-((x-b1)/c1)^2) a1∗exp(−((x−b1)/c1)2);
- Interpolant:插值逼近,有4种类型,Nearest neighbor、Linear、Cubic、Shape-preserving(PCHIP);
- Linear Fitting:线性拟合;
- Polynomial:多形式逼近;
- Power:幂逼近,有2种类型, a ∗ x b a*x^b a∗xb 、 a ∗ x b + c a*x^b + c a∗xb+c;
- Rational:有理数逼近;
- Smoothing Spline:平滑逼近;
- Sum of Sin Functions:正弦曲线逼近,有8种类型,基础型是 a 1 ∗ s i n ( b 1 ∗ x + c 1 ) a1*sin(b1*x + c1) a1∗sin(b1∗x+c1);
- Weibull:只有一种, a ∗ b ∗ x ( b − 1 ) ∗ e x p ( − a ∗ x b ) a*b*x^(b-1)*exp(-a*x^b) a∗b∗x(b−1)∗exp(−a∗xb);
6. 进行曲线拟合
假设我们以 y = a ∗ s i n ( b ∗ x ) ∗ e x p ( c ∗ x ) + d y =a*sin(b*x)*exp(c*x)+d y=a∗sin(b∗x)∗exp(c∗x)+d的表达形式进行拟合,则选择”Custom Equation”,在方框中输入相应的函数表达式,拟合过程及结果图像如下图所示:
可以发现,曲线和拟合程度较差。这是因为,对同一问题的拟合情况,每次可能都不一样,这取决对于参数a,b,c,d的StartPoint的选取。解决方法是在拟合过程中,将a,b,c和d也作为约束拟合的条件,例子中已知a,b,c,d的的取值范围(正负范围),可以进行如下操作,点击[Fit Options]按钮,弹出的窗口如下:
可以调整a,b,c,d参数的StartPoint,Lower,Upper三个选项来是拟合更加准确,比如说,将a,b,d的Lower选项设为0(a,b,d>0),将c的Upper选项设为0(c<0),设置如下图所示:
设置完毕之后,就会自动出现重新拟合之后的图像,如下图所示。
可以看到,拟合程度较之前有了很大的提高.因此,可以预见的是,在拟合过程中,设置好待拟合函数的参数的StartPoint,Lower和Upper三者的值可以使拟合更加准确。7. 拟合结果分析
在左侧的Result中显示拟合模型、参数以及拟合效果:
拟合效果评测:- SSE:拟合误差平方和,接近0,表示与数据拟合的好,但是要小心过拟合;
- R-Square:实测数据与推理数据之间的相关系数平方值,趋近于1较好;
- RMSE:均方差;
8.其他常用拟合方法
当然,除了上面提到的拟合方法之外,还有两种常用的拟合方法:
- Interpolant
插值逼近,该方法的优势在于会连接所有点,而使其SSE为0,R-square为1,如下图所示:
- Smoothing Spline
平滑逼近,该方法的会尽可能逼近所有点,使其SSE尽可能逼近0,R-square尽可能逼近1,如下图所示:
9.输出拟合参数
如果希望只显示拟合图像,可以点击“文件”——>“Print to figure”
这样就可以只显示拟合图像了,如下图所示。
如果希望导出拟合后的曲线数据,可以点击“文件”——>“Generate Code”
生成代码后,默认函数名为createFit,可以自行修改,直接保存,就可以调用了。比如说,我要导出五次多项式Polynomial逼近结果,按照上述方式导出后,可以查看生成代码的信息:
其中,fitresult是函数的输出,是一个结构体,可以用fitresult.p1得到p1的系数,同理其它系数也可得。
如果想导出拟合后的曲线数据,只需要把横坐标传给fitresult就可以了:y = fitresult(x)';
10.结论
本文主要讨论了MATLAB曲线拟合工具箱(cftool)的拟合过程。通过工具箱模块可以非常方便地对曲线进行拟合,不需要太多的编程,曲线拟合方法多样,效果较好。
ok,以上便是曲线拟合工具箱的全部内容了,如果对你有所帮助,记得点个赞哟~
-
MATLAB-拟合工具箱
2020-07-21 10:45:07拟合工具下去在APP里下图箭头所指处 可在x data , Y data 选择自己要拟合的数据 右边选择逼近的方式 Custom Equations:用户自定义的函数类型 Exponential:指数逼近,有2种类型, aexp(bx) 、 aexp(bx) + cexp...参考:https://www.jianshu.com/p/fb4b04e1b1e3
拟合工具下去在APP里下图箭头所指处
可在x data , Y data 选择自己要拟合的数据 右边选择逼近的方式
- Custom Equations:用户自定义的函数类型
- Exponential:指数逼近,有2种类型, aexp(bx) 、 aexp(bx) + cexp(dx)
- Fourier:傅立叶逼近,有7种类型,基础型是 a0 + a1cos(xw) + b1sin(xw)
- Gaussian:高斯逼近,有8种类型,基础型是 a1*exp(-((x-b1)/c1)^2)
- Interpolant:插值逼近,有4种类型,linear、nearest neighbor、cubic spline、shape-preserving
- Polynomial:多形式逼近,有9种类型,linear ~、quadratic ~、cubic ~、4-9th degree ~
- Power:幂逼近,有2种类型,ax^b 、ax^b + c
- Rational:有理数逼近,分子、分母共有的类型是linear ~、quadratic ~、cubic ~、4-5th degree ~;此外,分子还包括constant型
- Smoothing Spline:平滑逼近(翻译的不大恰当,不好意思)
- Sum of Sin Functions:正弦曲线逼近,有8种类型,基础型是 a1sin(b1x + c1)
Weibull:只有一种,abx(b-1)*exp(-a*xb)
拟合结果
查看results
作者:小武子
链接:https://www.jianshu.com/p/fb4b04e1b1e3
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 -
求高手用Matlab做多变量拟合!!! - 计算模拟 - 小木虫 - 学术 科研 互动社区
2021-04-24 00:53:24大家好,由于急需用到多变量曲线拟合而本人刚刚接触MATLAB,希望高手及热心的朋友帮帮忙给出拟合方程和拟合曲线,一共有两组数据,X1,X2,X3是自变量,Y是因变量,需要利用这些数据用matlab编程拟合成一条曲线,...大家好,由于急需用到多变量曲线拟合而本人刚刚接触MATLAB,希望高手及热心的朋友帮帮忙给出拟合方程和拟合曲线,一共有两组数据,X1,X2,X3是自变量,Y是因变量,需要利用这些数据用matlab编程拟合成一条曲线,得出一个含有X31,X2,X变量的Y=f(X1,X2,X3)函数,非常感谢!以下是两组组数据:
一组:
Y X1 X2 X3
501.2633173 0.539902361 0.28046229 0.179635349
427.3926985 0.635031635 0.177045177 0.187923188
366.4193 0.705707491 0.148751486 0.145541023
395.7147339 0.728558453 0.130660439 0.140781108
462.5657443 0.76414478 0.112896903 0.122958317
426.3725002 0.772320795 0.112136267 0.115542938
424.8704642 0.851527714 0.029172424 0.119299862
二组
Y X1 X2 X3
5 0.539902361 0.28046229 0.179635349
7.61 0.635031635 0.177045177 0.187923188
8.09 0.705707491 0.148751486 0.145541023
9.16 0.728558453 0.130660439 0.140781108
6.23 0.76414478 0.112896903 0.122958317
8.46 0.772320795 0.112136267 0.115542938
6.92 0.851527714 0.029172424 0.119299862
-
Matlab数据拟合工具箱 多参数拟合问题
2021-04-23 05:44:21但是这个例子是不带v输入变量的) 1 我前面一段程序先假设k=3,然后利用变参量数值解法求解了(仿真)y值;(因为这个式子有个带外部输入的参数v,没法求得解析解,所以只好用数值微分方程方法求出ydata; 2 我后面一... -
Matlab的曲线拟合工具箱CFtool使用简介 - 小众知识
2021-04-26 13:07:26http://phylab.fudan.edu.cn/doku.php?id=howtos:matlab:mt1-5一、 单一变量的曲线逼近Matlab有一个功能强大的曲线拟合工具箱 cftool ,使用方便,能实现多种类型的线性、非线性曲线拟合。下面结合我使用的 Matlab R... -
matlab曲线拟合工具箱进行曲线拟合
2021-04-20 01:49:52本帖最后由 笋Silence 于 2012-9-4 20:32 编辑一、 单一变量的曲线逼近Matlab有一个功能强大的曲线拟合工具箱 cftool ,使用方便,能实现多种类型的线性、非线性曲线拟合。下面结合我使用的 Matlab R2007b 来简单... -
matlab-曲线拟合工具箱讲义.ppt
2019-05-10 16:07:59在实际工程应用和科学实践中,经常需要寻求 两个(或多个)变量间的关系,而实际去只能 通过观测得到一些离散的数据点。 -
使用MATLAB曲线拟合工具箱做曲线拟合(2013)
2021-05-07 13:52:23使用 MATLAB 曲线拟合工具箱做曲线拟合在实际的工程应用领域和经济应用领域中,人们往往通过实验或者观测得到一些数据, 为了从这些数据中找到其内在的规律性, 也就是求得自变量和因变量之间的近似函数关系表 达式... -
MATLAB曲线拟合工具箱的输出与生成的函数不匹配
2021-04-18 17:28:13当我要求Matlab中的曲线拟合工具箱找到一个2项指数时,我得到了一个很好的拟合(R平方:0.9998,调整后的R平方:0.9997) . 但是,当我为此拟合生成代码时,它会更改系数a,b,c和d .在工具箱中,它显示:一般模型Exp2... -
数据预处理——matlab拟合工具箱
2020-11-26 15:11:37一、打开matlab拟合工具箱 二、拟合工具箱的使用 三、自定义拟合函数——Custom Equation(建模用的较多) 四、多项式拟合(建模用的较多) 五、如何导出拟合的高清图像 六、调用拟合工具箱自动生成的代码 七... -
Matlab的曲线拟合工具箱CFtool使用简介
2019-12-10 14:52:21Matlab有一个功能强大的曲线拟合工具箱 cftool ,使用方便,能实现多种类型的线性、非线 性曲线拟合。下面结合我使用的 Matlab R2007b 来简单介绍如何使用这个工具箱。 假设我们要拟合的函数形式是 y=A*x*x + B*x, ... -
MATLAB拟合工具箱
2018-08-14 14:29:45今天意外发现matlab的曲线拟合工具箱cftool,转自...Matlab有一个功能强大的曲线拟合工具箱 cftool ,使用方便,能实现多种类型的线性、非线性曲线拟合。下面结合我使用的 Matlab R2007b 来简单介绍如何使用这个工具... -
matlab – 无工具箱的曲线拟合
2021-04-18 17:28:19如果您知道要拟合的函数的形式但不知道其参数,则可以使用fminsearch查找适合您数据的参数.如果你有数据(可能是嘈杂的)你想要适合y = x ^ a bwhere aand bare unknown(这里我假设真值是a = 1/3和b = 5)这就是我的方式... -
Matlab拟合工具箱的使用
2016-09-08 17:02:36,出现数据拟合工具界面,基本上所有的数据拟合和回归分析都可以在这里进行。也可以在命令窗口中直接输入”cftool”,打开工具箱。 2.输入两组向量 x,y。 首先在 Matlab 的命令行输入两个向量,一个向量是你... -
matlab自动数据拟合cftool工具箱简单应用
2022-03-11 09:02:55matlab数据拟合工具箱cftool可以对线性和非线性的数据进行自动选择函数方程进行拟合,以下将以一个线性应用例子分别通过最小二乘法计算和cftool工具箱拟合得出经验方程,观察拟合结果。 示例 例子:用X光机检查镁... -
matlab工具箱拟合函数
2019-09-14 16:46:39Matlab有一个功能强大的曲线拟合工具箱 cftool ,使用方便,能实现多种类型的线性、非线性曲线拟合,下面简单介绍如何使用这个工具箱。 先给定两个变量: x = [1,2,3,4,5,6,7,...] ;%输入自变量 y = [1,2,3,4,5,6,7,... -
matlab曲线拟合公式中含有两个变量,x是自变量,y既是自变量又是因变量,求指导,y=f(x,y)
2021-04-18 16:27:32首先,将x、y看成同一变量,即x(1)、x(2) 然后,定义自变量函数,即fun=inline('x(2)-f(x(1),x(2))','a','x')%a是拟合系数 再用Matlab的nlinfit()函数或lsqcurvefit()函数进行拟合另外你也可以利用可视化工具cftool... -
Matlab regress函数拟合多个变量分析
2021-04-18 04:16:43简介拟合曲线,在matlab中有polyfit函数,有cftool工具,对于多项式,指数,对数都有很好的拟合,但是对于多个参数的拟合,比如x1,x2……用什么函数呢?就会用到今天介绍的regress函数。regress函数调用格式b = ... -
Matlab的拟合工具箱的误差参数说明
2019-04-28 23:06:34Matlab的拟合工具箱的误差参数说明 Matlab的拟合、优化和统计等工具箱,会常遇到下面几个名词: SSE(和方差、误差平方和):The sum of squares due to error 该统计参数计算的是拟合数据和原始数据对应... -
Matlab拟合工具箱的几个误差参数说明
2021-04-21 01:20:22Matlab拟合好坏常用指标用过Matlab的拟合、优化和统计等工具箱的网友,会经常遇到下面几个名词:SSE(和方差、误差平方和):The sum of squares due to errorMSE(均方差、方差):Mean squared errorRMSE(均方根、标准... -
Matlab自带工具箱curve fitting曲线拟合
2021-07-03 15:57:241、 输入变量 2、 打开APP 3、 进入面板 (1) 选择变量 (2) 选择函数(部分有公式,部分没有公式,比如smoothing spline) (3)进行拟合 -
Matlab非线性拟合工具箱cftool
2014-11-29 22:16:34Matlab有一个功能强大的曲线拟合工具箱 cftool ,使用方便,能实现多种类型的线性、非线性曲线拟合。下面结合我使用的 Matlab R2007b 来简单介绍如何使用这个工具箱。 假设我们要拟合的函数形式是 y=A*x*x + B*... -
matlab拟合工具箱评价参数
2020-03-22 12:31:19SSE(和方差):拟合数据和原始数据对应点的误差的平方和,SSE越接近于0,说明模型选择和拟合更好,数据预测也越成功。 R-square(确定系数):SSR:Sum of...表明方程的变量对y的解释能力越强,这个模型对数据拟合的也较好 -
Matlab的曲线拟合工具箱(cftool)如何获得准确的系数
2019-04-11 16:04:40使用Matlab的cftool工具箱拟合曲线时,发现曲线拟合得效果很好,但把解析表达式取出来进行绘制时,发现误差非常大。通过查资料才得知,因为cftool输出的系数只保留了4位有效数字,才导致了这种情况。所以要如何获得... -
Matlab调用cftool工具的函数 批量曲线拟合
2021-04-18 16:27:25有一堆实验数据要拟合,MATLAB调用cftool工具箱,采用GUI模式显然会让人吐血,而用函数调用的方法就比较方便了。当然origin等软件可以批量弄,线性方程时matlab可以调用[p,e]=polyfit(x,y,n)完成。对于方程需要... -
Matlab粒子群算法工具箱使用方法及实例演示.ppt
2021-04-18 05:54:44《Matlab粒子群算法工具箱使用方法及实例演示.ppt》由会员分享,可在线阅读,更多相关《Matlab粒子群算法工具箱使用方法及实例演示.ppt(22页珍藏版)》请在人人文库网上搜索。1、粒子群算法工具箱应用简介,1。引言,...