- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MATLAB的ppt
1.8.3 IF-ELSE-END 结构 在窗口键入sum=0; for m=1:100 if(sum100) m sum break; end sum=sum+m; end 在窗口分别键入 m和sum回车可得:m = 15,sum= 105 1.9 曲线拟合和插值运算 1.9.1 曲线拟合 在许多应用领域中,人们经常需要从一系列已知离散点上的数据集得到一个 解析函数y=f(x),得到的解析函数f(x)应当在原离散点xi上尽可能接近给定的yi的 值。这一过程称为曲线拟合。最常用的曲线拟合是最小二乘法曲线拟合。拟合的 结果可使误差的平方和最小,即找出使 最小的f(x)。 在MATLAB中,函数polyfit求解最小二乘曲线拟合问题。为了用polyfit,我 们必须给函数赋予希望最佳拟合数据的多项式的阶次。如果我们选择n=1作为阶 次,得到最简单的线性近似。通常称为线性回归。相反,如果我们选择n=2作为 阶次,得到一个2阶多项式。 例如在窗口键入 x=[0 .1 .2 .3 .4 .5 .6 .7 .8 .9 1]; y=[-.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2]; 我们选择一个2阶多项式。在窗口键入p=polyfit(x, y, 2)回车可得 p = -9.8108 20.1293 -0.0317,其解是y = -9.8108x2 +20.1293x-0.0317。 1.9.1 曲线拟合 为了将曲线拟合解与数据点比较,我们把二者都绘成图。在窗口键入 xi=linspace(0, 1, 100); z=polyval(p, xi);调用MATLAB的函数polyval计算在xi数 据点的多项式值。在窗口键入 plot(x, y, o , x, y, xi, z, : ) xlabel( x ), ylabel( y=f(x) ), title( Second Order Curve Fitting ) 回车可得图1。 1.9.1 曲线拟合 多项式阶次的选择是有点任意的。两点决定一直线或一阶多项式。三点决定 一个平方或2阶多项式。按此进行,n+1数据点唯一地确定n阶多项式。于是,在 上面的情况下,有11个数据点,我们可选一个高达10阶的多项式。然而,高阶多 项式给出很差的数值特性,不应选择比所需的阶次高的多项式。例如,选一个10 阶多项式,在窗口键入 pp=polyfit(x, y, 10); zz=polyval(pp, xi); plot(x, y, o , xi, z, : , xi, zz) xlabel( x ), ylabel( y=f(x) ), title( 2nd and 10th Order curve Fitting )可得下图 原始数据标以‘o’,2阶曲线拟合是虚线, 10阶拟合是实线。注意,在10阶拟合中, 在左边和右边的极值处,数据点之间出 现大的纹波。当企图进行高阶曲线拟合 时,这种纹波现象经常发生。显然,‘阶 数越多就越好 ’的观念在这里不适用。 1.9.2 插值运算 与曲线拟合不同,插值运算不是试图找出适合于所有自变量的数组x的全局最 优拟合函数y=f(x),而是对数据点之间函数的估值方法。根据自变量的维数不同, 插值方法可以分为一维插值y=f(x)和二维插值y=f(x,y)等。 一维插值 最简单插值的例子是MATLAB的作图。按缺省,MATLAB用直线连接所有 的数据点以作图。这个线性插值猜测中间值落在数据点之间的直线上。当然,当 数据点个数增加和它们之间距离减小时,线性插值就更精确。在窗口键入 x1=linspace(0, 2*pi, 60);x2=linspace(0, 2*pi, 6);plot(x1, si
文档评论(0)