|  客服中心  |  合作联系
搜刊网
论文下载
您当前位置
首页 > 论文下载 > 基础科学 > Matlab与Mathematica在非线性拟合中应用比较
Matlab与Mathematica在非线性拟合中应用比较
来源:互联网 sk012 | 郑丽 李亮 陈宇
【分  类】 基础科学
【关 键 词】 数据拟合,Matlab,Mathematica,内建函数
【来  源】 互联网
【收  录】 中文学术期刊网
正文:

  摘 要:文章简单介绍了Matlab与Mathematica的拟合函数功能,并通过具体例子的数据,分别利用Matlab与Mathematica进行了非线性拟合,对比了它们的应用办法,分析了各自的特点。

  关键词:数据拟合,Matlab,Mathematica,内建函数

  Matlab与Mathematica是两种常用的数学软件。Matlab具备卓越的数值计算能力,还提供了专业水平的符号计算,文字处理,可视化建模仿真和实时控制等功能。Matlab的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似。Mathematica是一套整合数值以及符号运算的数学工具软件,提供了人们容易使用的顶级科学运算环境。Mathematica具有高阶的演算方法,以及丰富的数学函数库和庞大的数学知识库,让Mathematica在符号运算,逻辑推理等方面比Matlab做得更快更好,也可以提供精确的数值运算结果。对于很多问题的解决,这两种强大的计算软件都可以做到,但Mathematica比Matlab的操作界面更加简洁直观,输入形式也与传统数学公式相一致,这对于没有学过计算机语言的学生操作起来相对更为方便,Mathematica强大的函数库和知识库,使它可以用简单的函数解决问题。

  这里我们就数据非线性拟合问题来比较两种软件的应用。

以全国大学生数学建模竞赛2004C题饮酒驾车的数据为例,利用房室模型分析后可建立微分方程组,求得结果为:人若在短时间内喝的酒,则血液中的酒精含量与距离喝酒时间的函数关系为

其中,,,为待定参数。假设一体重为70公斤的人短时间内喝下两瓶啤酒后,隔一定时间测量他的血液中酒精含量(毫克/百毫升),得到数据为

  时间(小时) 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 10 11 12 13 14 15 16 酒精含量 38 35 28 25 18 15 12 10 7 7 4

根据表中数据确定参数,,的值。

  这里,我们分别利用Matlab与Mathematica的内建函数进行数据拟合,比较他们在使用上的异同,便于大家根据自身实际选择适合自己的数学软件。

  首先,我们分别用Matlab与Mathematica做出数据的散点图。

在Matlab命令窗口中,分别定义横坐标,纵坐标,以“·”绘出散点图像。

  >> t = [ 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 ];

  >> y = [ 30,68,75,82,82,77,68,68,58,51,50,41,38,35,28,25,18,15,12,10,7,7,4 ];

>> plot = ( t,y,)

  即可绘制出带坐标的散点图。

  在Mathematica的NoteBook中输入数据,按照坐标对形式输入数据,用内建函数ListPlot将数据绘制散点图。

In[1]:= data={{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}};

  pg=ListPlot[data]

  就可以输出的带坐标的散点图。

当数据需手动输入时,Mathematica可以随时将录入错误的数据加以修正,而在Matlab命令窗口中,如果需要修正数据,就必须调出已输入过的数据再加以修改,查找起来不如Mathematica方便。作图时Matlab使用绘图命令plot = ( t,y,),而Mathematica用ListPlot[data],两种软件绘图操作都很方便。

  其次,利用软件的内建函数对此数据进行非线性拟合,做出比较。

  用Matlab的内建函数对参数求解,可调用最小二乘拟合函数lsqcurvefit( ),先定义非线性函数fun.m文件:

  function y = fun(a,t)

y =;

这里为,为,代表,即为。

  在命令窗口中运行以下命令:

  >> t = [ 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 ];

  >> y = [ 30,68,75,82,82,77,68,68,58,51,50,41,38,35,28,25,18,15,12,10,7,7,4 ];

>> a = lsqcurvefit(,[0.2;2;100],t,y)

  a =

  0.1855

  2.0079

  114.4329

