cftool拟合&函数逼近
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)^)
· Interpolant:插值逼近,有4种类型,linear、nearest neighbor、cubic spline、shape-preserving
· Polynomial:多形式逼近,有9种类型,linear ~、quadratic ~、cubic ~、-9th degree ~
· Power:幂逼近,有2种类型,a*x^b 、a*x^b + c
· Rational:有理数逼近,分子、分母共有的类型是linear ~、quadratic ~、cubic ~、-5th degree ~;此外,分子还包括constant型
· Smoothing Spline:平滑逼近(翻译的不大恰当,不好意思)
· Sum of Sin Functions:正弦曲线逼近,有8种类型,基础型是 a1*sin(b1*x + c1)
· Weibull:只有一种,a*b*x^(b-)*exp(-a*x^b)
函数逼近
给一个栗子吧:
用 来拟合。
我们已经可以通过自己已经学的办法来解决这个问题了(四个函数都可以使用,大致两条思路)
方法一:首先生成数据,然后写矩阵
方法二:函数形式
(当然还有多项式拟合方法,和解方程法,没想到有不知不觉已经学了5个方法了)
x = -pi/:pi/:pi/;
y = cos(x);
x = x';
y = y';
r = [ones(,),x.^,x.^];
sx = lsqlin(r,y);
函数逼近答案:


方法二:
x = -pi/:pi/:pi/;
y = cos(x);
F = @(sx)sx()+sx()*x.^+sx()*x.^-y;
cs0 = rand(,);
cs = lsqnonlin(F,cs0);
拟合效果也是杠杠的。
现在还有一个方法,哈哈,开心吧!
老实说,看上去有点像解方程,当然是班门弄斧了,里面的原理已经完全不一样了。
既然已经有函数了,还要麻烦的用这个函数去生成数据吗?
稍微看了一点理论,还是超级复杂的。哈哈,我等人才还得加油了。
看一下格式吧:
clc,clear;
syms x;
base = [,x^,x^];
y1 = base.'*base;
y2 = cos(x)*base.';
r1 = int(y1,-pi/,pi/);
r2 = int(y2,-pi/,pi/);
a = r1\r2;
xishu1 = double(a);
xishu2 = vpa(a,);
至此,第一个数学建模模型,插值和拟合,已经完成了。恭喜啦!!!
cftool拟合&函数逼近的更多相关文章
- matlab-非线性拟合函数lsqcurvefit的使用和初值选取
所解决问题: 我们知道我们的表达式是y=A+B*exp(-x.^2)-C./log(x), 而且现在我们手里面有x与y对应的一大把数据. 我们需要根据x, y的值找出最佳的A.B.C值.则我们现在借助 ...
- matlab最小二乘法数据拟合函数详解
定义: 最小二乘法(又称最小平方法)是一种数学优化技术.它通过最小化误差的平方和寻找数据的最佳函数匹配.利用最小二乘法可 以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小. ...
- Matlab的BP神经网络工具箱及其在函数逼近中的应用
1.神经网络工具箱概述 Matlab神经网络工具箱几乎包含了现有神经网络的最新成果,神经网络工具箱模型包括感知器.线性网络.BP网络.径向基函数网络.竞争型神经网络.自组织网络和学习向量量化网络.反馈 ...
- TensorFlow多层感知机函数逼近过程详解
http://c.biancheng.net/view/1924.html Hornik 等人的工作(http://www.cs.cmu.edu/~bhiksha/courses/deeplearni ...
- matlab的拟合函数polyfit()函数
matlab的多项式拟合: polyfit()函数 功能:在最小二乘法意义之上,求解Y关于X的最佳的N次多项式函数. clc;clear; close all; x=[ ]; y=[2.7 7.4 2 ...
- 数值分析-Legendre正交多项式 实现函数逼近
数值分析-Legendre正交多项式 实现函数逼近 2016年12月18日 21:27:54 冰三点水 阅读数 4057 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请 ...
- TensorFlow从0到1之TensorFlow多层感知机函数逼近过程(23)
Hornik 等人的工作(http://www.cs.cmu.edu/~bhiksha/courses/deeplearning/Fall.2016/notes/Sonia_Hornik.pdf)证明 ...
- TensorFlow实现多层感知机函数逼近
TensorFlow实现多层感知机函数逼近 准备工作 对于函数逼近,这里的损失函数是 MSE.输入应该归一化,隐藏层是 ReLU,输出层最好是 Sigmoid. 下面是如何使用 MLP 进行函数逼近的 ...
- matlab拟合函数的三种方法
方法一:多项式拟合polyfit 1 x=[1 2 3 4 5 6 7 8 9]; 2 3 y=[9 7 6 3 -1 2 5 7 20]; 4 P= polyfit(x, y, 3) %三阶多项式拟 ...
随机推荐
- FZU 1884——排火车——————【栈的模拟】
排火车 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Status P ...
- BNU29376——沙漠之旅——————【技巧题】
沙漠之旅 Time Limit: 1000ms Memory Limit: 65536KB 64-bit integer IO format: %lld Java class name: M ...
- 读《Wireshark网络分析就这么简单》读书笔记
晚上花了两个多小时看完这本书,记录下一些看书过程中的笔记. 一.问题:A和B 是否能正常通信? 两台服务器A和服务器B的网络配置 A ...
- javascript数组与字符串之间转换
一.数组转字符串(将数组元素用某个字符连接成字符串) var a, b;a = new Array(0,1,2,3,4);b = a.join("-"); 二.字符串转数组(将字符 ...
- 引用SQLHelper类configurationmanager 不存在
在使用Sqlhelper类时,出现cs0103错误 当前上下文中不存在名称configurationmanager 解决方案,除了using引用using System.Configuration外, ...
- 线程安全的Dictionary
线程安全的DictionaryConcurrentDictionary<TKey, TValue> 类
- Facebook 爬虫
title: Facebook 爬虫 tags: [python3, facebook, scrapy, splash, 爬虫] date: 2018-06-02 09:42:06 categorie ...
- easyui datagrid 获取行数据某个字段
首先要能获取datagrid 的row对象 即:var row = $('#datagrid').datagrid('getData').rows[index]; 之后我们就可以通过类似row.nam ...
- 原生js实现星星闪烁的效果
星星闪烁的原理其实很简单: html代码: <body style="background:#000"> <div id="stars_box" ...
- Linux CentOS如何汉化系统
su root切换为root用户 写入环境变量 echo "export LANG="zh_CN.UTF8"">>/etc/profile sour ...