《MATLAB上机实验——最佳平方逼近》由会员分享,可在线阅读,更多相关《MATLAB上机实验——最佳平方逼近(5页珍藏版)》请在金锄头文库上搜索。
1、一一. 任务:任务:用用 MATLAB 语言编写连续函数最佳平方逼近的算法程序(函数式语言编写连续函数最佳平方逼近的算法程序(函数式 M 文件)文件) 。并。并 用此程序进行数值试验,写出计算实习报告。用此程序进行数值试验,写出计算实习报告。 二二. 程序功能要求:程序功能要求:在后面的附一在后面的附一 leastp.m 的基础上进行修改,使其更加完善。要求算法程序可以适应不的基础上进行修改,使其更加完善。要求算法程序可以适应不 同的具体函数,具有一定的通用性。所编程序具有以下功能:同的具体函数,具有一定的通用性。所编程序具有以下功能: 1.用用 Lengendre 多项式做基,并适合于构造任
2、意次数的最佳平方逼近多项式。多项式做基,并适合于构造任意次数的最佳平方逼近多项式。可利用递推关系可利用递推关系 0112( )1,( ) ( )(21)( )(1)( ) / 2,3,.nnnP xP xx P xnxPxnPxn n 2.被逼近函数被逼近函数 f(x)不用内联函数构造,而改用不用内联函数构造,而改用 M 文件建立数学函数。这样,此程序可通文件建立数学函数。这样,此程序可通过修改建立数学函数的过修改建立数学函数的 M 文件以适用不同的被逼近函数(要学会用函数句柄)文件以适用不同的被逼近函数(要学会用函数句柄) 。3.要考虑一般的情况要考虑一般的情况。因此,程序中要有变量代换的功
3、能。因此,程序中要有变量代换的功能。 1, 1,)( baxf4.计算组合系数时,计算函数的积分采用变步长复化梯形求积法(见附三)计算组合系数时,计算函数的积分采用变步长复化梯形求积法(见附三) 。 5.程序中应包括帮助文本和必要的注释语句。另外,程序中也要有必要的反馈信息。程序中应包括帮助文本和必要的注释语句。另外,程序中也要有必要的反馈信息。6.程序输入:(程序输入:(1)待求的被逼近函数值的数据点)待求的被逼近函数值的数据点(可以是一个数值或向量可以是一个数值或向量)0x(2)区间端点:)区间端点:a,b。7. 程序输出:(程序输出:(1)拟合系数:)拟合系数:012,.,nc c cc
4、(2)待求的被逼近函数值)待求的被逼近函数值00001102200()()()()()nns xc P xc P xc P xc P x L L三:数值试验要求:三:数值试验要求:1.试验函数:试验函数:;也可自选其它的试验函数。;也可自选其它的试验函数。( )cos ,0, 4f xxx x 2.用所编程序直接进行计算,检测程序的正确性,并理解算法。用所编程序直接进行计算,检测程序的正确性,并理解算法。3.分别求二次、三次、分别求二次、三次、 。 。 。最佳平方逼近函数。最佳平方逼近函数。) ) xs( 4.分别作出逼近函数分别作出逼近函数和被逼近函数和被逼近函数的曲线图进行比较。的曲线图进
5、行比较。) ) xs()(xf (分别用绘图函数(分别用绘图函数 plot(,s()和和 fplot(xcosx,x1 x2,y1,y2))0x0x四:计算实习报告要求:四:计算实习报告要求:1.简述方法的基本原理,程序功能,使用说明。简述方法的基本原理,程序功能,使用说明。2.程序中要加注释。程序中要加注释。3.对程序中的主要变量给出说明。对程序中的主要变量给出说明。4.附源程序及计算结果。附源程序及计算结果。一、一、程序代码程序代码1)legendre(N)函数程序函数程序 %legendre(N)函数 function P=legendre(N)syms t x;%定义符号变量t x f
6、or n=1:NPP(n)=diff(t2-1)(n-1),n-1);%diff函数,求函数的n阶导数Q(n)=2(n-1)*prod(1:n-1);%prod函数,计算数组元素的连乘积 endPP(1)=1;Q=sym(Q);P=PP*(inv(diag(Q);%inv函数,求逆2)采用采用M文件建立被逼近函数文件建立被逼近函数%用M文件建立被逼近函数 function F=creat(x)n=length(x);F=x.*cos(x(1:n);%数组乘法运算3)区间变换函数程序区间变换函数程序%区间变换函数程序 function f=convert(a,b,F)syms x t; %定义符
7、号变量t x s=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 s= least
8、p(a,b, N); a=0;b=4;N=7; c s= leastp(a,b, N);三、三、实验结果实验结果N=2N=4N=7由上图可以发现:当阶数由上图可以发现:当阶数 N 取值不断增加时,图像的拟合程度越高。取值不断增加时,图像的拟合程度越高。附:附: 一、一、参考程序参考程序Lengendre 多项式作基的函数最佳平方逼近算法程序多项式作基的函数最佳平方逼近算法程序 LEASTP.m(此程序只适用于对函数(此程序只适用于对函数 构造最佳平方逼近多项式)构造最佳平方逼近多项式)xxexf )( function c,s=leastp(x)%LEASTP.m:least-square f
9、itting with legendre polynomials p1=1;p2=inline(x,x);p3=inline(3*x2-1),x);pp1=1;pp2=inline(x.2,x);pp3=inline( (3*x.2-1)/2.*(3*x.2-1)/2,x);fp1=inline(x.*exp(x),x);fp2=inline(x.2).*exp(x),x);fp3=inline(x.*exp(x).*(3*x.2-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,
10、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.2);三、三、变步长复化梯形求积公式的算法变步长复化梯形求积公式的算法 11111.,( ( )( )22.0,2 3.( ),3.15.*2 6.,7.,2bahba Tf af bhHxaHHf xxxhxbTTh HTTITIhhTT 4 4. . 若若,则则转转若若则则,输输出出, , 停停机机。转转2 2. .1210 ( )( )211 222 (21)22 1,2,n nnnnjbaTf af bHTTTbabaf ajnn n L L