1、数值计算方法上机答案 本科实验报告课程名称: 实验项目: 实验地点: 机房 专业班级: 采矿1206 学号: * * * 指导教师: 2014年 7 月 3 日一、求非线性方程的根。1、求方程在附近的是根,要求精度满足.(牛顿切线法)f=inline(x-cos(x); % f(x)df=inline(1+sin(x); %f(x)n=1;x0=input(x0=);del=input(del=);N=input(N=);fprintf(n k x(k);fprintf(n %2d %f ,0,x0);F0=f(x0); dF0=df(x0);while nN if dF0=0 fprintf
2、(导数为0,迭代无法继续进行.); return; end x1=x0-F0/dF0; F1=f(x1); dF1=df(x1); if (abs(x1-x0)del) |abs(F1)del) fprintf(n n 结果:%fn,x1); return; end fprintf(n %2d %f ,n,x1); n=n+1; x0=x1; F0=F1; dF0=dF1;endfprintf(nn % d 次迭代后未达到精度要求.n,N);NewtonIterationx0=1.5del=1e-4N=100 k x(k) 0 1.500000 1 0.784472 2 0.739519 结果
3、:0.7390852、求方程在附近的是根,求出具有思维有效数字的根近似值.(简单迭代法)clear clcphi=inline(0.8+x2)(1/3); %迭代函数x0=input(x0=);del=input(del=);N=input(N=); n=1;fprintf(n %2d %f ,0,x0);while nN x=phi(x0); if abs(x-x0)1 s(m)=a(m,n); j=p; while (j2) & (j=m+1) & (jmax1 max1=abs(A(i,k);r=i; end end if max1k for j=k:n z=A(k,j);A(k,j)=
4、A(r,j);A(r,j)=z; end z=b(k);b(k)=b(r);b(r)=z;det=-det; end for i=k+1:n m=A(i,k)/A(k,k); for j=k+1:n A(i,j)=A(i,j)-m*A(k,j); end b(i)=b(i)-m*b(k); end det=det*A(k,k);enddet=det*A(n,n); if abs(A(n,n) Gauss(A,b) A = 17.031, -0.615, -2.991, 1.007, -1.006, 0 -1.0, 34.211, -1.0, -2.1, 6.3, -1.7 0, 0.5, 13
5、.0, -0.5, 1.0, -1.5 4.501, 3.11, -3.907, -61.705, 12.17, 8.999 0.101, -0.812, -0.017, -0.91, 4.918, 0.1 1.0, 2.0, 3.0, 4.5, 5.0, 21.8 ans = 1.0000 -2.0000 2.9999 -4.0001 5.0000 -6.0008clear clcn=input(n=);A=input(A=);b=input(b=);x=input(x=);epsilon=input(n 精度=);N=input(n 最大迭代次数N=); fprintf(n %d:,0);
6、for i=1:n fprintf(%f,x(i);end%以下是迭代过程for k=1:N %这是第k步迭代,迭代前的向量在x0中,迭代后的向量在x中; normal=0; for i=1:n t=x(i); x(i)=b(i); for j=1:n if j=i x(i)=x(i)-A(i,j)*x(j); end end x(i)=x(i)/A(i,i); temp=abs(x(i)-t);% 求范数于迭代在同一个循环中; if tempnormal normal=temp; %这里用的是无穷范数 end end %第i不迭代结束; fprintf(n %d: ,k); for i=1:
7、n fprintf(%f,x(i);%输出迭代过程 end if normal xx = 4.1992 0.4955 -2.0308 7.7589 8.4767 2.7424 7.0444 4.8824function x,det,flag = Gauss(A,b)n,m=size(A);nb=length(b);if n=merror(the rows and cloums of A must be equal!);return;endif m=nberror(the rows and cloums of A must be equal the length of b!);return;en
8、dflag=OK;det=1;x=zeros(n,1);for k=1:(n-1) max1=0; for i=k:n if abs(A(i,k)max1 max1=abs(A(i,k);r=i; end end if max1k for j=k:n z=A(k,j);A(k,j)=A(r,j);A(r,j)=z; end z=b(k);b(k)=b(r);b(r)=z;det=-det; end for i=k+1:n m=A(i,k)/A(k,k); for j=k+1:n A(i,j)=A(i,j)-m*A(k,j); end b(i)=b(i)-m*b(k); end det=det*
9、A(k,k);enddet=det*A(n,n); if abs(A(n,n) Gauss(A,b)ans = 5 -10 10 -5 1三、用追赶法求解下列方程组(6位有效数字)。解1 clear clcn=input(n=);a=input(a=);b=input(b=);c=input(c=);% a(1)=0;c(1)=0;x=input(x=);s=zeros(n,1);t=s;temp=0;for k=1:n s(k)=b(k)-a(k)*temp;% temp t(k)=c(k)/s(k); temp=t(k);endtemp=0;for k=1:n x(k)=(x(k)-a(k
10、)*temp)/s(k); temp=x(k);endfor k=n-1:-1:1 x(k)=x(k)-t(k)*x(k+1);endfprintf(nx=n);for k=1:n fprintf( %f n,x(k);endn=5a=0 -1 -1 -1 -1b=4 4 4 4 4c=-1 -1 -1 -1 0x=100 0 0 0 200x= 27.051282 8.205128 5.769231 14.871795 53.717949 解2clear clcn=input(n=);a=input(a=);b=input(b=);c=input(c=);% a(1)=0;c(1)=0;x=
11、input(x=);s=zeros(n,1);t=s;temp=0;for k=1:n s(k)=b(k)-a(k)*temp;% temp t(k)=c(k)/s(k); temp=t(k);endtemp=0;for k=1:n x(k)=(x(k)-a(k)*temp)/s(k); temp=x(k);endfor k=n-1:-1:1 x(k)=x(k)-t(k)*x(k+1);endfprintf(nx=n);for k=1:n fprintf( %f n,x(k);endn=10a=0 1 1 1 1 1 1 1 1 1 b=-2 -2 -2 -2 -2 -2 -2 -2 -2 -
12、2 c=1 1 1 1 1 1 1 1 1 0x=-0.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -1.5 -0.5x= 6.500000 12.500000 17.000000 20.000000 21.500000 21.500000 20.000000 17.000000 12.500000 6.500000 四、求解下列积分(E=1E-6)解1%复化的梯形公式和复化色Simpson公式计算定积分f=inline(sin(x)/x); % 函数表达式可以更换;a=input(a=); %积分区间左端点b=input(b=); %积分区间右端点n=input
13、(n=); %区间n等分;h=(b-a)/n;temp=f(a);xk=a;for i=1:n-1 xk=xk+h; temp=temp+2*f(xk);endtemp=temp+f(b);temp=temp*h/2; fprintf(n复化梯形公式计算结果: %f,temp); fuhuatxa=1b=2n=1000复化梯形公式计算结果: 0.659330解2%复化的梯形公式和复化色Simpson公式计算定积分f=inline(exp(-x2); % 函数表达式可以更换;a=input(a=); %积分区间左端点b=input(b=); %积分区间右端点n=input(n=); %区间n等分;h=(b-a)/n;temp=f(a);xk=a;for i=1:n-1 xk=xk+h; temp=temp+2*f(xk);endtemp=temp+f(b);temp=temp*h/2; fprintf(n复化梯形公式计算结果: %f,temp); fuhuatxa=0b=1n=1000复化梯形公式计算结果: 0.746824五、求下列矩阵所有最大和最小特征值和相应特征向量。 解1(幂法)function m,u,flag = Pow( A,delta,max1) if nargin3 max1=100endif nargin2delta=1e-5;end