- 1、本文档共66页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
12、多项式拟合 p = polyfit(x,y,n) 多项式曲线拟合(最小二乘法) n=1就是进行线性拟合 多项式拟合时的注意事项 在进行曲线拟合时对多项式阶次的选择是任意的。 虽然高阶的多项式可以更准确地拟合数据(仅指该曲线与给定的数据之间的均方误差最小),但在进行曲线拟合时,并不需要采用太高阶的多项式,这主要基于以下原因: 1、越是高阶的多项式其数值特性越差,计算起来也越耗时; 2、随着多项式阶次的升高,拟合的曲线变的越来越不平滑,通常会出现用户不愿意看到的局部波形; 3、由于数据本身的近似性,因此在进行数据拟合时没有必要仅仅考虑使拟合的曲线无限接近数据点,而要在曲线的阶次合均方误差之间综合考虑,因为越是高阶的多项式在物理实现时越困难。 从数学原理上,n+1个数据点可以惟一定义一个n次曲线(或n阶多项式)。 x y 0 0.2 0.6 1 1.3 1.6 1.7 1.8 1.9 2.2 2.3 2.5 2.6 2.9 3.1 3.4 3.8 4.1 4.4 4.7 4.8 4.9 5 5.1 5.3 0 -2.5 -4 -5.7 -3.5 -2 -1 2 3.5 4 7 7.5 9.9 10.9 11.9 13.5 13 11.9 9 6.5 4 1.5 0 -2.5 -5 六、一维数组在二维绘图中的应用 x,y为同维的一维数组,二维绘图函数plot(x,y)的绘图原理:分别以x,y对应位置的元素为横坐标和纵坐标,得到n个数据点,描点,然后依次将第1,2,…,n点连线,绘制出二维图形。 一维数组x x1 x2 … xn 一维数组y y1 y2 … yn 数据点 (x1,y1) 第1点 (x2,y2) 第2点 … (xn,yn) 第n点 x = 0:0.1:10*pi y = sin(2*x).*cos(x/2) plot(x,y) 数组乘法 x 0 0.1 0.2 … sin(2x) 0 0.1987 0.3894 … cos(x/2) 1 0.9988 0.9950 … y 0 0.1984 0.3875 … 七、一维数组在向量运算中的应用 1、向量的模(长度) a = [4,3,1] d = sqrt(sum(a.*a)) 或: d = sqrt(sum(a.^2)) 2、两点之间的距离 a = [4,3,1] b = [5,2,3] AB = sqrt(sum((a - b).^2)) 3、向量的方向角与方向余弦,单位向量 a = [4,3,1] d = sqrt(sum(a.^2)) e0 = a./d 4、向量的线性运算 a = [4,3,1] b = [5,2,3] c = 1.6 直接利用matlab的数组运算规则即可进行运算 p = a + b s = a – b d = c*a 5、两向量的数量积(内积/点积/点乘) = dot(a,b) = sqrt(dot(a,a)) Matlab中提供了 dot() 函数实现两向量的数量积 6、两个向量之间的夹角 tmp = dot(a,b)/sqrt(dot(a,a))/sqrt(dot(b,b)) theta = acos(tmp) 7、两向量的向量积(叉乘) = cross(a,b) Matlab中提供了 cross() 函数实现两向量的向量积 8、向量的混合积: = dot(cross(a,b),c) 上机练习: 3.以A(1,2,3),B(2,0,5),C(4,2,-1)为顶点的三角形的面积。 4.求以A(0,0,2),B(3,0,5),C(1,1,0),D(4,1,2)为顶点的四面体的体积。 八、一维数组在一元多项式运算中的应用 借助matlab提供的函数,处理多项式是一件非常简单的事情,很容易对多项式进行积分、微分以及求根的操作。 一元多项式在代数中占有非常重要的地位。在实际应用中如对实验数据的插值、微商和曲线拟合等,都要大量用到多项式;在矩阵分析时,也要用到一元多项式的概念。多项式函数是形式最简单的函数,也是最容易计算的函数,从理论上讲,它可以表示绝大多数复杂函数。在许多计算机的计算和编程中,很多函数值如sin(x),cos(x)等的计算都是先将函数进行Tailor展开为多项式进行逼近计算的,并且都能达到很高的精度。 在matlab中,一个一元多项式用一个行向量来表示的,向量元素为多项式系数的降幂排列,其中最后一个元素代表多项式中的0幂项。 1、多项式的表示和创建 p = [1,-12,0,25,116] 2、多项式的符号表示 poly2sym() 把系数向量表示的多项式转为符号表示 poly2sym(p) 用默认字符’x’来表示多项式的变量 poly2sym(p,’v’)
文档评论(0)