当前位置:文档之家› 巧用matlab提取图片中的曲线数据(修订版)

巧用matlab提取图片中的曲线数据(修订版)

巧用matlab提取图片中的曲线数据(修订版)
巧用matlab提取图片中的曲线数据(修订版)

利用Matlab提取图片中的数据(修订版)

从事科研或者工程的人员在文档撰写过程中,常需要将文献中的曲线与自己的结果对比,为获取原始数据,一种常用的办法是手动描点,

即将原始曲线放大然后打印出来,选取一定数量的点,读出其横纵坐标,

然后重绘。对于较为平坦的曲线,这种方法当然可行,但当曲线数量增

加,曲线变化复杂,这种方法工作量可想而知。前段时间由于原始数据

丢失,仅剩几十幅图片,本人尝试过手动描点,经历几个小时奋战,实

在无法继续,索性转向matlab,借助其强大的数据处理能力,编写了两个

GUI的小软件image2data、data_poly提取数据,如今大功告成,遂于大

家分享。

2010-12-26

yc97463240@https://www.doczj.com/doc/c916582419.html,

2010年编写软件至今,已有一年,平均每个星期都有网友向我索要软件或提出问题,与你们的交流很愉快,为答谢大家对我的鼓励,我决定:

1、对本教程作出修改,针对大家容易出现错误的地方作出批注,并

在一个月内对程序进行改进。

2、录制视频教程,更加直接的引导大家使用。

最后申明,本教程完全免费,可在百度、豆丁和其他文档分享类网站在线阅览,教程会发布到优酷上,如有需要,直接email索取(一般当天

回复)。

2012-03-10

yc97463240@https://www.doczj.com/doc/c916582419.html,

本文分三部分:1、数据提取实验演示;2、软件编写要点;3、附录。关心使用操作的朋友请

看第一部分,有兴趣钻研代码的朋友请看第二部分,本软件以功能实现为主,界面和操作方面略有

不适,尽请谅解。

1、数据提取演示实验

原始数据来源:安华高科技数据手册(HSMP-38XX and HSMP-48XX Series),如图1所示。

目标曲线:提取1MHz频率下的PIN二极管电容与反偏电压之间关系曲线。

图1 包含目标曲线的原始图像

实验步骤:

Step1:制作jpg图片

方法:利用PPT的图片另存功能制作jpg图片,本方法具有普遍性。

首先从pdf中copy图1,即上述包含数据坐标的曲线,然后paste到ppt的空白页面,最后调整图片大小,另存为 figure1.jpg,如图2所示。

图2 利用ppt制作jpg格式图像

Step2:导入图片,填写相关参数

首先运行值,然后在

image2data.m 或image2data.fig (程序采用Matlab R2008b 编写),填写坐标轴的最大最小 import 按钮下的文本框输入文件名figure1(默认jpg 后缀),最后点解 import

按钮导入图片,如图3所示。

图3 导入图像并输入相关参数

,如果采用Matlab R2008b 以外的版本可能出现不兼容的问题,如果运行出现问题请换用件夹(current directory),或者更改当前路径为jpg 文和程序所在的文件夹,否则会出现未知错误。

Step3:坐标轴标定(关键)

特别关注:

1、程序版本R2008b 。

2、文件路径,Matlab 每次启动后会自动进入启动路径(startup directory),而程序编写时采用相对路径,所以请将jpg 文件和程序copy 到当前路径对应的文件

状态栏介绍: cpx 显示当前取点横坐标, cpy 显示当前取点纵坐标,两者均为相对值, num 显示当前鼠标取点总数目(注意,初始点数为2,然后存处4个坐标轴标定坐标,剩余用来存储曲线坐标)。

按钮功能介绍: zoom on 按钮?图像放大, zoom out 按钮?恢复初始显示大小, pan on 按钮?鼠标拖动图像, pan on/off 按钮?退出放大或者拖动操作模式,空格键?取点操作, delete 键?删除最近一次取点数据。

图4 坐标轴定标

坐标标定:本次需要标定四个坐标值,顺序依次为Ymax?Ymin?Xmin?Xmax。操作时首先按下zoom out按钮恢复原始图像显示,然后利用zoom on按钮放大图像、pan on按钮平移图像到合适位置后,按下pan on/off按钮退出放大或者拖动操作模式,最后按下空格键取点即可。如果操作失误,按下delete键可删除最近一次取点数据。

特别关注:

1、每次放大或者拖动操作完毕后,必须按下 pan on/off按钮,才能用空格键进行取点操作。

2、按下zoom on按钮后,还可以用鼠标中间的滚轮放大缩小图片,十分方便。

3、操作完毕,确认num显示为6后方可进行曲线描点。

Step4:曲线描点(关键)

按照上述操作反复进行图像放大、拖动、取点操作,取点时状态栏的cpx和cpy会显示当前相对坐标(注意,这个坐标图像坐标,y轴方向向下,后面坐标变换需要考虑)。根据需要确定取点数目,图5给出了描点完毕后的曲线,可以看出取点基本代表了曲线的全部信息。

图5 曲线描点

特别关注:

1、每次放大或者拖动操作完毕后,必须按下 pan on/off按钮,否则直接按下空格键会弹出matlab命令框。

2、曲线取点请按照先后顺序依次进行,程序中未对所有数据点重新排序。

Step5:数据处理及存储

首先按下 demo按钮,描点后的曲线会显示在图像当中,如图6所示;然后按下 process按钮,程序自动进行坐标转换(相对坐标?绝对坐标);最后在 save按钮下的文本框中对数据文本命名data(不需要后缀,默认txt文本),程序会将数据存入data.txt文件中。

图6 拟合曲线效果

图7 数据记录文本

Step6:数据后处理

由于data.txt文本中数据是手动选取的,分布不够均匀,直接使用不太方便,所以我们需要通过数据拟合,重新采样得到等间距的数据。运行data_poly.m或者data_poly.fig,得到图8所示的界面,该程序内置多项式拟合,其中nth代表多项式拟合的阶数(一般6就够用了),num代表重新采样的数据个数,xmin、ymin、xmax、ymax表示需要输出数据的横纵坐标范围,程序默认输入文本为data.txt, 输出

文本为ndata.txt ,数据拟合结果如下图所示。

中的图8 数据拟合再采样结果

可能大家会问,为什么两个程序不合在一起呢?原因在于数据拟合包含的种类很多,最基本的为多项式拟合,其他的有指数、三角函数等等,针对不同的曲线,所采取的拟合函数不尽相同,matlab cftoo 据提取过程完毕,只要大家按照步骤细心操作,提取曲线的速度和获得数据的精度应该能让你满意。

2、软件编写要点

imshow, findobj, num2str, strcat, load, save, get, set. 列表如下,更详细的介绍请参阅matlab help 文档要函数列表

