一、线性最小二乘法

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)

建模算法(九)——拟合的更多相关文章

  1. 建模算法(六)——神经网络模型

    (一)神经网络简介 主要是利用计算机的计算能力,对大量的样本进行拟合,最终得到一个我们想要的结果,结果通过0-1编码,这样就OK啦 (二)人工神经网络模型 一.基本单元的三个基本要素 1.一组连接(输 ...

  2. 建模算法(一)——线性规划

    一.解决问题 主要是安排现有资源(一定),取得最好的效益的问题解决,而且约束条件都是线性的. 二.数学模型 1.一般数学模型 2.MATLAB数学模型 其中c,x都是列向量,A,Aeq是一个合适的矩阵 ...

  3. spark机器学习从0到1协同过滤算法 (九)

      一.概念 协同过滤算法主要分为基于用户的协同过滤算法和基于项目的协同过滤算法.   基于用户的协同过滤算法和基于项目的协同过滤算法 1.1.以用户为基础(User-based)的协同过滤 用相似统 ...

  4. python 版 mldivide matlab 反除(左除)《数学建模算法与程序》Python笔记

    今天在阅读数学建模的时候看到了差分那章 其中有一个用matlab求线性的代码,这里我贴出来 这里我送上 Python代码 In [39]: import numpy as np ...: from s ...

  5. 建模算法(十)——灰色理论之关联度分析

    一.数据变换技术 为了保证建模的质量和系统分析结果的准确性,对原始的数据要进行去量纲处理. 1.定义 设有序列,则成映射为序列x到序列y的数据变换. (1) f 是初值化变换. (2) f 是均值化变 ...

  6. 建模算法(八)——插值

    插值:求过已知有限个数据点的近似函数 拟合:已知有限个数据点,求近似函数,不要求过已知数据点,只要求在某种意义下在这些点的误差最小 (一)插值方法 一.拉格朗日多项式插值 1.插值多项式 就是做出一个 ...

  7. 建模算法(五)——图与网络

    (一)图与网络的基本概念 一.无向图 含有的元素为顶点,弧和权重,但是没有方向 二.有向图 含有的元素为顶点,弧和权重,弧具有方向. 三.有限图.无限图 顶点和边有限就是有限图,否则就是无限图. 四. ...

  8. 建模算法(三)——非线性规划

    一.非线性规划和线性规划不同之处 1.含有非线性的目标函数或者约束条件 2.如果最优解存在,线性规划只能存在可行域的边界上找到(一般还是在顶点处),而非线性规划的最优解可能存在于可行域的任意一点达到. ...

  9. 建模算法(二)——整数规划

    一.概述 1.定义:规划中变量部分或全部定义成整数是,称为整数规划. 2.分类:纯整数规划和混合整数规划. 3.特点: (1)原线性规划有最优解,当自变量限制为整数后: a.原最优解全是整数,那最优解 ...

随机推荐

  1. 9个 SSH常用命令选项

    9个 SSH常用命令选项 SSH 是什么 SSH(全称 Secure Shell)是一种加密的网络协议.使用该协议的数据将被加密,如果在传输中间数据泄漏,也可以确保没有人能读取出有用信息.要使用 SS ...

  2. UVa12726 one Friend at a Time (位 广搜)

    题目链接:UVa12726 是个PDF,不好复制进来. 大意:有个人要追个妹子,想加妹子QQ,但是不知道谁规定的,玩QQ的人要加好友必须先要有至少k个共同好友.共有N个人玩QQ,编号为1到N,1是男主 ...

  3. HDU 2577 How to Type(dp题)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2577 解题报告:有一个长度在100以内的字符串,并且这个字符串只有大写和小写字母组成,现在要把这些字符 ...

  4. [BZOJ4632]树的编码

    [BZOJ4632]树的编码 试题描述 SHUXK 正在对一棵N个结点的有根树进行研究,首要的一件事就是对这棵树进行编码. lz 说:“这还不容易吗?我令根节点的编号为 1,然后保证每个结点的编号都比 ...

  5. 阿里云服务器配置 SVN 服务器与生产站点同步

    作为linux的门外汉,一直觊觎svn的方便性,在有台aliyun的情况下,一起来搞搞.   1.环境   阿里云 centos5.5   2.安装svn   yum -y install subve ...

  6. HDU2546(01背包饭卡)

    电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额.如果购买一个商品之前,卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购买后卡上余额为负),否则无法购买(即使金额足够).所以大家 ...

  7. C语言中%d,%o,%f,%e,%x的意义

    printf(格式控制,输出列表) 格式控制包括格式说明和格式字符. 格式说明由“%”和格式字符组成,如%d%f等.它的作用是将输出的数据转换为指定的格式输出.格式说明总是由“%”字符开始的.不同类型 ...

  8. 硬盘安装ubuntu注意事项

    按照教程 http://teliute.org/linux/Ubsetup/jichu3/jichu3.html 安装64位ubuntu的时候,因为64位版本的iso安装包里没有vmlinuz文件,而 ...

  9. 获取oracle 表字段,表名,以及主键之类等等的信息。

    获取表名:  Oracle的user_talbes用于记录了用户表信息. select * from user_tables  获取某个表的字段: USER_TAB_COLS中记录了用户表的列信息.下 ...

  10. Moebius集群:SQL Server一站式数据平台

    一.Moebius集群的架构及原理 1.无共享磁盘架构 Moebius集群采用无共享磁盘架构设计,各个机器可以不连接一个共享的设备,数据可以存储在每个机器自己的存储介质中.这样每个机器就不需要硬件上的 ...