用Matlab做线性拟合方法

简介

  • 01

    非线性最小二乘优化在曲线拟合、参数估计等问题中有着广泛的应用。例如,我们要拟合一系列观测数据(t,y),拟合函数为F(t,x),他是x的非线性函数。对于这种最小二乘曲线拟合问题,可以通过Matalb优化工具箱中的lsqcurvefit命令求解,可以根据实际问题进行曲线拟合。

    例题

    • 01

      在工程实验中,测得下面一组数据。求系数a、b、c、d,使得函数为表中数据的最佳拟合函数。 f(t)=a+b·sin(t)+c·cos(t)+dt3

      观测数据表

      • 01

        —————————————————————————————————— t  |     0    0.5     1     1.5      2     2.5      3     3.5     4 —————————————————————————————————— y  |     0    3.4    4.1    4.6     5.9    6.9     8.1    9.8     11 ——————————————————————————————————

      操作方法

      • 01

        首先建立拟合函数M文件如下:

      • 02

        function f=example8_15(x,ti) n=length(ti); for i=1:n f(i)=x(1)+x(2)*sin(ti(i))+x(3)*cos(ti(i))+x(4)*ti(i)^3; end

      • 03

        从命令窗口输入

      • 04

        >> ti=[0    0.5     1     1.5      2     2.5      3     3.5     4]; >> yi=[0    3.4    4.1    4.6     5.9    6.9     8.1    9.8     11]; >> x0=[1 1 1 1]';     %初始点选为全1向量 >> [x,resnorm,residual,exitflag,output,lambda,J]=lsqcurvefit(@example8_15,x0,ti,yi)

      • 05

        输出结果为

      • 06

        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Optimization completed because the size of the gradient is less than the default value of the function tolerance. <stopping criteria details> x = 1.8706 2.7714 -1.0477 0.1708 resnorm = 2.9080 residual = Columns 1 through 7 0.8228   -1.0989   -0.2927    0.5373    0.2929    0.1372   -0.1897 Columns 8 through 9 -0.5977    0.3887 exitflag = 1 output = firstorderopt: 6.6428e-08 iterations: 2 funcCount: 15 cgiterations: 0 algorithm: 'trust-region-reflective' message: [1x425 char] lambda = lower: [4x1 double] upper: [4x1 double] J = (1,1)       1.0000 (2,1)       1.0000 (3,1)       1.0000 (4,1)       1.0000 (5,1)       1.0000 (6,1)       1.0000 (7,1)       1.0000 (8,1)       1.0000 (9,1)       1.0000 (2,2)       0.4794 (3,2)       0.8415 (4,2)       0.9975 (5,2)       0.9093 (6,2)       0.5985 (7,2)       0.1411 (8,2)      -0.3508 (9,2)      -0.7568 (1,3)       1.0000 (2,3)       0.8776 (3,3)       0.5403 (4,3)       0.0707 (5,3)      -0.4161 (6,3)      -0.8011 (7,3)      -0.9900 (8,3)      -0.9365 (9,3)      -0.6536 (2,4)       0.1250 (3,4)       1.0000 (4,4)       3.3750 (5,4)       8.0000 (6,4)      15.6250 (7,4)      27.0000 (8,4)      42.8750 (9,4)      64.0000 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

      • 07

        再在命令窗口中输入:

      • 08

        >> xi=0:0.1:4; >> y=example8_15(x,xi); >> plot(ti,yi,'r*') >> grid on >> hold on >> plot(xi,y) >> legend('观测数据点','拟合曲线') >> title('最小二乘曲线拟合')

      • 09

        输出结果如下图所示:

      (0)

      相关推荐

      • Excel表格数据怎么进性线性拟合?

        Excel是一款大众非常熟悉的数据处理软件.它不仅可以在一些基本数据处理上大显神威,也可以在数学统计中发挥作用.这里介绍一下如何利用Excel进行线性拟合. 1.打开有样本数据的Excel文件,点击“ ...

      • 利用Excel进性线性拟合

        Excel是一款大众非常熟悉的数据处理软件.它不仅可以在一些基本数据处理上大显神威,也可以在数学统计中发挥作用.这里介绍一下如何利用Excel进行线性拟合. 操作方法 01 打开有样本数据的Excel ...

      • 电脑能不能自动做系统?电脑自动做系统的方法详细图文教程

        电脑需要做系统才能正常使用,电脑做系统的方法非常多,包括U盘.光盘等等方法,但是做系统这种事对于部分用户来说却是一大难题,尤其是使用U盘.光盘这种工具,步骤繁琐,有些人就问了,电脑能不能自动做系统,其 ...

      • 用word怎么做小抄?用wrod做小抄方法

        相信很多人都有在考试时做小抄的经历,特别是大学生,大多数人小抄都是在打字社让打印的人给排一下版直接打出来的,下面我就说一下我做小抄的方法,希望对大家有用,不过大家考试也不能完全依赖小抄. 以word2 ...

      • Excel如何做目录索引 手把手教你Excel做目录的方法

        如果一个excel文件中工作表很多,建一个工作表目录是一个很不错的选择.如果手工设置会很麻烦,而且无法在删除或新增工作表时自动更新,所以今天我们小编就分享一个用公式自动生成带链接的目录. 先来个效果演 ...

      • 如何用matlab求解线性方程组的符号解?用matlab解符号方程组方法介绍

        如何用matlab解符号方程组?在学习线性代数或者其他应用是我们经常遇到要求解线性方程组,这是我们无法跳过的步骤,而matlab给我们提供了一个求解线性方程组的好方法,下面就简单介绍如何用matlab ...

      • PS(Photoshop)给文字做投影效果的方法

        PS是一个功能很强大的软件,下面给大家讲讲PS给文字做投影效果的方法.具体如下:1. 第一步,在电脑上打开PS软件,新建一个如图所示的空白图层.2.第二步,在空白图层上插入任意文字,我们这里插入的是& ...

      • win7系统在word文档中做目录的方法教程图解

        word虽然不是一个专业的排版软件,但无论办公还是生活中对大家帮助都很大,一些基本操作还是能够完成的.win7 64位系统如何在word文档中做目录?通过自动目录功能能让你比较快地建立自己的目录.跟随 ...

      • 威力导演用照片做视频的方法

        威力导演是一款非线性视频编辑软件,它有着截取.编辑.特效.覆叠.标题.音频与输出等七大功能.在日常生活中,我们经常需要把照片做成视频的效果,那么,用威力导该怎么实现呢?小编今天就来问您解答这个问题.具 ...