ex l 工具箱包含了很多的拟合函数,当data_poly 拟合效果不好时,大家可以试试cftool 工具。

至此,数这两个小软件从构思到完成大概用了两天,功能的完成绝大部分归功于matlab 丰富的函数库和方便的GUI ,其中用到的主要函数主要有:imread,。

表1 主Ind Function Description 1 findobj ith specific properties Locate graphics objects w 2 get Query object properties 3

imread

Read image from graphics file

4 imshow Display image

5 load Load workspace variables from disk

6 num2str Convert number to string

7 save bles to disk Save workspace varia

8 set Set object properties

9

strcat

Concatenate strings horizontally

除了上述函数的掌握之外,还需要对matlab 的GUI 数据结构和函数响应有一定的理解,在此就不

写程序之前,首先心中要有一个框架,做些什么,怎么做,顺序如何等。本软件的结构如下图所示:

多讲了(多看matlab help 相关例程就明白了)。 编

图9 程序流程示意

导入图像程序段:

h_temp=findobj('tag','edit8');

str_img=strcat(get(h_temp,'String'),'.jpg'); %get fullname of picture image_temp=imread(str_img);

imshow(image_temp); %read and show

创建数据结构程序段:

handles.cpx=0;

handles.cpy=0;% gloable variables for current position of mouse handles.idata=zeros(2,2);% the key variable for obtaining curve data guidata(hObject, handles);

坐标轴定标及坐标变换:

%obtain input axis imformation

temp=str2num(get(findobj('tag','edit1'),'string'));

xmin=temp;

temp=str2num(get(findobj('tag','edit2'),'string'));

xmax=temp;

temp=str2num(get(findobj('tag','edit3'),'string'));

ymin=temp;

temp=str2num(get(findobj('tag','edit4'),'string'));

ymax=temp;

%save axis to global variable idata

idata(1:2,:)=[xmin,xmax;ymin,ymax];

idata=[idata;handles.idata(3:end,:)];

axis_p=idata(3:6,:);

data_p=idata(7:end,:); % class idata

xpmin=axis_p(3,1);

xpmax=axis_p(4,1);

ypmin=axis_p(1,2);

ypmax=axis_p(2,2);

%coordinate transform

data_new=data_p;

data_new(:,1)=data_p(:,1)-xpmin;

data_new(:,2)=ypmax-data_p(:,2);

data_new(:,1)=data_new(:,1)/(xpmax-xpmin);

data_new(:,2)=data_new(:,2)/(ypmax-ypmin);

data_new(:,1)=xmin+data_new(:,1)*(xmax-xmin);

data_new(:,2)=ymin+data_new(:,2)*(ymax-ymin);

%save results as a new variable

idata(7:end,:)=data_new;

handles.newidata=idata;

guidata(hObject,handles);

数据后处理代码段:

%obtain input data

x=handles.data(:,1);

y=handles.data(:,2);

n=str2double(get(findobj('tag','edit1'),'string'));

np=str2double(get(findobj('tag','edit2'),'string')); xmin=str2double(get(findobj('tag','edit3'),'string')); xmax=str2double(get(findobj('tag','edit4'),'string')); %data fitting and samlping

p=polyfit(x,y,n);

xnew=[xmin:(xmax-xmin)/(np-1):xmax]';

ynew=polyval(p,xnew);

%save results and plot curve

plot(x,y,'-*b',xnew,ynew,'-+r');

legend('orignal','fitting');

handles.ndata=[xnew,ynew];

guidata(hObject,handles);

3、附录

3.1 描点数据列表

index x y index x y

10.0663900.4432563110.0774380.253223

20.1481530.4380023210.5563350.250863

30.2415960.4319473311.2237890.247257

40.3934420.4257133411.8078090.243784

50.5458010.4168973512.3618110.241112

60.6363240.4099963612.9750330.238485

70.7940100.4039413713.4441890.236304

80.9660660.3944123814.0398910.233766

9 1.1149910.3878673914.4895870.231361

10 1.3636120.3770924014.9058770.229847

11 1.5037770.3710814115.3672530.227755

12 1.7609900.3616424215.7614670.226464

13 1.9770780.3540724316.3033020.224371

14 2.3941120.3418284416.9136040.221877

15 2.7007230.3343924517.2815370.220497

16 3.1209610.3250424617.8184570.218983

17 3.5268550.3175624718.3148750.216891

18 3.9142760.3115064818.7295300.215510

19 4.2354870.3066094919.3399400.214397

20 4.4778560.3030025019.7020320.212972

21 4.8165880.2987725119.9852820.212216

22 5.3420310.292049

23 5.6428010.288665

24 6.0486960.284346

25 6.6502030.278736

267.0823790.274862

277.7841300.269030

288.2338260.265512

298.8966760.260792

309.3960130.257809

3.2 数据拟合结果

Linear model Poly9:

fittedmodel1(x) = p1*x^9 + p2*x^8 + p3*x^7 + p4*x^6 +

p5*x^5 + p6*x^4 + p7*x^3 + p8*x^2 + p9*x + p10

Coefficients (with 95% confidence bounds):

p1 = 1.116e-010 (5.79e-011, 1.653e-010)

p2 = -1.047e-008 (-1.528e-008, -5.669e-009)

p3 = 4.105e-007 (2.304e-007, 5.905e-007)

p4 = -8.65e-006 (-1.231e-005, -4.986e-006)

p5 = 0.0001044 (6.051e-005, 0.0001483)

p6 = -0.0006919 (-0.001006, -0.0003775)

p7 = 0.001806 (0.0005058, 0.003107)

p8 = 0.005695 (0.002846, 0.008543)

p9 = -0.06124 (-0.06399, -0.05849)

p10 = 0.4474 (0.4466, 0.4482)

3.3、重新采样数据列表

index x y index x y

10.0000000.4473685110.1010100.253098

20.2020200.4352425210.3030300.251962

30.4040400.4236555310.5050510.250856

40.6060610.4126615410.7070710.249775

50.8080810.4022915510.9090910.248718

6 1.0101010.3925615611.1111110.247681

7 1.2121210.3834755711.3131310.246660

8 1.4141410.3750215811.5151520.245653

9 1.6161620.3671825911.7171720.244658

10 1.8181820.3599326011.9191920.243671

11 2.0202020.3532406112.1212120.242691

12 2.2222220.3470736212.3232320.241715

13 2.4242420.3413926312.5252530.240744

14 2.6262630.3361606412.7272730.239776

15 2.8282830.3313376512.9292930.238810

16 3.0303030.3268876613.1313130.237846

17 3.2323230.3227716713.3333330.236886

18 3.4343430.3189556813.5353540.235930

19 3.6363640.3154056913.7373740.234980

20 3.8383840.3120887013.9393940.234036

