数值分析第二次上机作业实验报告.doc

数值分析第二次上机作业实验报告.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数值分析第二次上机作业实验报告

一.实验任务用MATLAB语言编写连续函数最佳平方逼近的算法程序(函数式M文件)。并用此程序进行数值试验,写出报告。 二实验方法 最佳平方逼近方法采用基于正交多项式的最佳平方逼近,选择Lengendre多项式做基。计算组合系数时,函数的积分采用变步长复化梯形求积法。 三.程序功能和使用说明 1.采用基于正交多项式的最佳平方逼近,选择Lengendre多项式做基 利用递推关系 可构造出用户需要的任意次数的最佳平方逼近多项式。 2. 用M文件建立数学函数,实现程序通过修改建立数学函数的M文件以适用不同的被逼近函数。 3.已经考虑一般的情况,程序有变量代换的功能。 4.计算组合系数时,函数的积分采用变步长复化梯形求积法 5.可根据需要,求出二次、三次、。。。最佳平方逼近函数。 6.最后作出逼近函数和被逼近函数的曲线图可进行比较,分别用绘图函数plot和fplot绘图。 7.在matlab的命令窗口,输入[c,sx]=leastp(@func1,a,b,n),func1是被逼近函数,b和a分别是逼近函数的上、下区间,n为最佳平方逼近的次数,可为任意次数。 四.程序代码(含注释) 1. 最佳平方逼近主函数 function [c,sx]=leastp(func,a,b,n) %LEASTP.m:least-square fitting with legendre polynomials %func指被逼近函数,调用需要用句柄 %a,b分别指被逼近函数的区间上下限 %n指最佳平方逼近的次数 syms t; syms x; %以Lengendre多项式为基,构造任意次数的最佳平方逼近多项式 p(2)=t; p(1)=1; if n1 for j=3:1:(n+1) p(j)=((2*j-3)*t*p(j-1)-(j-2)*p(j-2))/(j-1); end end %变量代换,区间调整为[-1,1] f=feval(func,(b-a)/2*t+(b+a)/2); %计算组合系数,其中调用变步长复化梯形求积函数trapz for j=1:1:(n+1) c(j)=(2*j-1)/2*trapz(f*p(j),-1,1); end %将组合系数与对应的最佳平方多项式相乘然后求和,得到最佳逼近函数 sx=0; for j=1:1:(n+1) sx=sx+c(j)*p(j); end %将变量替换还原 sx=subs(sx,(2*x-a-b)/(b-a)); %使用fplot绘制原函数图像 f1=feval(func,x); f1=inline(f1); [x,y]=fplot(f1,[a,b]); plot(x,y,r-,linewidth,1.5); hold on; %使用plot绘制最佳平方逼近函数图像 g=linspace(a,b,(b-a)*300); fsx=subs(sx,g); plot(g,fsx,b-,linewidth,1.5); str=strcat(num2str(n),次最佳平方逼近); legend(原函数,str); end 2. 计算组合系数,变步长复化梯形求积法 function To1=trapz(func,a,b) %半分区间复化梯形公式计算定积分 %func指需要求积分的原函数 %a,b分别指积分上下区间 %初值 h=b-a; To=(subs(func,a)+subs(func,b))*(b-a)/2; e=1; while e10^-6%迭代终止条件,前后两次积分值差小于10^-6 H=0; x=a+h/2; while xb H=H+subs(func,x);%计算出所有二分新出现的值的和 x=x+h; end To1=0.5*(To+h*H);%计算出新的积分值 e=abs(To1-To); h=h/2;%继续半分区间,进行迭代计算 To=To1; end end 3. 以.m文件定义被逼近函数 function y=func1(x) y=x*cos(x); end 五.实验结果 1. 一次最佳平方逼近 c = -1.1702 -2.4235 sx= 1.253290 - 1.211752*x 2. 二次最佳平方逼近 c = -1.1702 -2.4235 -0.4265 sx= -0.159939*x^2 - 0.571997*x + 0.826787 3. 三次最佳平方逼近 c = -1.1702 -2.4235 -0.4265 1.2216 sx= 0.381759*x^3 - 2.450495*x^2 + 3.09289

文档评论(0)

tiangou + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档