建模算法(九)——拟合
一、线性最小二乘法
1、基本思路
令
,其r(x)是事先选定的一组线性无关的函数。ak是待定系数。然后拟合的准则就是使得yi与f(xi)的距离的平方和最小,称之为最小二乘准则
2、系数的确定
,要使距离的平方和最小,那只要取得
,使得取到极值,就可以解除待定系数ak,记

然后线性方程组为
,所以当R列满秩,R’R是可逆的,所以方程组有唯一解
3、函数r(x)的选取
一般是直观的去判断用什么样的曲线。然后下面有一般常用的曲线

一般需要做变量代换,化为对a1和a2的线性函数。
然后可以多选几个r(x),然后选择距离的平方和最小的一个。
4、MATLAB实现
(1)解方程法

一个demo

function ab=Zuixiaoerchengfa(x,y)
%x,y为数据点,但是要为行向量 x=x';y=y';
r=[ones(5,1),x.^2];
ab=r\y;
x0=19:0.1:44;
y0=ab(1)+ab(2)*x0.^2;
plot(x,y,'bo',x0,y0,'r');

(2)多项式拟合法
,然后来拟合给定的数据,然后MATLAB由封装好的函数
a=ployfit(x0,y0,m)
多项式在x处的值y可以用这个函数计算
y=polyval(a,x)
其中x0,y0是要拟合的数据,m为拟合多项式的次数,输出参数a为拟合多项式
的系数
一个demo

>> x0=[1990 1991 1992 1993 1994 1995 1996];
>> y0=[70 122 144 152 174 196 202];
>> plot(x0,y0,'*');
先画出散点图,观察使用多少次的多项式拟合

然后明显看出可以使用直线拟合所以
a=polyfit(x0,y0,1)
a =
1.0e+04 *
0.0021 -4.0705
>> y97=polyval(a,1997)
y97 =
233.4286
>> y98=polyval(a,1998)
y98 =
253.9286
>>
二、最小二乘优化

四、最重要的~~~~~~~~~~!!!!!!!!!!!!!!!!
曲线拟合的用户界面求法!!!!!!!!!!!!
直接使用命令cftool
五、曲线拟合与函数逼近


一个demo

