数值分析实验综述Word文档下载推荐.docx
《数值分析实验综述Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数值分析实验综述Word文档下载推荐.docx(26页珍藏版)》请在冰豆网上搜索。
![数值分析实验综述Word文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2022-10/4/87319478-e4fe-4307-be13-900ed988d6e6/87319478-e4fe-4307-be13-900ed988d6e61.gif)
2. Matlab的四阶Rk方法 25
3. 作图比较,一定误差 27
第一章实验
1.根号5的极限
代码如下:
x0=5;
fori=0:
1:
100
xi=sqrt(x0);
ei=x0-xi;
fprintf('
NO:
%d,xi=%0.8f,Theerroris:
%0.8f\n'
i,xi,ei);
x0=xi;
ifei<
10^(-8)
break;
end
end
可以看出极限是1.
2.求pi的近似值
代码如下:
sum0=0;
forn=1:
50000
y=(-1)^(n+1)/(2*n-1);
sum1=y+sum1;
pi_1=4*sum0;
pi_2=4*sum1;
error=pi_2-pi_1;
sum0=sum1;
%d,pi_2=%0.8f,Theerror:
n,pi_2,error);
ifabs(error)<
10^(-4)
求得结果是:
3.画图y=sinx与其泰勒展开
x=0:
pi/100:
2*pi;
y=sin(x);
y1=0;
y2=0;
y3=0;
fori=0:
2
y1=y1+(-1)^(i)*x.^(2*i+1)/factorial(2*i+1);
5
y2=y2+(-1)^(i)*x.^(2*i+1)/factorial(2*i+1);
10
y3=y3+(-1)^(i)*x.^(2*i+1)/factorial(2*i+1);
plot(x,y,'
*r'
x,y1,'
b'
x,y2,'
-g'
x,y3,'
k'
)
axis([02*pi-1.51.5])
看出n=2发散,n=10几乎与y=sinx重合。
首先用mesh函数.
2;
k=[0.2,0.1,0.05];
[xi,yi]=meshgrid(-10:
k(1,i+1):
10);
z=exp(-abs(xi))+cos(xi+yi)+1./(xi.^2+yi.^2+1);
subplot(2,2,i+1)
title('
mesh'
mesh(xi,yi,z)
再用surf函数.
第二章实验
1.列主元三角分解A.
clc
A=[11111;
12345;
1361015;
14102035;
15153570]
E=eye(5)
[m,n]=size(A);
ifm~=n
error('
不是方阵'
)
return
end
ifdet(A)==0
不能分解'
u=A;
p=eye(m);
l=eye(m);
fori=1:
m
forj=i:
t(j)=u(j,i);
fork=1:
i-1
t(j)=t(j)-u(j,k)*u(k,i);
end
end
a=i;
b=abs(t(i));
forj=i+1:
ifb<
abs(t(j))
b=abs(t(j));
a=j;
ifa~=i
forj=1:
m
c=u(i,j);
u(i,j)=u(a,j);
u(a,j)=c;
forj=1:
m
c=p(i,j);
p(i,j)=p(a,j);
p(a,j)=c;
end
c=t(a);
t(a)=t(i);
t(i)=c;
u(i,i)=t(i);
m
u(j,i)=t(j)/t(i);
i-1
u(i,j)=u(i,j)-u(i,k)*u(k,j);
end
end
end
l=tril(u,-1)+eye(m)
u=triu(u,0)
B=A/E
2.追赶法求方程,电路的电流
A=[2-2000000;
-25-200000;
0-25-20000;
00-25-2000;
000-25200;
0000-25-20;
00000-25-2;
000000-25]
bb=[220/270000000]
n=size(A,1);
s=zeros(n,1);
%-----È
¡
³
ö
È
ý
¶
Ô
½
Ç
--------
b=diag(A);
a=diag(A,-1);
c=diag(A,1);
d=zeros(n,1);
u=zeros(n-1,1);
fori=1:
n-1
d
(1)=b
(1);
u(i)=c(i)/d(i);
d(i+1)=b(i+1)-a(i)*u(i);
%-----×
·
µ
Ä
¹
Ì
------------
y=zeros(n,1);
y
(1)=bb
(1)/d
(1);
fori=2:
n
y(i)=(bb(i)-a(i-1)*y(i-1))/d(i);
%-----¸
Ï
---------------
s(n)=y(n);
fori=n-1:
-1:
1
s(i)=y(i)-u(i)*s(i+1);
s
3.方程组的性态与矩阵条件数的实验
clc
n=5;
A=zeros(n);
C=zeros(n);
b=zeros(1,n);
x(i)=1+0.1*i;
forj=1:
A(i,j)=x(i)^(j-1);
C(i,j)=1/(i+j-1);
b(i)=b(i)+A(i,j);
A
C
b
d=cond(A,2)
DD=A\b'
(1)当n=5,10,20时,cond(A)=5.3615e+05,8.6823e+11,1.5428e+22。
看出越来越病态了。
(2)当n=5,10,20时,解分别如下:
说明条件数越大,越病态,发散了。
当n=10时就一个值有一定误差。
(3)n=10,解方程(A+delta)x=b.
clc
n=10;
%C(i,j)=1/(i+j-1);
A(2,2)=A(2,2)+10^(-8)
A(10,10)=A(10,10)+10^(-8)
x=A\b'
那么结果如下:
可以看出很小的扰动导致解误差变得较大了。
误差
(1)行列式,条件数,特征值
(2)(A+A0)(x+x0)=b,求此时的x0与||x0||2.
代码如下:
A=[10787;
7565;
86109;
75910]
A1=[107.28.16.9;
7.085