- 1、本文档共130页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2013年必威体育精装版Matlab语言及其在工程领域中的应用ppt课件_1
在三次样条中,要寻找三次多项式,以逼近每对数据点间的曲线。在样条术语中,这些数据点称之为断点。因为,两点只能决定一条直线,而在两点间的曲线可用无限多的三次多项式近似。因此,为使结果具有唯一性。在三次样条中,增加了三次多项式的约束条件。通过限定每个三次多项式的一阶和二阶导数,使其在断点处相等,就可以较好地确定所有内部三次多项式。此外,近似多项式通过这些断点的斜率和曲率是连续的。然而,第一个和最后一个三次多项式在第一个和最后一个断点以外,没有伴随多项式。因此必须通过其它方法确定其余的约束。最常用的方法,也是函数spline所采用的方法,就是采用非扭结(not-a-knot)条件。这个条件强迫第一个和第二个三次多项式的三阶导数相等。对最后一个和倒数第二个三次多项式也做同样地处理。 基于上述描述,人们可能猜想到,寻找三次样条多项式需要求解大量的线性方程。实际上,给定N个断点,就要寻找N-1个三次多项式,每个多项式有4个未知系数。这样,所求解的方程组包含有4*(N-1)个未知数。把每个三次多项式列成特殊形式,并且运用各种约束,通过求解N个具有N个未知系数的方程组,就能确定三次多项式。这样,如果有50个断点,就有50个具有50个未知系数的方程组。幸好,用稀疏矩阵,这些方程式能够简明地列出并求解,这就是函数spline所使用的计算未知系数的方法。 x00=data(:,1); y00=data(:,3); x0 =da00(:,1); y0 =da00(:,3); x =0:.1:9; tic A = vander(x0); X= A\y0; y1=polyval(X,x); t(1)=toc; tic y2 = polyinterp(x0,y0,x); t(2)=toc; tic y3 =interp1(x0,y0,x,linear); t(3)=toc; tic 例二:反应器出口示踪剂浓度随时间的变化 x0=0:0.1:1; y0=[-.447,1.978,3.11,5.25,5.02,… 4.66,4.01,4.58,3.45,5.35,9.22]; n=3; P=polyfit(x0,y0,n) xx=0:0.01:1; yy=polyval(P,xx); plot(xx,yy,-b,x0,y0,.r,MarkerSize,20) legend(拟合曲线,原始数据,Location,SouthEast) xlabel(x) 在t=0时刻,在一容器入口处突然向流进容器的流体脉冲注入一定量的示踪剂,同时在容器出口处测量物料中示踪剂浓度随时间的变化,实验数据如下表: % 观察样条插值/拟合效果 % By spline(): plot(t,C,o) sp = spline(t,C) hold on fnplt(sp,b-) xlabel(Time (s)) ylabel(C (kmol/m^3)×10^3) hold off % By spaps(): figure plot(t,C,o) sp = spaps(t,C,1) hold on fnplt(sp,b-) xlabel(Time (s)) ylabel(C (kmol/m^3)×10^3) hold off % Method 1: 直接用式(1)、(2)和(3)计算 t0 = 0; tf = t(end); IC = quadl(@Func,t0,tf,[],[],sp); ICt = quadl(@Func1,t0,tf,[],[],sp); ICt2 = quadl(@Func2,t0,tf,[],[],sp); tm1 = ICt/IC ss1 = ICt2/IC - tm1^2 DL2uL1 = ss1/tm1^2/2 % Method 2: 用式(4)、(5)和(3)进行计算 tm2 = sum(C.*t)/sum(C) ss2 = sum(C.*t.^2)/sum(C) - tm2^2 DL2uL2 = ss2/tm2^2/2 % ------------------------------------------------------------------ function y = Func(x,sp) % f= C y = fnval(sp,x); % 定义被积函数 % ------------------------------------------------------------------ function y = Func1(x,sp) % f= Ct y = fnval(sp,x).*x; % ---------------------------
文档评论(0)