21 4.0404040.3089787114.1414140.233101

22 4.2424240.3060487214.3434340.232177

23 4.4444440.3032737314.5454550.231266

24 4.6464650.3006357414.7474750.230370

25 4.8484850.2981137514.9494950.229491

26 5.0505050.2956937615.1515150.228630

27 5.2525250.2933627715.3535350.227789

28 5.4545460.2911077815.5555560.226970

29 5.6565660.2889217915.7575760.226173

30 5.8585860.2867968015.9595960.225397

31 6.0606060.2847278116.1616160.224642

32 6.2626260.2827088216.3636360.223907

33 6.4646470.2807388316.5656570.223189

34 6.6666670.2788158416.7676770.222486

35 6.8686870.2769378516.9696970.221795

367.0707070.2751048617.1717170.221111 377.2727270.2733168717.3737370.220432 387.4747480.2715748817.5757580.219752 397.6767680.2698788917.7777780.219069 407.8787880.2682289017.9797980.218379 418.0808080.2666259118.1818180.217681 428.2828280.2650709218.3838380.216974 438.4848490.2635629318.5858590.216264 448.6868690.2621019418.7878790.215555 458.8888890.2606879518.9898990.214861 469.0909090.2593189619.1919190.214198 479.2929290.2579939719.3939390.213591 489.4949500.2567119819.5959600.213076 499.6969700.2554709919.7979800.212698 509.8989900.25426610020.0000000.212516

MATLAB曲线拟合的应用

MATLAB曲线拟合的应用 王磊品吴东 新疆泒犨泰克石油科技有限公司新疆油田公司准东采油厂信息所 摘要:1.阐述MATLAB数学分析软件的基本功能; 2.对MATLAB在生产数据分析中的应用进行了研究,指出曲线拟合的基本方法; 3.以实例阐明MATLAB与行业生产数据结合对生产数据进行分析的原理。 关键词:MATLAB;曲线拟合;插值 1.引言 在生产开发过程中,复杂的生产数据之间或多或少的存在着这样或者那样的联系,如何利用现今普及的计算机以及网络资源在最短的时间内找到这个联系,以指导我们的生产开发,这对于行业科研人员来说无疑是一个最为关心的问题。MATLAB矩阵分析软件,自推出以来,已成为国际公认的最优秀的数学软件之一,其范围涵盖了工业、电子、医疗以及建筑等各个领域,以其强大的科学计算功能使众多科研机构纷纷采用。 为此,本文从介绍MATLAB软件开始,以实例讲述如何使用MATLAB对生产开发数据进行计算与分析,从而达到高效、科学指导生产的目的。 2.MATLAB简介 MATLAB是MathWorks公司于1982年推出的一套高性能的数值计算和可视化数学软件。由于使用编程运算与人进行科学计算的思路和表达方式完全一致,所以不象学习其它高级语言那样难于掌握,用Matlab编写程序犹如在演算纸上排列出公式与求解问题,所以又被称为演算纸式科学算法语言。在这个环境下,对所要求解的问题,用户只需简单地列出数学表达式,其结果便以数值或图形方式显示出来。 MATLAB的含义是矩阵实验室(MATRIX LABORATORY),主要用于方便矩阵的存取,其基本元素是无须定义维数的矩阵。自问世以来, 就是以数值计算称雄。MATLAB进行数值计算的基本单位是复数数组(或称阵列),这使得MATLAB高度“向量化”。经过十几年的完善和扩充,现已发展成为线性代数课程的标准工具。由于它不需定义数组的维数,并给出矩阵函数、特殊矩阵专门的库函数,使之在求解诸如信号处理、建模、系统识别、控制、优化等领域的问题时,显得大为简捷、高效、方便,这是其它高级语言所不能比拟的。美国许多大学的实验室都安装有供学习和研究之用。 MATLAB中包括了被称作工具箱(TOOLBOX)的各类应用问题的求解工具。工具箱实际上是对MATLAB进行扩展应用的一系列 MATLAB函数(称为M文件),它可用来求解各类学科的问题,包括信号处理、图象处理、控制系统辨识、神经网络等。随着 MATLAB版本的不断升

matlab曲线拟合实例

曲线拟合 求二次拟合多项式 解:(一)最小二乘法MA TLAB编程: function p=least_squar(x,y,n,w) if nargin<4 w=1 end if nargin<3 n=1 end m=length(y); X=ones(1,m) if m<=n error end for i=1:n X=[(x.^i);X] end A=X*diag(w)*X';b=X*(w.*y)';p=(A\b)' 输入: x=[1 3 5 6 7 8 9 10]; y=[10 5 2 1 1 2 3 4] p=least_squar(x,y,2) 运行得: p = 0.2763 -3.6800 13.4320 故所求多项式为:s(x)=13.432-3.68x+0.27632x (二)正交多项式拟合MATLAB编程: function p=least_squar2(x,y,n,w) if nargin<4 w=1; end if nargin<3 n=1; end m=length(x); X=ones(1,m); if m<=n error end for i=1:n X=[x.^i;X]; end A=zeros(1,n+1);

A(1,n+1)=1; a=zeros(1,n+1); z=zeros(1,n+1); for i=1:n phi=A(i,:)*X;t=sum(w.*phi.*phi); b=-sum(w.*phi.*x.*phi)/t a(i)=sum(w.*y.*phi)/t; if i==1 c=0;else c=-t/t1; end t1=t for j=1:n z(j)=A(i,j+1); end z(n+1)=0 if i==1 z=z+b*A(i,:); else z=z+b*A(i,:)+c*A(i-1,:); end A=[A;z]; end phi=A(n+1,:)*X;t=sum(w.*phi.*phi); a(n+1)=sum(w.*y.*phi)/t; p=a*A; 输入: x=[1 3 5 6 7 8 9 10]; y=[10 5 2 1 1 2 3 4]; p=least_squar2(x,y,2) 运行得: b = -6.1250 t1 = 8 z = 0 1 0 b = -4.9328 t1 = 64.8750 z = 1.0000 -6.1250 0 p = 0.2763 -3.6800 13.4320 故所求多项式为:s(x)=13.432-3.68x+0.27632x

Matlab最小二乘法曲线拟合的应用实例

MATLAB机械工程 最小二乘法曲线拟合的应用实例 班级: 姓名: 学号: 指导教师:

一,实验目的 通过Matlab上机编程,掌握利用Matlab软件进行数据拟合分析及数据可视化方法 二,实验内容 1.有一组风机叶片的耐磨实验数据,如下表所示,其中X为使用时间,单位为小时h,Y为磨失质量,单位为克g。要求: 对该数据进行合理的最小二乘法数据拟合得下列数据。 x=[10000 11000 12000 13000 14000 15000 16000 17000 18000 19000 2 0000 21000 22000 23000]; y=[24.0 26.5 29.8 32.4 34.7 37.7 41.1 42.8 44.6 47.3 65.8 87.5 137.8 174. 2] 三,程序如下 X=10000:1000:23000; Y=[24.0,26.5,29.8,32.4,34.7,37.7,41.1,42.8,44.6,47.3,65.8,87.5,137.8,17 4.2] dy=1.5; %拟合数据y的步长for n=1:6 [a,S]=polyfit(x,y,n); A{n}=a;

