《MATLAB上机实验——最佳平方逼近》由会员分享,可在线阅读,更多相关《MATLAB上机实验——最佳平方逼近(5页珍藏版)》请在人人文库网上搜索。
1、任务:用MATLAB语言编写连续函数最佳平方逼近的算法程序(函数式M文件)。并用此程序进行数值试验,写出计算实习报告。二.程序功能要求:在后面的附一 leastp.m的基础上进行修改,使其更加完善。要求算法程序可以适应不同 的具体函数,具有一定的通用性。所编程序具有以下功能:1. 用Lengendre多项式做基,并适合于构造任意次数的最佳平方逼近多项式。Po(x)=1, R(x)=x可利用递推关系Pn(x) = (2n-1)xPn(x) _(n - 1)Pn_2(x) / nn = 2,3,2. 被逼近函数f(x)不用内联函数构造,而改用M文件建立数学函数。这样,此程序可通过修改建立数学函数的。
2、 M文件以适用不同的被逼近函数(要学会用函数句柄)。3. 要考虑一般的情况f (x) a,b =1, 1。因此,程序中要有变量代换的功能。4. 计算组合系数时,计算函数的积分采用变步长复化梯形求积法(见附三)。5. 程序中应包括帮助文本和必要的注释语句。另外,程序中也要有必要的反馈信息。6. 程序输入:(1)待求的被逼近函数值的数据点X(可以是一个数值或向量)(2)区间端点:a,b。7. 程序输出:(1)拟合系数:Co,G,C2,Cn(2)待求的被逼近函数值S(Xo)=C0Po(x0)+C!R(Xo) +C2P2(X0)+|) + CnPn(Xo) 三:数值试验要求:1. 试验函数:f (x)。
3、二xcosx, 0, 4;也可自选其它的试验函数。2. 用所编程序直接进行计算,检测程序的正确性,并理解算法。3. 分别求二次、三次、。最佳平方逼近函数 s(x)。4. 分别作出逼近函数 gx)和被逼近函数f(x)的曲线图进行比较。(分别用绘图函数 plot( x0 ,s(X0)和 fplot( xcosx x1 x2,y1,y2) 四:计算实习报告要求:1. 简述方法的基本原理,程序功能,使用说明。2. 程序中要加注释。3. 对程序中的主要变量给出说明。4. 附源程序及计算结果。一、程序代码1) lege ndre(N)函数程序%lege ndre(N)函数fun cti on P=lege。
4、 ndre(N) syms t x;%定义符号变量t xfor n=1:NPP( n)=diff(tA2-1)A( n-1), n-1);%diffQ( n)=2A( n-1)*prod(1: n-1);%prod end函数,求函数的n阶导数 函数,计算数组兀素的连乘积PP=1;Q=sym(Q);P=PP*( in v(diag(Q);%i nv函数,求逆2) 采用M文件建立被逼近函数%用 M文件建立被逼近函数fun cti on F=creat(x)n=len gth(x);F=x.*cos(x(1: n);%数组乘法运算3) 区间变换函数程序%区间变换函数程序fun cti on f=c。
5、 on vert(a,b,F)syms x t; %定义符号变量t xs=2(b-a)*t+a+b); %实现区间转换f=subs(F,x,s); %用s置换表达式中x,然后将置换完的表达式赋给f,符号替换4) 变步长复化梯形求积公式程序%变步长复化梯形求积公式function I=tx(g)m=1;h=1-(-1);% 积分区间T=zeros(1,100);% 赋予T初值为0的1*100 行向量T(1)=h*(feval(g,-1)+feval(g,1)/2;% feval i=1;while i a=0;b=4;N=2; c s= leastp(a,b,N); a=0;b=4;N=4; c。
6、 s= leastp(a,b, N); a=0;b=4;N=7; c s= leastp(a,b, N);三、实验结果N=7由上图可以发现:当阶数 N取值不断增加时,图像的拟合程度越高。附:、参考程序Lengendre多项式作基的函数最佳平方逼近算法程序LEASTP.m(此程序只适用于对函数 f (x) = xex构造最佳平方逼近多项式)function c,s=leastp(x)%LEASTP.m:least-square fitting with legendre polynomials p1=1;p2=inline( x,x);p3=inline(3*xA2-1) ,x);pp1=1;p。
7、p2=inline( x.a2 ,x);pp3=inline( (3*x.a2-1)/2.*(3*x.a2-1)/2,x);fp仁inline(x.*exp(x) ,x);fp2=inline( (x.A2).*exp(x) ,x);fp3=inline( (x.*exp(x).*(3*x.A2-1)/2,x);c(1)=quad(fp1,-1,1)/2;c( 2)=quad(fp2,-1,1)/quad(pp2,-1,1);c( 3)=quad(fp3,-1,1)/quad(pp3,-1,1); s=c(1)+c(2)*p2(x)+c(3)*p3(x);二、被逼近函数用 M文件建立(例如下面)function f=fun(x) f=1./(1+x.A2);三、变步长复化梯形求积公式的算法b- a1. h 二 b-a,T(f (a) f (b)h2. H =0,x =a2f (x), x = x h 则转3.3.H -H4.若x b,1 5T1 S T6若 T -Th* H:;,则I -T1,输出I,停机。b aT1f (a ) f b()21 Hn1T2nTn2 22bVbaf(a (2j 1)2n j=e2nn = 1,2川 I7.h =殳,丁 =T1,转 2。