华中科技大学数值分析 数值分析实验程序.doc

华中科技大学数值分析 数值分析实验程序.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Function t_charpt1_1 %数值试验1.1病态问题 %输入:[0 20]之间的扰动项及小的扰动常数 %输出:加扰动后得到的全部根 Result=inputdlg({‘请输入扰动项:在[0 20]之间的整数:’},’charpt1_1’,1’{‘19’}); Numb=str2num(char(result)); if ((Numb20)|(Numb0)) errordlg(‘请输入正确的扰动项:[0 20]之间的整数!’); return; end result=inputdlg({‘请输入(0 1)之间的扰动常数:’},’charpt1_1’,1,{‘0.00001’}); ess=str2num(char(result)); ve=zeros(1,21); ve(21-Numb)=ess; root=roots(poly(1:20)+ve); disp([‘对扰动项’,num2str(Numb),’加扰动’,num2str(ess),’得到的全部根为:’]); disp(num2str(root)); function charpt3 %数值实验三:含“实验3.1”和“实验3.2” %子函数调用:dlsa %输入:实验选择 %输出:原函数及求得的相应插值多项式的函数的图像以及参数alph和误差r result=inputdlg({‘请选择实验,若选3.1,请输入1,否则输入2:’},’charpt_3’,1,{‘1’}); Nb=str2num(char(result)); if(Nb~=1(Nb~=2)errordlg(‘实验选择错误!’)); return; end x0=-1:0.5:2 y0=[-4.447 -0.452 0.551 0.048 -0.447 0.549 4.552]; n=3;%n为拟合阶次 if(Nb==1) alph=polyfit(x0,y0,n); y=polyval(alph,x0); r=(y0-y)*(y0-y)’;%平方误差 x=-1:0.01:2; y=polyval(alph,x); plot(x,y,’k-’); xlabel(‘x’);ylabel(‘y0*and ployfit.y-’); hold on; plot(x,y,’k-’); title(‘离散数据的多项式拟合’); grid on; else result=inpurdlg({‘请输入权向量w:’},’charpt_3,1,{‘[1 1 1 1 1 1 1]’}); w=str2num(char(result)); [a,b,c,alph,r]=dlsa(x0,y0,w,n); end disp([‘平方误差:’,sprint(‘%g,r’)]); disp([‘参数alph:’,sprint(‘%\t’,alph)]) %------------------------------------------------------------------------------------------------------------------------------function[a,b,c,alph,r]=dlsa(x,y,w,n) %功能:用正交化方法对离散数据作多项式最小二乘拟合。 %输入:m+1个离散点(x,y,w),x,y,w分别用行向量给出。 % 拟合多项式的次数n,0nm. %输出:三项递推公式的参数a,b,拟合多项式s(x)的系数c和alph, % 平方误差r=(y-s,y-s),并作离散点列和拟合曲线的图形 m=length(x)-1; if(n1|n=m) errordlg(‘错误:n1或者n=m!’); return; end %求三项递推公式的参数a,b,拟合多项式s(x)的系数c,其中d(k)=(y,sk); s1=0; s2=ones(1,m+1); v2=sum(w); d(1)=y*w’;c(1)=d(1)/v2; for k=1:n xs=x.*s2.^2*w’; a(k)=xs/v2; if(k==1) b(k)=0; else b(k)=v2/v1; end s3=(x-a(k)).*s2-b(k)*s1; v3=s3.^2*w’; d(k+1)=y.*s3*w’;c(k+1)=d(k+1)/v3 end %求平方误差r r=y.*y*w’-c*d’; %,求拟合多项式s(x)的降幂系数alph alph=zeros(1,n+1

文档评论(0)

勤能补拙 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档