da=dy*sqrt(diag(inv(S.R′*S.R))); Da{n}=da′; freedom(n)=S.df; [ye,delta]=polyval(a,x,S); YE{n}=ye; D{n}=delta; chi2(n)=sum((y-ye).^2)/dy/dy; end Q=1-chi2cdf(chi2,freedom); %判断拟合良好度 clf,shg subplot(1,2,1),plot(1:6,abs(chi2-freedom),‘b’) xlabel(‘阶次’),title(‘chi2与自由度’) subplot(1,2,2),plot(1:6,Q,‘r’,1:6,ones(1,6)*0.5) xlabel(‘阶次’),title(‘Q与0.5线’) nod=input(‘根据图形选择适当的阶次(请输入数值)’); elf,shg, plot(x,y,‘kx’);xlabel(‘x’),ylabel(‘y’); axis([8000,23000,20.0,174.2]);hold on errorbar(x,YE{nod},D{nod},‘r’);hold off title(‘较适当阶次的拟合’) text(10000,150.0,[‘chi2=’num2str(chi2(nod))‘~’int2str(freedom(nod))])

曲线拟合的最小二乘法matlab举例

曲线拟合的最小二乘法 学院:光电信息学院 姓名:赵海峰 学号: 200820501001 一、曲线拟合的最小二乘法原理: 由已知的离散数据点选择与实验点误差最小的曲线 S( x) a 0 0 ( x) a 1 1(x) ... a n n ( x) 称为曲线拟合的最小二乘法。 若记 m ( j , k ) i (x i ) j (x i ) k (x i ), 0 m (f , k ) i0 (x i )f (x i ) k (x i ) d k n 上式可改写为 ( k , jo j )a j d k ; (k 0,1,..., n) 这个方程成为法方程,可写成距阵 形式 Ga d 其中 a (a 0,a 1,...,a n )T ,d (d 0,d 1,...,d n )T , 、 数值实例: 下面给定的是乌鲁木齐最近 1个月早晨 7:00左右(新疆时间 )的天气预报所得 到的温度数据表,按照数据找出任意次曲线拟合方程和它的图像。 它的平方误差为: || 2 | 2 ] x ( f

(2008 年 10 月 26~11 月 26) F 面应用Matlab 编程对上述数据进行最小二乘拟合 三、Matlab 程序代码: x=[1:1:30]; y=[9,10,11,12,13,14,13,12,11,9,10,11,12,13,14,12,11,10,9,8,7,8,9,11,9,7,6,5,3,1]; %三次多项式拟合% %九次多项式拟合% %十五次多项式拟合% %三次多项式误差平方和 % %九次次多项式误差平方和 % %十五次多项式误差平方和 % %用*画出x,y 图像% %用红色线画出x,b1图像% %用绿色线画出x,b2图像% %用蓝色o 线画出x,b3图像% 四、数值结果: 不同次数多项式拟和误差平方和为: r1 = 67.6659 r2 = 20.1060 r3 = 3.7952 r1、r2、r3分别表示三次、九次、十五次多项式误差平方和 拟和曲线如下图: a 仁polyfit(x,y,3) a2= polyfit(x,y,9) a3= polyfit(x,y,15) b1= polyval(a1,x) b2= polyval(a2,x) b3= polyval(a3,x) r1= sum((y-b1).A 2) r2= sum((y-b2).A2) r3= sum((y-b3).A2) plot(x,y,'*') hold on plot(x,b1, 'r') hold on plot(x,b2, 'g') hold on plot(x,b3, 'b:o')

MATLAB中简单的数据拟合方法与应用实例①

MATLAB中简单的数据拟合方法与应用实例 仅供努力学习matlab的同学们参考参考,查阅了M多资料,总结了以下方法 按步骤做能够基本学会matlab曲线拟合的 1.1数据拟合方法 1.1.1多项式拟合 1.多项式拟合命令 polyfit(X,Y,N):多项式拟合,返回降幂排列的多项式系数。 Polyval(P,xi):计算多项式的值。 其中,X,Y是数据点的值;N是拟合的最高次幂;P是返回的多项式系数;xi是要求的横坐标 拟合命令如下: x=[1 2 3 4 5 6 7 8 9]; y=[9 7 6 3 -1 2 5 7 20]; P=polyfit(x,y,3); xi=0:.2:10; yi=polyval(P,xi); plot(xi,yi,x,y,'r*'); 拟合曲线与原始数据如图1-1 图1-1 2图形窗口的多项式拟合 1)先画出数据点如图1-2 x=[1 2 3 4 5 6 7 8 9]; y=[9 7 6 3 -1 2 5 7 20]; plot(x,y,'r*');

图1-2 2)在图形窗口单击Tools—Basic Fitting,如图1-3勾选. 图1-3 图1-3右方分别是线性、二阶、三阶对数据进行多项式拟合。下面的柱状图显示残差,可以看出,三阶多项式的拟合效果是最好的。 1.1.2指定函数拟合 已知M组数据点和对应的函数形式f t (t)=acos(kt)e X Y 编写M文件:

syms t x=[0;0.4;1.2;2;2.8;3.6;4.4;5.2;6;7.2;8;9.2;10.4;11.6;12.4;13.6;14.4;15]; y=[1;0.85;0.29;-0.27;-0.53;-0.4;-0.12;0.17;0.28;0.15;-0.03;-0.15;-0.071;0.059;0.08;0.032;-0.015;-0.02]; f=fittype('a*cos(k*t)*exp(w*t)','independent','t','coefficients',{'a','k','w'}); cfun=fit(x,y,f) xi=0:.1:20; yi=cfun(xi); plot(x,y,'r*',xi,yi,'b-'); 图1-4 运行程序,在命令窗口可达到以下运行结果,图像如图1-4 Warning: Start point not provided, choosing random start point. > In fit>handlewarn at 715 In fit at 315 In Untitled2 at 5 cfun = General model: cfun(t) = a*cos(k*t)*exp(w*t) Coefficients (with 95% confidence bounds): a = 0.9987 ( 0.9835, 1.014) k = 1.001 (0.9958, 1.006) w = -0.2066 (-0.2131, -0.2002) 从结果可以看出,拟合的曲线为: (0.2066) ()0.9987cos(1.001)*t f t t e- =。拟 合曲线给出了数据大致趋势,并给出了各参数的置信区间。

