1、end s=sum(s); I(n)=exp(-1)*s;I运行结果:k=9m=1000I = Columns 1 through 6 0.3160604988 0.2309605799 0.1839401373 0.1535601302 0.1321211422 0.1161015912 Columns 7 through 9 0.1036390735 0.0936475974 0.08544762262、利用秦九韶算法计算当=5, =2+3;n=100,x=0.5;n=150,x=13多项式()=+的值。通过调整程序以简化计算步骤,减少运算次数秦久韶算法n=input(n=x=input(
2、x=a(1)=5;for k=1:n; a(k+1)=2.*a(k)+3;s(n+1)=a(n+1);for i=n:-1:1 s(i)=x.*s(i+1)+a(i);Pnx=s(1)n=100x=0.5Pnx = 802.0000000n=150x=13 1.4659714820e+2133、设=28,按递推公式= -1/100计算到,。若取27.982(五位有效数字),试问计算、将有多大的误差。使用递推公式计算求数列第n项值用递推公式迭代)Y0=28;Y(1)=Y0-sqrt(783)/100;for n=2: Y(n)=Y(n-1)-sqrt(783)/100;y(1)=Y0-27.98
3、2/100; y(n)=y(n-1)-27.982/100;y100=y(100)y500=y(500)e1=y(100)-Y(100)e2=y(500)-Y(500)k=500k = 500y100 = 0.01800000000y500 = -1.1191000000e+002e1 = 1.3715926637e-004e2 = 6.8579633158e-004二章掌握插值原理和不同插值方法3、给出的数值表,用线性插值级二次插值计算ln0.54的近似值。x0.40.50.60.70.8Lnx-0.916291-0.693147-0.510826-0.357765-0.223144matl
4、ab线性插值函数线性插值程序:x1=input(x1=x=0.4:0.1:0.8;y=-0.916291 -0.693147 -0.510826 -0.357765 -0.223144;y1=interp1(x,y,x1,linearx1=0.54y1 = -0.620218600二次插值二次插值程序:x0=0.4 0.5 0.6 0.7 0.8;y0=-0.916291 -0.693147 -0.510826 -0.356675 -0.223144;x=0.54;n=length(x0);s=0;for j=0:(n-1) t=1; for i=0: if i=j t=t*(x-x0(i+1
5、)/(x0(j+1)-x0(i+1); end s=s+t*y0(j+1);s s = -0.61614271524、给出cosx,的函数表,步长h=若函数表具有五位有效数字,研究用线性插值求cosx近似值时的总误差限。线性插值i=1;while i5402 x=0:pi/180/60:pi/2; a=cos(x); x1=x; x(i)=; a(i)=; b(i)=interp1(x,a,x1(i),linear); i=i+1;b;a=cos(x);a(1)=;a(5400)=;b(1)=;b(5400)=;c=b-a;e1=max(abs(c) 4.2307972903e-00821、求
6、=1/在-55上取n=10,按等距节点求分段线性差值函数,并计算各节点间终点处的与的值,并估计误差。format longx=-5:5;f=1./(1+x.2);10 Ihm(i)=(f(i)+f(i+1)/2; xm(i)=(x(i)+x(i+1)/2; fm(i)=1./(1+xm(i).2); e(i)=Ihm(i)-fm(i);IhmfmeIhm = 0.04864253394 0.07941176471 0.1500000000 0.3500000000 0.7500000000 0.7500000000 Columns 7 through 10 0.3500000000 0.150
7、0000000 0.07941176471 0.04864253394fm =.0470* 0.3076923077 0.1379310345 0.07547169811 0.04705882353e = 0.001583710407 0.003940066593 0.01206896552 0.04230769231 -0.05000000000 -0.05000000000 0.04230769231 0.01206896552 0.003940066593 0.00158371040723.求f(x)=x4在a,b上的分段Hermite插值,并估计误差。matlab中Hermite插值函
8、数a=input(a=b=input(b=x0=input(x0=x=linspace(a,b,n);f=x.4;if x0b disp(Errorelse y0=interp1(x,f,x0,pchipy0a=0b=5n=1000x0=2y0 = 16.00000006024,给定数据表如下,是求出三次样条插值S(x),并满足条件三次样条差值x=0.25 0.30 0.39 0.45 0.53;y=0.5000 0.5477 0.6245 0.6708 0.7280;y0=interp1(x,y,x0,spline(待定)四章4、用simpson公式求积分并估计误差。simpson公式法a=
9、0;b=1;f=inline(exp(-x)s=(b-a)/6)*(f(a)+4*f(a+b)/2)+f(b)syms xf=exp(-x);s0=int(f,x,a,b);s0=eval(s0);e=s-s0 0.63233368002.131211751e-0048、用Romberg方法计算积分2/,要求误差不超过Romberg方法首先建立一个以Romberg.m命名的M文件:function q,step=Roberg(f,a,b,eps) if(nargin=3) eps=1.0e-4;end;M=1;tol=10;k=0;T=zeros(1,1);h=b-a;T(1,1)=(h/2)
10、*(subs(sym(f),findsym(sym(f),a)+subs(sym(f),findsym(sym(f),b);while toleps k=k+1; h=h/2; Q=0; for i=1:M x=a+h*(2*i-1); Q=Q+subs(sym(f),findsym(sym(f),x); end; T(k+1,1)=T(k,1)/2+h*Q; M=M*2; for j=1:k; T(k+1,j+1)=T(k+1,j)+(T(k+1,j)-T(k,j)/(4j-1); tol=abs(T(k+1,j+1)-T(k,j);q=T(k+1,k+1);step=k; f=(x)exp
11、(-x)f = (x)exp(-x) R,k,T=romberg(f,0,1,1e-5)R = 0.6321k = 3T = 0.6839 0 0 0 0.6452 0.6323 0 0 0.6354 0.6321 0.6321 00.6329 0.6321 0.6321 0.6321Y=2./sqrt(pi).*RY = 0.713311、用下列方法计算积分,并比较结果。(1)Romberg方法;(2)三点及五点Gauss公式;(3)将积分区间分为四等分,用复化两点Gauss公式。Romberg方法:借用上题建立的Romberg函数,在命令窗口输入: f=(y)1/(y)f = (y)1/(
12、y) R,k,T=romberg(f,1,3,1e-5)R =1.098612291k =5三点Gauss公式由于积分区间是1,3,故作变化, =,查表有, =0.77145966692,1/(x+2)x=0.7745966692,- 0.7745966692,0;A=0.555555556, 0.555555556,0.888888889;I1=0;length(x) I1=I1+feval(f,x(i)*A(i);I1I1 = 1.09803922五点高斯公式: =0.2369269, 0.4786287,0.5688889) ;x=-0.961799,-0.5384693,0,0.5384693,0.961799;A=0.2369269, 0.4786287,0.5688889,0.4786287,0.2369269;I2=0;I2=I2+feval(f,x(i)*A(i);I2 I2 = 1.108682446复化两点高斯公式:同理,通过查表求积系数为1,求积节点I=1*feval(f,-0.57735)+1*feval(f,0.57735)I =1.090908998五章未完待续
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1