MATLAB上机实验——最佳平方逼近.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MATLAB上机实验——最佳平方逼近

一. 任务:用MATLAB语言编写连续函数最佳平方逼近的算法程序(函数式M文件)。并用此程序进行数值试验,写出计算实习报告。二. 程序功能要求:在后面的附一leastp.m的基础上进行修改,使其更加完善。要求算法程序可以适应不同的具体函数,具有一定的通用性。所编程序具有以下功能:用Lengendre多项式做基,并适合于构造任意次数的最佳平方逼近多项式。可利用递推关系被逼近函数f(x)不用内联函数构造,而改用M文件建立数学函数。这样,此程序可通过修改建立数学函数的M文件以适用不同的被逼近函数(要学会用函数句柄)。要考虑一般的情况。因此,程序中要有变量代换的功能。计算组合系数时,计算函数的积分采用变步长复化梯形求积法(见附三)。程序中应包括帮助文本和必要的注释语句。另外,程序中也要有必要的反馈信息。程序输入:(1)待求的被逼近函数值的数据点(可以是一个数值或向量)(2)区间端点:a,b。7. 程序输出:(1)拟合系数:(2)待求的被逼近函数值三:数值试验要求:试验函数:;也可自选其它的试验函数。用所编程序直接进行计算,检测程序的正确性,并理解算法。分别求二次、三次、。。。最佳平方逼近函数。分别作出逼近函数和被逼近函数的曲线图进行比较。(分别用绘图函数plot(,s())和fplot(‘xcosx’,[x1 x2,y1,y2]))四:计算实习报告要求:1.简述方法的基本原理,程序功能,使用说明。2.程序中要加注释。3.对程序中的主要变量给出说明。4.附源程序及计算结果。程序代码legendre(N)函数程序%legendre(N)函数function P=legendre(N)syms t x;%定义符号变量t x for n=1:N PP(n)=diff((t^2-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函数,求逆采用M文件建立被逼近函数%用M文件建立被逼近函数function F=creat(x)n=length(x);F=x.*cos(x(1:n));%数组乘法运算区间变换函数程序%区间变换函数程序function f=convert(a,b,F)syms xt; %定义符号变量t xs=2\((b-a)*t+a+b); %实现区间转换f=subs(F,x,s); %用s置换表达式中x,然后将置换完的表达式赋给f,符号替换变步长复化梯形求积公式程序%变步长复化梯形求积公式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 i100%进行变步长计算 m=2*m; h=h/2; s=0;for k=1:m/2 x=-1+h*(2*k-1); s=s+feval(g,x);end T(i+1)=T(i)/2+h*s;if abs(T(i+1)-T(i))0.00001%设置精度值0.00001,终止条件 I=T(i+1);break; end i=i+1;end主程序%最佳平法逼近函数leastpfunction [c s]=leastp(a,b,N)syms tx;F=creat(x); %用M文件建立的被逼近函数P=legendre(N); %legendre(N)函数f=convert(a,b,F); %区间变换函数程序f=P*diag(f);for i=1:N g=inline(f(i));I= tx(g); %变步长复化梯形求积公式u(i)=I;Q(i)=2\(2*(i-1)+1); endQ=sym(Q); c=double(u*diag(Q)); S=c*P; s=subs(S,t,(2*x-a-b)/(b-a)); subplot(211), ezplot(s,[a:0.01:b]); subplot(212), ezplot(F,[a,b]);运行程序实验函数为:输入: a=0;b=4;N=2; [c s]=leastp(a,b,N); a=0;b=4;N=4; [c s]=leastp(a,b, N); a=0;b=4;N=7; [c s]=leastp(a,b, N);实验结果N=2N=4N=7由上图可以发现:当阶数N取值不断增加时,图像的拟合程度越高。附:参考程序Lengendre多项式作基的函数最佳平方逼近算法程序

文档评论(0)

sh4125733 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档