即,,。根据拟合出的参数值将其代回,作出曲线图与散点图的对比图,可以看出,此曲线拟合程度较好。

  函数lsqcurvefit是非线性最小二乘法拟合函数,使用格式为lsqcurvefit(fun,x0,xdata,ydata,…),其中fun是要拟合的函数,x0是各参数的初值,xdata是横坐标,ydata是纵坐标。输入命令时,一般是随意取一组初值,再把算出来的值当作初值继续算,直到两者相差不大为止。如果改变初值,可能会导致给出的参数值产生较大改变。如将本例中初值分别设为0.1,10,79,则求得三个参数值分别为0.1855,2.0079,114.4332,结果变化不大。而当初值设为10,100,10时,求得三个参数值分别为0.1235,100.00,79.4943,改变较大。可见用函数lsqcurvefit做拟合时,初值选取具有不确定性。查看Matlab的帮助文档,nlinfit与lsqcurvefit同属于非线性最小二乘拟合,一般来说都能得到比较接近的结果。但是由于nlinfit使用的是牛顿方法,在使用时也需要给出参数的初值,当问题对初值比较敏感时,不同的初值会导致差异较大。在本例中当初始值设为0.2,10,50时,用nlinfit也可以拟合,而当初值改为0.2,50,100时,非线性拟合命令nlinfit失效。由此可见,在Matlab中用内建函数lsqcurvefit与nlinfit做非线性拟合时,对初值的依赖性是比较大的。当然,Matlab用于拟合的函数还有很多,基于软件Matlab的扩展性,在Matlab中还集成了一个拟合工具箱模块可以调用,功能十分强大。

相关推荐
热门期刊
黑龙江省社会主义学院学报《黑龙江省社会主义学院学报》
《黑龙江省社会主义学院学报》季刊,创刊于1985年,是中共黑龙江省委统战部主管、黑龙江省社会主义学院主办的以刊登统一战线理论及其他相关人文社会科学理论成果为...
广东医学《广东医学》
《广东医学》杂志,半月刊,于1963年经国家新闻出版总署批准正式创刊,由广东省卫生健康委员会主管,广东省医学学术交流中心(广东省医学情报研究所)主办的学术性刊物,本...
津图学刊《津图学刊》
《津图学刊》(双月刊)创刊于1983年,由天津市高校图书情报工作委员主办。主要栏目:改革与发展、自动化管理、探索争鸣、书林漫步、文献学、基础工作、经验交流、大视...
旅游《旅游》
《旅游》杂志,于1979年经国家新闻出版总署批准正式创刊,CN:11-1341/K,本刊在国内外有广泛的覆盖面,题材新颖,信息量大、时效性强的特点,其中主要栏目有:北京风采、欢乐...
世界产品与技术《世界产品与技术》
《世界产品与技术》产品信息刊物。报道世界的产品和技术新信息,为产业界、技术界服务。坚持为社会主义服务的方向,坚持以马克思列宁主义、毛泽东思想和邓小平理论...
社会心理科学《社会心理科学》
《社会心理科学》(月刊)创刊于1985年,原名《犯罪心理研究》,本刊由林秉贤教授担任主编,由李文博、沈德灿、章志光等多位著名心理学家担任编委成员,是一本专门刊登社会...
友情链接
中教杯 国家新闻出版总署 中国知网 万方数据 维普网 中国科学院 中国国家图书馆 央视英文版 中国留学网 中青网 中国国家人才网 中国经济网 中国日报网 中国新闻网 中国学术期刊网
关于我们
平台简介
诚聘英才
企业文化
竞争优势
版权信息
服务条款
客服承诺
常见问题
版权声明
合作加盟
期刊加盟
广告服务
联系我们
网站导航
期刊大全
论文下载
课题申报
学术会议
编辑QQ
编辑联络
2007-2023
中文学术期刊检索机构
bianjibu777@qq.com
联系我们

版权所有©2007- 2023 中国学术期刊网(qikanw.com) All Rights Reserved 京ICP备2021008252号
本站是学术论文网络平台,若期刊网有侵犯您的版权,请及时与期刊网客服取得联系,联系信箱: bianjibu777@qq.com    
中国学术期刊网