您的位置首页百科知识

MATLAB之非线性拟合

MATLAB之非线性拟合

的有关信息介绍如下:

MATLAB之非线性拟合

首先给出数据,如下图:

把EXCEL数据放入MATLAB软件中的“Work”文件夹下(注:文件名不能用汉字)。然后对数据读取和作图。从图中我们不难发现其图像大致符合指数形式,为此我们构造指数形式的表达式y=x1*exp{x2+x3*t}。

通过非线性最小二乘法对其拟合,其结果图与原数据图效果非常理想。其结果为:

q= -246.27991478063 0.127224594530866参数值

r= 0.0224287126987522 误差平方和从误差平方和我们不难发现其拟合程度相当高,说明此拟合方程具有意义。

其MATLAB编码:clear all;clc

format long g%取消科学计数法

A=xlsread('yinsu1.xls'); %读取数据,“yinshu1”为数据文件名

[m,n]=size(A); %判断矩阵的阶

B=A';%矩阵转置

x=B(1,:);

y1=B(2,:);

y=log(y1);

f=inline('a(1)+a(2).*x','a','x');

[q,r]=lsqcurvefit(f,[1,0],x,y)

plot(x,y1,'r-+') %绘制图表

hold on;