第二次上机作业题目1:用exp(x)的泰勒展开式求解exp(x)程序functionresult=expx(x,n)formatlongif(n<0)disp('输入的n值必须为正整数')return;elseif(n==0)result=1;return;elsen=ceil(n);%当输入n为大于0的小数时,取n为大于此小数的最小整数endt=1;result=1;fori=1:nt=t*x/i;result=result+t;endend运算结果:expx(1,-1)回车输入的n值必须为正整数expx(1,0)回车ans=1expx(1,20)回车ans=:用正弦函数的泰勒展开式求解sin(x)程序:functionresult=sinx(x,n)formatlongif(n<=0)disp('输入的n值必须为正奇数')return;elsen=ceil(n);%当输入n为大于0的小数时,取n为大于此小数的最小整数endif(n<=2)result=x;return;endt=x;result=x;fori=3:2:nt=-t*x*x/(i*(i-1));result=result+t;endend运算结果:sinx(pi/2,-1)回车输入的n值必须为正奇数sinx(pi/2,3)回车ans=(pi/2,20)回车ans=1第三次上机作业题目1:拉格朗日插值程序:functiony=lagrangex(x,xi,yi)%x为插值点向量,xi,yi为插值节点自变量向量及对应的函数值向量m=length(xi);n=length(yi);h=length(x);y(h,1)=0;if(m~=n)disp('向量xi和yi的维数必须相同')return;endfori=1:hif(x(i)<min(xi)||x(i)>max(xi))x(i),disp('的插值为外插,结果可靠性较差')endendxi=reshape(xi,[m,1]);yi=reshape(yi,[m,1]);lx=zeros(m,1);fori=1:hlx(:,1)=1;fork=1:mforj=1:mif(k~=j)t=(x(i)-xi(j))/(xi(k)-xi(j));lx(k)=lx(k)*t;endendendy(i)=sum(yi.*lx);endplot(xi,yi,'o',x,y)end程序验证:用y=x^2+2x+1作为验证函数X:-5-4-3-2-1012345Y:1694**********插值点:xx=-5::5结果:题目2:三次样条插值程序:functiony=threex(x,xi,yi,dy)%x表示插值点向量,xi,yi为插值节点自变量向量及对应的函数值向量,dy=[y0'yn']m=length(xi);n=length(yi);k=length(x);y(k,1)=0;if(m~=n)disp('xi,yi维数必须一致,且均为向量')return;endif(length(dy)~=2)disp('dy有且只能有两个元素')return;endxi=reshape(xi,[m,1]);yi=reshape(yi,[m,1]);hi(m-1,1)=0;ai(m-2,1)=0;bi(m-2,1)=0
计算方法上机 来自淘豆网m.daumloan.com转载请标明出处.