华中科技大学数值分析- 数值分析实验程序Function t_charpt1_1 %数值试验 1.1 病态问题%输入: [0 20] 之间的扰动项及小的扰动常数%输出:加扰动后得到的全部根Result= inputdlg({‘请输入扰动项:在[0 20]之间的整数: ’}, ’charpt1_1 ’,1 ’{ ‘19’});Numb=str2num(char(result)); if ((Numb>20)|(Numb<0)) 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); dis p([ ‘ 对 扰 动 项 ’,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,0