网站大量收购独家精品文档,联系QQ:2885784924

数值逼近上机作业3.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一、sin(pi*x)的2次最佳平方逼近程序代码: %% 二次逼近主函数 function S=squar_approx(a,b,n) % 全局变量 global i;global j; % 判断输入 if nargin3 n=1; end % 求方程系数矩阵(基函数内积矩阵) Phi2=zeros(n+1); for i=0:n for j=0:n; Phi2(n-i+1,n-j+1)=quad(@rho_phi,a,b); end end % 求方程非齐次项列向量 PhiF=zeros(n+1,1); for i=0:n PhiF(n-i+1)=quad(@fun_phi,a,b); end % 解方程获得多项式系数 S=Phi2\PhiF; % 给出绘图节点 xi=a:(b-a)/100:b; % 作图 plot(xi,polyval(S,xi),r:); hold on fplot(@obj,[a,b],b); legend(逼近多项式,原函数); title(sin\pix的二次平方逼近); hold off %% 基函数内积 function y=rho_phi(x) global i;global j; y=(rho(x).*phi_k(x,i)).*phi_k(x,j); %% 基函数与待逼近函数内积 function y=fun_phi(x) global i; y=(rho(x).*phi_k(x,i)).*obj(x); %% 外部函数 function y=rho(x) y=1; %% 直交函数系 function y=phi_k(x,k) if k==0 y=ones(size(x)); else y=x.^k; end %% 待逼近函数 function y=obj(x) y=sin(pi*x); 运行结果: 二、1/(1+25x2)的2次最佳平方逼近,及其10次拉格朗日插值 程序代码: %% 二次逼近主函数 function S=squar_approx(a,b,n) % 全局变量 global i;global j; % 判断输入 if nargin3 n=1; end % 求方程系数矩阵(基函数内积矩阵) Phi2=zeros(n+1); for i=0:n for j=0:n; Phi2(n-i+1,n-j+1)=quad(@rho_phi,a,b); end end % 求方程非齐次项列向量 PhiF=zeros(n+1,1); for i=0:n PhiF(n-i+1)=quad(@fun_phi,a,b); end % 解方程获得多项式系数 S=Phi2\PhiF; % 给出绘图节点 xi=a:(b-a)/100:b; % 作图 plot(xi,polyval(S,xi),r:); hold on fplot(@obj,[a,b],b); x=a:(b-a)/10:b; y=obj(x); [C,~,~,~]=lagran1(x,y); plot(xi,polyval(C,xi),m:) legend(±??ü?à??ê?,?-oˉêy,10′?à-??àêè?2??μ); title(1/(1+25x^2)μ?10à-??àêè?2??μó?2′?×?????·?±??ü±è??); hold off %% 基函数内积 function y=rho_phi(x) global i;global j; y=(rho(x).*phi_k(x,i)).*phi_k(x,j); %% 基函数与待逼近函数内积 function y=fun_phi(x) global i; y=(rho(x).*phi_k(x,i)).*obj(x); %% 外部函数 function y=rho(x) y=1; %% 直交函数系 function y=phi_k(x,k) if k==0 y=ones(size(x)); else y=x.^k; end %% 待逼近函数 function y=obj(x) y=1./(1+25*x.^2); 运行结果:

文档评论(0)

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

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

1亿VIP精品文档

相关文档