matlab曲线拟合2010a演示

2010a版本曲线拟合工具箱 一、单一变量的曲线逼近 Matlab有一个功能强大的曲线拟合工具箱cftool ,使用方便,能实现多种类型的线性、非线性曲线拟合。下面结合我使用的Matlab R2007b 来简单介绍如何使用这个工具箱。 假设我们要拟合的函数形式是y=A*x*x + B*x, 且A>0,B>0。 1、在主命令输入数据: x=233.8:0.5:238.8; y=[235.148 235.218 235.287 235.357 235.383 235.419 235.456 235.49 235.503 235.508 235.536]; 2、启动曲线拟合工具箱 cftool(x,y) 3、进入曲线拟合工具箱界面“Curve Fitting tool” 如图 (1)利用X data和Y data的下拉菜单读入数据x,y,可在Fit name修改数据集名,这时会自动画出数据集的曲线图;

(2)在红色区域选择拟合曲线类型 工具箱提供的拟合类型有: ?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)^2) ?Interpolant:插值逼近,有4种类型,linear、nearest neighbor、cubicspline、shape-preserving ?Polynomial:多形式逼近,有9种类型,linear ~、quadratic ~、cubic ~、4-9th degree~ ?Power:幂逼近,有2种类型,a*x^b 、a*x^b + c ?Rational:有理数逼近,分子、分母共有的类型是linear ~、quadratic ~、cubic ~、4-5th degree~;此外,分子还包括constant型 ?Smoothing Spline:平滑逼近(翻译的不大恰当,不好意思) ?Sum of Sin Functions:正弦曲线逼近,有8种类型,基础型是a1*sin(b1*x + c1) ?Weibull:只有一种,a*b*x^(b-1)*exp(-a*x^b) 在results一栏看结果

MATLAB数据拟合例子

MATLAB数据拟合例子(一次函数、指数函数、双曲线) (2010-06-03 01:44:30)转载▼ 分类:数学工具 标签:杂 谈 一次函数:(a+bx = y) %先求出拟合函数 format long; x = [2001 2002 2003 2004 2005 2006 2007 2008 2009]; y = [32.2 31.3 29.7 28.6 27.5 26.1 25.3 23.7 22.7]; d = [1 1 1 1 1 1 1 1 1]; a=[d;x]; b = a*y'; a=a*a'; c=a\b c = 1.0e+003 * 2.436797222221444 -0.001201666666666 %所以,拟合函数为 y = 1.0e+003 *(2.436797222221444 - 0.001201666666666*x %根据拟合函数求估测值 format short; x = [2010, 2011, 2012, 2013, 2014] 1.0e+003 *( 2.436797222221444 - 0.001201666666666*x) ans = 21.4472 20.2456 19.0439 17.8422 16.6406

指数函数:( y = exp(a + b*x)) >> x = [2001 2002 2003 2004 2005 2006 2007 2008 2009]; y = [21.5 15.9 11.8 8.7 6.5 4.8 3.5 2.6 2.0]; y=log(y'); d = [1 1 1 1 1 1 1 1 1]; a=[d;x]; b = a*y; a=a*a'; c=a\b c = 601.9448 -0.2993 %所以,拟合函数为 y = exp(601.9448 - 0.2993*x) %根据拟合函数求估测值 >> x = [2010, 2011, 2012, 2013, 2014] exp(601.9448 - 0.2993*x) ans = 1.4216 1.0539 0.7813 0.5792 0.4294 双曲线:(1/y = a + b/x) format long;

matlab数据拟合,有图有例子,一看就会

Matlab CFTool使用简介: 单一变量的曲线逼近 Matlab有一个功能强大的曲线拟合工具箱 cftool ,使用方便,能实现多种类 型的线性、非线性曲线拟合。下面结合我使用的 Matlab R2007b 来简单介绍如何使用这个工具箱。 假设我们要拟合的函数形式是 y=A*x*x + B*x, 且A>0,B>0 。 1、在命令行输入数据: 》x=[你的X轴数据]; 》y=[你的Y轴数据]; 》cftool 可以将上面三个行建立一个M文件,以便后面进行数据拟合时可以直接使用,点击运行即可进入曲线拟合工具箱界面“Curve Fitting tool” (1)点击“Data”按钮,弹出“Data”窗口; (2)利用X data和Y data的下拉菜单读入数据x,y,可修改数据集名“Data set name”,然后点击“Create data set”按钮,退出“Data”窗口,返回工具箱界面,这时会自动画出数据集的曲线图; (3)点击“Fitting”按钮,弹出“Fitting”窗口; (4)点击“New fit”按钮,可修改拟合项目名称“Fit name”,通过“Data set”下拉菜单选择数据集,然后通过下拉菜单“Type of fit”选择拟合曲线的类型,工具箱提供的拟合类型有: ?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)^2) ?Interpolant:插值逼近,有4种类型,linear、nearest neighbor、cubic spline、shape-preserving ?Polynomial:多形式逼近,有9种类型,linear ~、quadratic ~、cubic ~、4-9th degree ~ ?Power:幂逼近,有2种类型,a*x^b 、a*x^b + c ?Rational:有理数逼近,分子、分母共有的类型是linear ~、quadratic ~、cubic ~、4-5th degree ~;此外,分子还包括constant型 ?Smoothing Spline:平滑逼近(翻译的不大恰当,不好意思) ?Sum of Sin Functions:正弦曲线逼近,有8种类型,基础型是a1*sin(b1*x + c1) ?Weibull:只有一种,a*b*x^(b-1)*exp(-a*x^b) 选择好所需的拟合曲线类型及其子类型,并进行相关设置: ——如果是非自定义的类型,根据实际需要点击“Fit options”按钮,设置拟合算法、修改待估计参数的上下限等参数; ——如果选Custom Equations,点击“New”按钮,弹出自定义函数等式窗口,有“Linear Equations线性等式”和“General Equations构造等式”两种标签。

MATLAB在非线性曲线拟合中的应用研究