int用于符号∫
int(s)符号表达式s的不定积分.
int(s,v)符号表达式s关于变量v的不定积分.
int(s,a,b)符号表达式s的定积分, a,b分别为积分的下限和上限.
int(s,v,a,b)符号表达式s关于变量v从 a到b的定积分.
当int求不出符号解,会自动转求数值解.
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)
digits(8),xishu2=vpa(a)
建模算法(九)——拟合的更多相关文章
- 建模算法(六)——神经网络模型
(一)神经网络简介 主要是利用计算机的计算能力,对大量的样本进行拟合,最终得到一个我们想要的结果,结果通过0-1编码,这样就OK啦 (二)人工神经网络模型 一.基本单元的三个基本要素 1.一组连接(输 ...
- 建模算法(一)——线性规划
一.解决问题 主要是安排现有资源(一定),取得最好的效益的问题解决,而且约束条件都是线性的. 二.数学模型 1.一般数学模型 2.MATLAB数学模型 其中c,x都是列向量,A,Aeq是一个合适的矩阵 ...
- spark机器学习从0到1协同过滤算法 (九)
一.概念 协同过滤算法主要分为基于用户的协同过滤算法和基于项目的协同过滤算法. 基于用户的协同过滤算法和基于项目的协同过滤算法 1.1.以用户为基础(User-based)的协同过滤 用相似统 ...
- python 版 mldivide matlab 反除(左除)《数学建模算法与程序》Python笔记
今天在阅读数学建模的时候看到了差分那章 其中有一个用matlab求线性的代码,这里我贴出来 这里我送上 Python代码 In [39]: import numpy as np ...: from s ...
- 建模算法(十)——灰色理论之关联度分析
一.数据变换技术 为了保证建模的质量和系统分析结果的准确性,对原始的数据要进行去量纲处理. 1.定义 设有序列,则成映射为序列x到序列y的数据变换. (1) f 是初值化变换. (2) f 是均值化变 ...
- 建模算法(八)——插值
插值:求过已知有限个数据点的近似函数 拟合:已知有限个数据点,求近似函数,不要求过已知数据点,只要求在某种意义下在这些点的误差最小 (一)插值方法 一.拉格朗日多项式插值 1.插值多项式 就是做出一个 ...
- 建模算法(五)——图与网络
(一)图与网络的基本概念 一.无向图 含有的元素为顶点,弧和权重,但是没有方向 二.有向图 含有的元素为顶点,弧和权重,弧具有方向. 三.有限图.无限图 顶点和边有限就是有限图,否则就是无限图. 四. ...
- 建模算法(三)——非线性规划
一.非线性规划和线性规划不同之处 1.含有非线性的目标函数或者约束条件 2.如果最优解存在,线性规划只能存在可行域的边界上找到(一般还是在顶点处),而非线性规划的最优解可能存在于可行域的任意一点达到. ...
- 建模算法(二)——整数规划
一.概述 1.定义:规划中变量部分或全部定义成整数是,称为整数规划. 2.分类:纯整数规划和混合整数规划. 3.特点: (1)原线性规划有最优解,当自变量限制为整数后: a.原最优解全是整数,那最优解 ...
随机推荐
- [转载]Using ngOptions In AngularJS
http://odetocode.com/blogs/scott/archive/2013/06/19/using-ngoptions-in-angularjs.aspx?utm_source=tui ...
- 关于git提交的自己的理解
包子不才,对于码云上的git的使用,自己的理解是 这个命令用于查看,哪些文件被修改了,以及修改了哪些地方, 这个命令用于增加你新添的文件,如果该文件已经存在,那么这一步则可以省略,随后就是commit ...
- 浅谈setTimeout函数和setInterval函数
前几天学了js,看到了两个非常有趣的函数,他们分别是setTimeout函数和setInterval函数,这两个函数能使网页呈现非常一些网页中比较常见的效果,比如说图片轮播,等一些非常好玩的效果.下面 ...
- [Educational Codeforces Round 16]B. Optimal Point on a Line
[Educational Codeforces Round 16]B. Optimal Point on a Line 试题描述 You are given n points on a line wi ...
- 台大《机器学习基石》课程感受和总结---Part 2 (转)
转自:http://blog.sina.com.cn/s/blog_641289eb0101e2ld.html Part 2总结一下一个粗略的建模过程: 首先,弄清楚问题是什么,能不能用机器学习的思路 ...
- poj1182(食物链)
食物链 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 49320 Accepted: 14385 Description ...
- JTA集成JOTM或Atomikos配置分布式事务(Tomcat应用服务器)
一.以下介绍Spring中直接集成JOTM提供JTA事务管理.将JOTM集成到Tomcat中. (经过测试JOTM在批量持久化时有BUG需要修改源码GenericPool类解决)! 参考文章http: ...
- powerdesigner奇淫技
在日常开发中数据库的设计常常需要建立模型,而powerdesigner是个不错的选择.但很多时候用powerdesigner生成模型后再去创建表结构,会觉得烦和别扭.那么能不能数据库表建好后再生成模型 ...
- 无论IT代码系统还是人生都是有惯性的
是的,这和IT系统和代码没有什么关系:鸡汤式的文章,看烦了的就关掉吧,想看的请听我碎碎念.惯性本是物理学研究的问题,这里没有要研究物理学里的惯性.惯性无时无刻地发生在我们的日常生活中,只是你我都没有察 ...
- Java面向对象的多态
Java中多态的概念是面向对象中除封装和继承外非常重要的知识点,也是Java面向对象三大特性最后一个特性 多态其实就是指对象存在的多种形态,多态分为引用多态和方法多态 引用多态的含义就是:父类的引用可 ...