码迷,mamicode.com
首页 > 其他好文 > 详细

cftool拟合&函数逼近

时间:2018-01-09 16:49:36      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:exp   base   高斯   enc   自己   var   开心吧   res   完成   

cftool拟合&函数逼近

cftool

 

真是神奇,之前我们搞的一些线性拟合解方程,多项式拟合,函数拟合求参数啊,等等。

已经超级多了,为啥还得搞一个cftool拟合啊?而且毫无数学理论。

如果你足够细心,你会发现,之前的拟合,都是我们猜测这个拟合的式子大概是什么形式,只需要求个参数。嘿嘿到底准不准呢? 数据及其简单才会被你发现规律呢!

 

这里在cftool的帮助下不停的尝试才能得到最好的拟合形式。

技术分享图片

 

技术分享图片

可以看出,拟合形式多样,拟合分析方便。

 

· Custom Equations:用户自定义的函数类型
· Exponential:指数逼近,有2种类型, a*exp(b*x) 、 a*exp(b*x) + c*exp(d*x)
· Fourier:傅立叶逼近,有7种类型,基础型是 a0 + a1*cos(x*w) + b1*sin(x*w)
· 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种类型,a*x^b 、a*x^b + c
· Rational:有理数逼近,分子、分母共有的类型是linear ~、quadratic ~、cubic ~、4-5th degree ~;此外,分子还包括constant型
· Smoothing Spline:平滑逼近(翻译的不大恰当,不好意思)
· Sum of Sin Functions:正弦曲线逼近,有8种类型,基础型是 a1*sin(b1*x + c1)
· Weibull:只有一种,a*b*x^(b-1)*exp(-a*x^b)

 

 

函数逼近

给一个栗子吧:

?? 来拟合。

我们已经可以通过自己已经学的办法来解决这个问题了(四个函数都可以使用,大致两条思路)

方法一:首先生成数据,然后写矩阵

方法二:函数形式

(当然还有多项式拟合方法,和解方程法,没想到有不知不觉已经学了5个方法了)

x = -pi/2:pi/100:pi/2;
y = cos(x);
x = x;
y = y;
r = [ones(101,1),x.^2,x.^4];
sx = lsqlin(r,y);

?

函数逼近答案:

技术分享图片

 技术分享图片

 

方法二:

x = -pi/2:pi/100:pi/2;
y = cos(x);
F = @(sx)sx(1)+sx(2)*x.^2+sx(3)*x.^4-y;
cs0 = rand(3,1);
cs = lsqnonlin(F,cs0);

 

拟合效果也是杠杠的。

 

现在还有一个方法,哈哈,开心吧!

老实说,看上去有点像解方程,当然是班门弄斧了,里面的原理已经完全不一样了。

既然已经有函数了,还要麻烦的用这个函数去生成数据吗?

稍微看了一点理论,还是超级复杂的。哈哈,我等人才还得加油了。

看一下格式吧:

clc,clear;
syms x;
base = [1,x^2,x^4];
y1 = base.*base;
y2 = cos(x)*base.;
r1 = int(y1,-pi/2,pi/2);
r2 = int(y2,-pi/2,pi/2);
a = r1\r2;
xishu1 = double(a);
xishu2 = vpa(a,6);

 

至此,第一个数学建模模型,插值和拟合,已经完成了。恭喜啦!!!

 

 

cftool拟合&函数逼近

标签:exp   base   高斯   enc   自己   var   开心吧   res   完成   

原文地址:https://www.cnblogs.com/TreeDream/p/8251576.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!