MATLAB 在非线性曲线拟合中的应用小结 摘要:归纳总结了非线性曲线拟合的方法、求解步骤和上机操作过程 关键词:曲线拟合非线性MAT LAB 正文: 1.曲线拟合的基本原理 已知一组测定的数据(例如N个点(xi,yi )去求得自变量x和因变量y 的一个近似解析表达式y=φ(x)。若记误差δi=φ(xi )-yi ,i=1,2,…N ,则要使误差的平方和最小,即要求: ∑==N i i Q 12δ 为最小,这就是常用的最小二乘法原理。 2 .MATLAB 曲线拟合的相关方法 2.1.函数形式: (1)多项式拟合函数po ly fit ,调用格式为: p =polyfit (x ,y,n ) 其中x ,y 为参与曲线拟合的实验数据,n为拟合多项式的次数,函数返回值为拟合多项式的系数(按降幂排列)。n =1时,就为线性拟合。 例1:给出表1数据,试用最小二乘法求一次和二次拟合多项式。 表1 数据 在M AT LAB 命令窗口中输入: cle ar ; cl os e; x=-1:0.25:1; y=[-0.2209,0.3295,0.8826,1.4392,2.0003,2.5645,3.1334,3.7061,4.2836] p1=p olyfit(x,y ,1) p2=po lyf it(x,y,2) y 1=polyva l(p 1,x); y 2=p oly val(p2,x); pl ot(x,y,'+',x,y1,'r:',x ,y 2,'k-.')

运行结果: 拟合多项式为:y*=2.0516+2.0131和y *=0.0313x2+2.2516x +2.20001 (2)非线性数据拟合函数lsq cu rvefit 调用格式为: c=ls qcur vefi (t 'f un',x0,xdata,yd ata ) 其中'fun'为拟合函数的M-函数文件名,x0为初始向量,x data ,ydat a为参与曲线拟合的实验数据。函数返回值c为非线性函数fun 的拟合系数。 例2:2004年全国大学生数学建模竞赛C 题(酒后驾车)中给出某人在短时间内喝下两瓶啤酒后,间隔一定的时间测量他的血液中酒精含量y (毫克/百毫升),得到数据如表2。 表2 酒精含量与饮酒时间的实验数据 通过建立微分方程模型得到短时间内喝酒后血液中 酒精浓度与时间的关系为: )(321t c t c e e c y ---= (2) 根据实验数据,利用非线性拟合函数ls qcurve fit ,确定模型(2)式中的参数c 1,c 2,c3。求解过程为: 先编写一个M -函数文件Example2_1: fun ction f=Ex ample2_1(c,td ata) f =c(1)*(ex p(-c(2)*t data)-exp (-c(3)*t da ta )); 保存后,在命令窗口中输入: clea r tdata=[0.25 0.5 0.75 1 1.5 2 2.5 3 3.5 4 4.5 5 6 7 8 9 10 11 12 13 14 15 16]; 时间(小时) 0.25 0.5 0.75 1 1.5 2 2.5 3 3.5 4 4.5 5 酒精含量 30 68 75 82 82 77 68 68 58 51 50 41 时间(小时) 6 7 8 9 1 16 酒精含量 38 35 28 25 18 15 12 10 7 7 4

Matlab 曲面插值和拟合

得用拟合或插值。 常用的拟合有多项式拟合POLYFIT 插值有INTERP1,SPLINE,LAGR1等。。。 在Matlab中,用于曲线和曲面平滑的方法与函数很多,曲线平滑可用smooth和smoothts 等,三维数据可用smooth3,另外样条工具箱中也有不少可用于平滑数据的函数,如三次样条csaps和B样条spaps等。 matlab中三维作图功能总结2007-12-09 11:29plot3 画三维坐标中的点,连线,但只能顺序连接。 surf(X,Y,Z) 用X和Y定义x-y坐标网格,Z定义网格上每一点的高度,来生成三维曲面。如:[X,Y,Z] = peaks(30);surf(X,Y,Z) mesh,和surf一样,只不过生成的是网格。 surface 用法也一样。 fill3 只能生成平面。重点在色彩。 [X,Y,Z]=meshgrid(1:3,1:3,1:5) 生成3*3*5的三维网格,X,Y,Z都是3*3*5三维矩阵。 这只是生成坐标网格,还需要一个V(X,Y,Z)定义图形。 ndgrid 生成三维以上网格时用。 smooth3 作用于体数据,使光滑 isosurface X,Y,Z如meshgrid的定义。 V中元素为1则表示存在,即要显示。但要连成片的1才会显示。 V中元素如a>1时,表示要显示的这个点离上方的网格距离是单位距离的1/a 圆滑程度由isovalue决定,0.9999是最硬,越接近0越圆滑。可同时配合isocaps. isocaps 生成并显示图形与坐标系交界处的平面。 patch 接收isosuface返回的参数,生成图形。

Matlab 曲面插值和拟合 附录: Matlab 样条工具箱(Spline ToolBox)【信息来源教师博客】 Matlab样条工具箱中的函数提供了样条的建立,操作,绘制等功能; 一. 样条函数的建立 第一步是建立一个样条函数,曲线或者曲面。这里的样条函数,根据前缀,分为4类: cs* 三次样条 pp* 分段多项式样条,系数为t^n的系数 sp* B样条, 系数为基函数B_n^i(t)的系数 rp* 有理B样条 二. 样条操作 样条操作包括:函数操作:求值,算术运算,求导求积分等等 节点操作:主要是节点重数的调节,设定,修改等等 附:样条工具箱函数 1. 三次样条函数 csapi 插值生成三次样条函数 csape 生成给定约束条件下的三次样条函数 csaps 平滑生成三次样条函数 cscvn 生成一条内插参数的三次样条曲线 getcurve 动态生成三次样条曲线 2. 分段多项式样条函数

matlab拟合实例

散点图 >> x=0:0.1:1; >> y=[0.99567,0.99334,1.0413,1.0929,1.1485,1.2619,1.3719,1.4896,1.6433,1.8117,.9981]; >> plot(x,y,'ok'),title('散点图') 多项式拟合 >> x=0:0.1:1; >> y=log(1+x); >> P=polyfit(x,y,3) 对观测数据x,y作3阶多项式拟合 P = 0.1079 -0.3974 0.9825 0.0004 >> xi=0:0.1:1; >> yi=polyval(P,xi); >> plot(x,y,'or'); >> hold on; >> plot(xi,yi,'b'); >> plot(xi,log(1+xi),'g'); >> plot(xi,log(1+xi),'y'); >> plot(xi,log(1+xi),'g'); >> xlabel('x'); >> ylabel('y'); >> legend('采样数据','拟合曲线','精确曲线')

指数函数拟合 >> x=0:0.01:0.99; >> y=1-sqrt(x); >> P=polyfit(x,log(y),1) P = -3.3761 0.2071 >> yi=exp(polyval(P,x)); >> plot(x,y,'.k') >> plot(x,y,'.k') >> hold on >> plot(x,yi,'g') >> xlabel('x') >> ylabel('y') >> legend('采样数据','拟合曲线'); >> hold off;

matlab做拟合曲线应用方法实例

matlab曲线拟合函数用法以及例子 在运行MATLAB编程进行数据的处理过程当中,我们常常用到matlab曲线拟合,但是工具箱由于需要人工交互,得到的拟合结果,需要人工的去提取,再输入,所以,工具箱拟合结果十分不适合调用,以及继续下面的操作,所以我们需要用到matlab曲线拟合函数,并且以最常用的多项式拟合函数为例作为matlab曲线拟合例子,进行详细介绍。 工具/原料 MATLAB matlab曲线拟合 1. 1 数据准备: 关于MATLAB曲线拟合,为了相互统一,采用下面的数据: x=[0 0.3000 0.6000 0.9000 1.2000 1.5000 1.8000 2.1000 2.4000 2.7000 3.0000] y=[2.0000 2.3780 3.9440 7.3460 13.2320 22.2500 35.0480 52.2740 74.5760 102.6020 137.0000] 由函数y=4*x^3+3*x^2+2 产生。

2. 2 函数命令拟合: MATLAB为我们提供了多项式拟合函数命令polyfit,下面我们就用这个函数命令进行拟合。 在MATLAB主窗口中输入 y1=polyfit(x,y,3),回车 我们会看到下面结果: y1 = 4.0000 3.0000 0.0000 2.0000 3. 3 函数的说明: y1=polyfit(x,y,N),这里函数polyfit第一个参数传递的是拟合数据的自变量,第二个参数是因变量,第三个参数是拟合多项式的阶数,这个由我们给定。如下图。我们可以给定不同的N,运用不同的多项式进行拟合。 输出结果: 在上面的例子中我们看到输出的结果是: y1 =

曲线拟合的最小二乘法matlab举例

曲线拟合的最小二乘法 学院:光电信息学院 姓名:赵海峰 学号:200820501001 一、曲线拟合的最小二乘法原理: 由已知的离散数据点选择与实验点误差最小的曲线 )(...)()()(1100x a x a x a x S n n ???+++= 称为曲线拟合的最小二乘法。 若记 ),()()(),(0 i k i j m i i k j x x x ??ω??∑== k i k i m i i k d x x f x f ≡=∑=)()()(),(0 ?ω? 上式可改写为),...,1,0(;),(n k d a k j n o j j k -=∑=??这个方程成为法方程,可写成距阵 形式 d Ga = 其中,),...,,(,),...,,(1010T n T n d d d d a a a a == ???? ????????=),(),(),()(),(),(),(),(),(10 1110101000n n n n n n G ?????????????????? 。 它的平方误差为:.)]()([)(||||20 22i i m i i x f x S x -= ∑=ωδ 二、数值实例: 下面给定的是乌鲁木齐最近1个月早晨7:00左右(新疆时间)的天气预报所得 到的温度数据表,按照数据找出任意次曲线拟合方程和它的图像。

下面应用Matlab编程对上述数据进行最小二乘拟合 三、Matlab程序代码: x=[1:1:30]; y=[9,10,11,12,13,14,13,12,11,9,10,11,12,13,14,12,11,10,9,8,7,8,9,11,9,7,6,5,3,1]; a1=polyfit(x,y,3) %三次多项式拟合% a2= polyfit(x,y,9) %九次多项式拟合% a3= polyfit(x,y,15) %十五次多项式拟合% b1=polyval(a1,x) b2=polyval(a2,x) b3=polyval(a3,x) r1= sum((y-b1).^2) %三次多项式误差平方和% r2= sum((y-b2).^2) %九次次多项式误差平方和% r3= sum((y-b3).^2) %十五次多项式误差平方和% plot(x,y,'*') %用*画出x,y图像% hold on plot(x,b1, 'r') %用红色线画出x,b1图像% hold on plot(x,b2, 'g') %用绿色线画出x,b2图像% hold on plot(x,b3, 'b:o') %用蓝色o线画出x,b3图像% 四、数值结果: 不同次数多项式拟和误差平方和为: r1 = 67.6659 r2 = 20.1060 r3 = 3.7952 r1、r2、r3分别表示三次、九次、十五次多项式误差平方和。 拟和曲线如下图:

MATLAB曲线拟合

Mathworks Tech-Note 1508 曲线拟合向导 1.介绍 2. Mathworks 产品的曲线拟合特色 a.曲线拟合工具箱(Curve Fitting Toolbox) b.Matlab 内建函数与其他的带有曲线拟合能力的附加产品(工具箱) c.线性曲线拟合 d.非线性曲线拟合 3.加权曲线拟合方法 a.曲线拟合工具箱 b.统计工具箱 c.优化工具箱 4.利用曲线拟合工具箱提高曲线拟合结果 5.其他的相关资料 第1节:简介 MA TLAB即有内建的解决很多通常遇到的曲线拟合问题的能力,又具有附加这方面的产品。本技术手册描述了几种拟合给定数据集的曲线的方法,另外,本手册还解释了加权曲线拟合、针对复数集的曲线拟合以及其他一些相关问题的拟合技巧。在介绍各种曲线拟合方法中,采用了典型例子的结合介绍。 第2节:MathWorks产品的曲线拟合特色 MATLAB有可以用于曲线拟合的内建函数。MathWorks公式也提供了很多工具箱可以用于曲线拟合。这些方法可以用来做线性或者非线性曲线拟合。MATLAB也有一个开放的工具箱――曲线拟合工具箱(Curve Fitting Toolbox),她可以用于参数拟合,也可以用于非参数拟合。本节将介绍曲线拟合工具箱与其他工具箱、以及各种MA TLAB可以用于曲线拟合的内建函数的详细特征。 a.曲线拟合工具箱 曲线拟合工具箱是专门为数据集合进行曲线拟合而设计的。这个工具箱集成了用MA TLAB建立的图形用户界面(GUIs)和M文件函数。

?利用工具箱的库方程(例如线性,二次,高阶多项式等)或者是用户自定义方程(局限于用户的想象力)可以进行参数拟合。当你想找出回归系数以及他们背后的物理意义的时候就可以采用参数拟合。 ?通过采用平滑样条或者其他各种插值方法,你就可以进行非参数拟合。当回归系数不具有物理意义并且不在意他们的时候,就采用非参数拟合方法。 曲线拟合工具箱提供了如下功能: ?数据回归,譬如截面(?sectioning)与平滑; ?标准线性最小二乘拟合,非线性最小二乘拟合,加权最小二乘拟合,约束二乘(constrained least squares)拟合以及稳健(robust)拟合; ?根据诸如R2以及误差平方和(SSE)确定的拟合性能的统计特征。 请查阅曲线拟合工具箱提供的demos。 b. MATLAB内建函数与具有曲线拟合能力的其他工具箱 除了曲线拟合工具箱,MATALB与其他工具箱也提供了些可以用于解决线性和非线性曲线拟合的功能。本节列举并解释了其中几个。 c.利用MATLAB内建函数进行线性曲线拟合 函数描述 polyfit 用多项式进行数据拟合。polyfit(X,Y,N)对数据X,Y拟合N阶多项式系数,P(X(I))~=Y(I),在最小二乘意义上。 \ 反斜线或者矩阵阵左除。如果A是一个方阵,A\B 基本上与 inv(A)*B一致的,是采用的不同计算方式而已。 polyval 在给定点计算多项式的值 corrcoef 计算两个向量的相关系数。它可以与polyfit和polyval函数一起用来在实际数据和拟合输出之间计算R2相关系数 下面给出一个利用corref计算R2值的例子: load census [p,s]=polyfit(cdate,pop,2); Output=polyval(p,cdate); Corrolation=corroef(cate,Output); cdate 与它自身很好的相关,同样的Output也与它自身很好相关。反对角线上元素是

matlab曲线拟合向导

MATLAB曲线拟合向导 主要内容: 1.介绍 2.Mathworks 产品的曲线拟合特色 a.曲线拟合工具箱(Curve Fitting Toolbox) b.Matlab 内建函数与其他的带有曲线拟合能力的附加产品(工具箱) c.线性曲线拟合 d.非线性曲线拟合 3.加权曲线拟合方法 a.曲线拟合工具箱 b.统计工具箱 c.优化工具箱 4.利用曲线拟合工具箱提高曲线拟合结果 5.其他的相关资料 第1节:简介 MATLAB即有内建的解决很多通常遇到的曲线拟合问题的能力,又具有附加这方面的产品。本技术手册描述了几种拟合给定数据集的曲线的方法,另外,本手册还解释了加权曲线拟合、针对复数集的曲线拟合以及其他一些相关问题的拟合技巧。在介绍各种曲线拟合方法中,采用了典型例子的结合介绍。 第2节:MathWorks产品的曲线拟合特色 MATLAB有可以用于曲线拟合的内建函数。MathWorks公式也提供了很多工具箱可以用于曲线拟合。这些方法可以用来做线性或者非线性曲线拟合。MATLAB也有一个开放的工具箱??曲线拟合工具箱(Curve Fitting Toolbox),她可以用于参数拟合,也可以用于非参数拟合。本节将介绍曲线拟合工具箱与其他工具箱、以及各种MATLAB可以用于曲线拟合的内建函数的详细特征。 a.曲线拟合工具箱 曲线拟合工具箱是专门为数据集合进行曲线拟合而设计的。这个工具箱集成了用MATLAB建立的图形用户界面和M文件函数。 ?利用工具箱的库方程(例如线性,二次,高阶多项式等)或者是用户自定义方程(局限于用户的想象力)可以进行参数拟合。当你想找出回归系数以及他们背后的物理意义的时候就可以采用参数拟合。 ?通过采用平滑样条或者其他各种插值方法,你就可以进行非参数拟合。当回归系数不具有物理意义并且不在意他们的时候,就采用非参数拟合方法。 曲线拟合工具箱提供了如下功能: ?数据回归,譬如截面(sectioning)与平滑; ?标准线性最小二乘拟合,非线性最小二乘拟合,加权最小二乘拟合,约束二乘(constrained least squares)拟合 以及稳健(robust)拟合; ?根据诸如R2 以及误差平方和(SSE)确定的拟合性能的统计特征。 请查阅曲线拟合工具箱提供的demos。 b.MATLAB内建函数与具有曲线拟合能力的其他工具箱 除了曲线拟合工具箱,MATALB与其他工具箱也提供了些可以用于解决线性和非线性曲线拟合的功能。本节列举并解释了其中几个。 c.利用MATLAB内建函数进行线性曲线拟合

MATLAB曲线拟合(含实例)

[matlab曲线拟合(含实例)] matlab曲线拟合-非常好非常全面的介绍M拟合的参考资料 Mathworks Tech-Note1508曲线拟合向导 1.介绍 2.Mathworks产品的曲线拟合特色 a.曲线拟合工具箱(Curve Fitting Toolbox) b.Matlab内建函数与其他的带有曲线拟合能力的附加产品(工具箱)c.线性曲线拟合 d.非线性曲线拟合 3.加权曲线拟合方法 a.曲线拟合工具箱 b.统计工具箱 c.优化工具箱 4.利用曲线拟合工具箱提高曲线拟合结果 5.其他的相关资料 第1节:简介 MATLAB即有内建的解决很多通常遇到的曲线拟合问题的能力,又具有附加这方面的产品。本技术手册描述了几种拟合给定数据集的曲线的方法,另外,本手册还解释了加权曲线拟合、针对复数集的曲线拟合以及其他一些相关问题的拟合技巧。在介绍各种曲线拟合方法中,采用了典型例子的结合介绍。 第2节:MathWorks产品的曲线拟合特色 MATLAB有可以用于曲线拟合的内建函数。MathWorks公式也提供了很多工具箱可以用于曲线拟合。这些方法可以用来做线性或者非线性曲线拟合。MATLAB 也有一个开放的工具箱――曲线拟合工具箱(Curve Fitting Toolbox),她可以用于参数拟合,也可以用于非参数拟合。本节将介绍曲线拟合工具箱与其他工具箱、以及各种MATLAB可以用于曲线拟合的内建函数的详细特征。

a.曲线拟合工具箱 曲线拟合工具箱是专门为数据集合进行曲线拟合而设计的。这个工具箱集成了用MATLAB建立的图形用户界面(GUIs)和M文件函数。 曲线拟合向导Genial@USTC2004-4-18 ?利用工具箱的库方程(例如线性,二次,高阶多项式等)或者是用户自定义方程(局限于用户的想象力)可以进行参数拟合。当你想找出回归系数以及他们背后的物理意义的时候就可以采用参数拟合。 ?通过采用平滑样条或者其他各种插值方法,你就可以进行非参数拟合。当回归系数不具有物理意义并且不在意他们的时候,就采用非参数拟合方法。 曲线拟合工具箱提供了如下功能: ?数据回归,譬如截面(?sectioning)与平滑; ?标准线性最小二乘拟合,非线性最小二乘拟合,加权最小二乘拟合,约束二乘(constrained least squares)拟合以及稳健(robust)拟合; ?根据诸如R2以及误差平方和(SSE)确定的拟合性能的统计特征。 请查阅曲线拟合工具箱提供的demos。 b.MATLAB内建函数与具有曲线拟合能力的其他工具箱 除了曲线拟合工具箱,MATALB与其他工具箱也提供了些可以用于解决线性和非线性曲线拟合的功能。本节列举并解释了其中几个。 c.利用MATLAB内建函数进行线性曲线拟合 函数描述 polyfit用多项式进行数据拟合。polyfit(X,Y,N)对数据X,Y拟合N阶多项 式系数,P(X(I))~=Y(I),在最小二乘意义上。 \反斜线或者矩阵阵左除。如果A是一个方阵,A\B基本上与 inv(A)*B一致的,是采用的不同计算方式而已。 polyval在给定点计算多项式的值 corrcoef计算两个向量的相关系数。它可以与polyfit和polyval函数一

相关主题
文本预览
相关文档 最新文档