数值分析实验报告
专业班级:电气工程及其自动化1201班
姓 名: 王卓
学 号: 201222046004
实验日期: 2014/12/5 2014/12/12
实验一
1 y=0.182322
for n=1:20
y=1/n-5*y
end
y = 0.18232200000000
y = 0.08839000000000
y =0.05805000000000
y =0.04308333333333
y = 0.03458333333334
y =0.02708333333331
y =0.03125000000010
y =0.01339285714336
y =0.19196428571680
y =-0.84871031747287
y =4.34355158736433
y =-21.62684884591257
y =1.082175775628962e+002
y =-5.410109647375579e+002
y =2.705126252259218e+003
y =-1.352556459462942e+004
y =6.762788547314711e+004
y =3.381393685422061e+005
y =1.690696898266586e+006
y =-8.453484438701350e+006
y =4.226742224350675e+007
2 y=0.008730
for n=20:-1:1
y=1/(5*n)-1/5*y
end
y =0.00873000000000
y =0.00825400000000
y =0.00887551578947
y =0.00933600795322
y =0.00989750429171
y =0.01052049914166
y =0.01122923350500
y =0.01203986758471
y =0.01297664186767
y =0.01407133829313
y =0.01536755052319
y =0.01692648989536
y =0.01883692424315
y =0.02123261515137
y =0.02432490554115
y =0.02846835222510
y =0.03430632955498
y =0.04313873408900
y =0.05803891984887
y =0.08839221603023
y =0.18232155679395
实验二
1 function [y,R]=lagranzi(X,Y,x,M)
n=length(X); m=length(x);
for i=1:m
z=x(i);s=0.0;
for k=1:n
p=1.0; q1=1.0; c1=1.0;
for j=1:n
if j~=k
p=p*(z-X(j))/(X(k)-X(j));
end
q1=abs(q1*(z-X(j)));c1=c1*j;
end
s=p*Y(k)+s;
end
y(i)=s;
end
R=M*q1/c1;
x=0.5635; M=1; X=[0.56160,0.56280,0.56401];
Y=[0.82741,0.82659,0.82577]; [y,R]=lagranzi(X,Y,x,M)
y =0.8261
R =1.1305e-010
2 function [y,R]= newcz(X,Y,x,M)
n=length(X); m=length(x);
for t=1:m
z=x(t); A=zeros(n,n);A(:,1)=Y';
s=0.0; p=1.0; q1=1.0; c1=1.0;
for j=2:n
for i=j:n A(i,j)=(A(i,j-1)-A(i-1,j-1))/(X(i)-X(i-j+1));
end
q1=abs(q1*(z-X(j-1)));c1=c1*j;
end
C=A(n,n);q1=abs(q1*(z-X(n)));
for k=(n-1):-1:1
C=conv(C,poly(X(k)));d=length(C); C(d)=C(d)+A(k,k);
end
y(k)= polyval(C, z);
end
R=M*q1/c1;
x=0.596;M=1;X=[0.4,0.55,0.65,0.8];Y=[0.41075,0.57815,0.69675,0.88811];
[y,R]= newcz(X,Y,x,M)
y =0.6319
R =4.1383e-006
x=0.895;M=1;X=[0.4,0.55,0.65,0.8,0.9];Y=[0.41075,0.57815,0.69675,0.88811,1.02652];
>> [y,R]= newcz(X,Y,x,M)
y =1.0194
R =1.6562e-007
实验三
1 function [RA,RB,n,X]=liezhu(A,b)
B=[A b]; n=length(b); RA=rank(A);
RB=rank(B);zhica=RB-RA;
if zhica>0,
disp('请注意:因为RA~=RB,所以此方程组无解.')
return
end
if RA==RB
if RA==n
disp('请注意:因为RA=RB=n,所以此方程组有唯一解.')
X=zeros(n,1); C=zeros(1,n+1);
for p= 1:n-1
[Y,j]=max(abs(B(p:n,p))); C=B(p,:);
B(p,:)= B(j+p-1,:); B(j+p-1,:)=C;
for k=p+1:n
m= B(k,p)/ B(p,p);
B(k,p:n+1)= B(k,p:n+1)-m* B(p,p:n+1);
end
end
b=B(1:n,n+1);A=B(1:n,1:n); X(n)=b(n)/A(n,n);
for q=n-1:-1:1 X(q)=(b(q)-sum(A(q,q+1:n)*X(q+1:n)))/A(q,q);
end
else
disp('请注意:因为RA=RB<n,所以此方程组有无穷多解.')
end
end
b=[1.183;2.173;3.035];A=[0.101 2.304 3.555;-1.347 3.712 4.623;-2.835 1.072 5.643];
>> [RA,RB,n,X]=liezhu(A,b)
请注意:因为RA=RB=n,所以此方程组有唯一解.
RA =3
RB =3
n =3
X =-0.4138
0.0319
0.3239
2 function X=LUjfcz(A,b)
[n,n] =size(A);
X=zeros(n,1);
Y=zeros(n,1);
C=zeros(1,n);
r=1:n;
for p=1:n-1
[max1,j]=max(abs(A(p:n,p)));
C=A(p,:);
A(p,:)= A(j+p-1,:);
A(j+p-1,:)=C;
g=r(p);
r(p)= r(j+p-1);
r(j+p-1)=g;
if A(p,p)==0
disp('A是奇异阵,方程组无唯一解');
break;
end
for k=p+1:n
H= A(k,p)/A(p,p);
A(k,p) = H;
A(k,p+1:n)=A(k,p+1:n)- H* A(p,p+1:n);
end
end
Y(1)=b(r(1));
for k=2:n
Y(k)= b(r(k))- A(k,1:k-1)* Y(1:k-1);
end
X(n)= Y(n)/ A(n,n);
for i=n-1:-1:1
X(i)= (Y(i)- A(i, i+1:n) * X (i+1:n))/ A(i,i);
end
end
A=[1 2 -12 8;5 4 7 -2;-3 7 9 5;6 -12 -8 3];b=[27;4;11;49];
X=LUjfcz(A,b)
X = 3.0000
-2.0000
1.0000
5.0000
实验四
1 function X=jacdd(A,b,X0,P,wucha,max1)
[n m]=size(A);
for k=1:max1
k
for j=1:m
X(j)=(b(j)-A(j,[1:j-1,j+1:m])*X0([1:j-1,j+1:m]))/A(j,j);
end
X
djwcX=norm(X'-X0,P);
xdwcX=djwcX/(norm(X',P)+eps);
X0=X';
if (djwcX<wucha)&(xdwcX<wucha)
disp('请注意:雅可比迭代收敛,此方程组的精确解jX和近似解X如下:')
return
end
end
if (djwcX>wucha)&(xdwcX>wucha)
disp('请注意:雅可比迭代次数已经超过最大迭代次数max1 ')
end
>> A=[1 2 -2;1 1 1;2 2 1];b=[7;2;5];
X0=[0 0 0]';X=jacdd(A,b,X0,inf, 0.001,100)
k =1
X =7 2 5
k =2
X =13 -10 -13
k =3
X =1 2 -1
k =4
X =1 2 -1
请注意:雅可比迭代收敛,此方程组的精确解jX和近似解X如下:
X =1 2 -1
2 function X=gsdddy(A,b,X0,P,wucha,max1)
D=diag(diag(A));U=-triu(A,1);L=-tril(A,-1); dD=det(D);
if dD==0
disp('请注意:因为对角矩阵D奇异,所以此方程组无解.')
else
disp('请注意:因为对角矩阵D非奇异,所以此方程组有解.')
iD=inv(D-L); B2=iD*U;f2=iD*b;jX=A\b; X=X0;
[n m]=size(A);
for k=1:max1
X1= B2*X+f2; djwcX=norm(X1-X,P);
xdwcX=djwcX/(norm(X,P)+eps);
if (djwcX<wucha)|(xdwcX<wucha)
return
else
k,X1',k=k+1;X=X1;
end
end
if (djwcX<wucha)|(xdwcX<wucha)
disp('请注意:高斯-塞德尔迭代收敛,此A的分解矩阵D,U,L和方程组的精确解jX和近似解X如下: ')
else
disp('请注意:高斯-塞德尔迭代的结果没有达到给定的精度,并且迭代次数已经超过最大迭代次数max1,方程组的精确解jX和迭代向量X如下: ')
X=X';jX=jX'
end
end
X=X';D,U,L,jX=jX'
>> A=[1 0.9 0.9;0.9 1 0.9;0.9 0.9 1];b=[1.9;2.0;1.7];
>> X0=[0 0 0]';X=gsdddy(A,b,X0,inf, 0.001,100)
请注意:因为对角矩阵D非奇异,所以此方程组有解.
k =1
ans = 1.9000 0.2900 -0.2710
k =2
ans =1.8829 0.5493 -0.4890
k =3
ans =1.8457 0.7789 -0.6622
k =4
ans =1.7949 0.9805 -0.7979
k =5
ans =1.7356 1.1560 -0.9025
k =6
ans =1.6718 1.3076 -0.9815
k =7
ans =1.6065 1.4375 -1.0396
k =8
ans =1.5419 1.5479 -1.0808
k =9
ans =1.4796 1.6411 -1.1086
k =10
ans =1.4208 1.7191 -1.1259
k =11
ans =1.3661 1.7838 -1.1349
k =12
ans =1.3160 1.8370 -1.1377
k =13
ans =1.2706 1.8804 -1.1359
k =14
ans =1.2300 1.9153 -1.1308
k =15
ans =1.1939 1.9432 -1.1234
k =16
ans =1.1622 1.9651 -1.1145
k =17
ans =1.1345 1.9820 -1.1049
k =18
ans =1.1106 1.9949 -1.0949
k =19
ans =1.0900 2.0044 -1.0850
k =20
ans =1.0725 2.0112 -1.0754
k =21
ans =1.0577 2.0159 -1.0662
k =22
ans =1.0453 2.0188 -1.0577
k =23
ans =1.0350 2.0204 -1.0499
k =24
ans =1.0265 2.0210 -1.0428
k =25
ans =1.0196 2.0209 -1.0364
k =26
ans =1.0140 2.0202 -1.0308
k =27
ans =1.0095 2.0191 -1.0258
k =28
ans =1.0060 2.0178 -1.0214
k =29
ans =1.0032 2.0164 -1.0176
k =30
ans =1.0012 2.0148 -1.0144
k =31
ans =0.9996 2.0133 -1.0116
k =32
ans =0.9985 2.0118 -1.0093
X =0.9985
2.0118
-1.0093
第二篇:数值分析的实验报告的格式
计算方法实验报告的格式要求
· 实验题目(黑体、小二)
·
班级: 姓名: 学号: 日期:
一、实验目的(黑体、四号)
1、所解决的问题实际背景;(宋体、小四)
2、求问题的数值解的必要性。
二、基本理论及背景
1、经典理论的解决方案和局限性;
2、数值解的算法和理论推导;
3、待解决的具体问题。
三、算法设计
四、实验步骤
1、实验的内容;
2、输出结果。
五、使用说明实验结果分析
1、调试中遇到的问题及对问题的解决方法;
2、算法的复杂度或测量结果的精确度分析。
六、算法的改进和实验总结
1、算法进一步的发展和更复杂的理论介绍、改进;
2、和自己的实验感想、经验总结。
七、源程序(带注释)
20##-2011第一学期《计算方法》实验一
迭代法求解非线性方程根
一、实验内容
(1)熟悉迭代法求解非线性方程根的数值算法;
(2)用牛顿法求方程的根
求方程的根,精度至少达到10-6;
(3)用割线法求解上题;
(4)比较取不同初始值时达到精度所需的次数,并作出解释;
(5)比较两种迭代法收敛的速度。
要求输出各次的迭代次数与迭代值