矩阵上级作业程序

发布 2022-08-30 14:34:28 阅读 5032

《矩阵与数值分析》

上机实验作业。

学院(系。专业。

姓名。学号。

任课老师:金光日。

上课班级: 4班。

完成日期:2013-12-19

一、1 从小到大计算的程序:

function si=sl(n)

format long

j=2;si=0;

while (j si=si+10e6/(j^2-1);

j=j+1;

endn时的输出结果。

有输出结果可以看出,输出的有效数字的个数是16位。

从大到小的程序。

n时的输出结果。

结果对比:由表可知:从小到大计算时数值比较稳定,由大到小计算时出现大数吃小数的现象。

二、1)jacobi迭代程序。

clcclear

n=10;b=randperm((n-1)^2)';

t01=zeros(n-1);

to2=zeros(n-2);

a1=diag(ones(n-1));

a2=diag(ones(n-2));

t1=diag(a2,1);

t2=diag(2*a1);

t3=diag(a2,-1);

t=t1+t2+t3;

i=eye(n-1);

a=cell((n-1));

for i=1:(n-1)

for j=1:(n-1)

a=zeros(n-1);

endend

for i=1:(n-1)

a=(t+2*i);

endfor i=2:(n-1)

a=(-i);

a=(-i);enda;

a=cell2mat(a);

d=diag(diag(a));

l=d-tril(a);

u=d-triu(a);

bj=inv(d)*(l+u);

f=inv(d)*b;

xo=zeros((n-1)^2,1);

x=bj*xo+f;

m=1;while norm((x-xo),2)>=1e-10

xo=x;x=bj*xo+f;

m=m+1;endm

n时的迭代结果:

2)g-s迭代程序:

clcclear

n=10;b=randperm((n-1)^2)';

t01=zeros(n-1);

to2=zeros(n-2);

a1=diag(ones(n-1));

a2=diag(ones(n-2));

t1=diag(a2,1);

t2=diag(2*a1);

t3=diag(a2,-1);

t=t1+t2+t3;

i=eye(n-1);

a=cell((n-1));

for i=1:(n-1)

for j=1:(n-1)

a=zeros(n-1);

endend

for i=1:(n-1)

a=(t+2*i);

endfor i=2:(n-1)

a=(-i);

a=(-i);enda;

a=cell2mat(a);

d=diag(diag(a));

l=d-tril(a);

u=d-triu(a);

dl=inv(d-l);

bg=dl*u;

f=dl*b;

xo=zeros((n-1)^2,1);

x=bg*xo+f;

m=1;while norm((x-xo),2)>=10^(-10)

xo=x;x=bg*xo+f;

m=m+1;endm

n的迭代结果:

迭代次数对比:

由以上结果可以看出g-s迭代法比jacobi迭代法的收敛速度快,大概是jacobi迭代速度的两倍。

2. gauss列主元消去程序:

function d=zy(d,m,n)

for i=n:3

for j=i+1:4

if abs(d(i,m))temp=d(i,:)

d(i,:)d(j,:)

d(j,:)temp;

endend

endfunction d=xq(d,j,n,m)

for i=n:3

d(i+1,:)d(i+1,:)d(i+1,m)/d(j,j))*d(n,:)

endfunction [v]=gsxq(a,b)

d=[a,b];

d=zy(d,1,1);

d=xq(d,1,1,1);

d=zy(d,2,2);

d=xq(d,2,2,2);

d=zy(d,3,3);

d=xq(d,3,3,3);

x4=d(4,5)/d(4,4);

x3=(d(3,5)-d(3,4)*x4)/d(3,3);

x2=(d(2,5)-d(2,3)*x3-d(2,4)*x4)/d(2,2);

x1=(d(1,5)-d(1,2)*x2-d(1,3)*x3-d(1,4)*x4)/d(1,1);

v=[x1;x2;x3;x4];

end输出结果:

qr分解程序:

function x=qrf(a,b)

h=a;q=zeros(max(size(a)),max(size(a)*(max(size(a)-1)))

g=max(size(a));

for i=1:max(size(a))-1

z=eye(size(a));

w=a(:,1)-norm(a(:,1))*z(:,1);

q(1:max(size(a)),1+(i-1)*g:(i-1)*g+max(size(a)))z-(2/(w'*w))*w*w';

a=q(1:max(size(a)),1+(i-1)*g:(i-1)*g+max(size(a)))a;

a=a(2:max(size(a)),2:max(size(a)))

endfor i=1:g-2

q(1:g,1:g)=[eye(i,i),zeros(i,g-i);zeros(g-i,i),q(1:g-i,i*g+1:i*g+g-i)]*q(1:g,1:g);

endd=q(1:g,1:g)*[h,b];

x=zeros(1,g);

a1=d(:,1:g);

a2=d(:,g+1);

x(g)=a2(g)/a1(g,g);

for k = g-1:-1:1

x(k)=a2(k);

for p=g:-1:k+1

x(k) =x(k)-a1(k,p)*x(p);

endx(k)=x(k)/a1(k,k);

end输出结果:

由结果可知:用gauss列主元消去法、qr方法求解方程组得到解是基本相同的。在实际应用中,gauss列主元消去法用于求解良态方程组、qr分解方法则用于“病态”方程组的求解。

三、1.newton迭代法程序:

syms x

f=exp(x)+2*x^2+2*sin(x)-log(x)-16;

a=1; k=1;

while 1

y=subs(x-f/diff(f),x,a);

z=a;a=y;

if abs(y-z)<1e-10

break;

endk=k+1;endk

aexp(a)+2*a^2+2*sin(a)-log(a)-16

输出结果:2. newton迭代法程序:

function new(x1)

eps=1e-10;

syms x

f=x^4-3*x^3-3*x^2+11*x-6;

df1=diff(f);

df2=diff(df1);

df3=diff(df2);

df4=diff(df3);

k=0;m=1;

while 1

x2=subs(x-f/diff(f),x,x1);

if abs(x2-x1) break;

endk=k+1;

x1=x2;

enddisp('x是方程的根,x=')

disp(x2)

while 1

ff=subs(df1,x2);

if ff<0.001

m=1;else

breakend

ff=subs(df2,x2);

if ff<0.01

m=2;else

breakend

ff=subs(df3,x2);

if ff<0.01

m=3;else

breakend

ff=subs(df4,x2);

if ff<0.01

m=4;else

breakend

enddisp('m是重根,m=')

disp(m)

end输出结果:

由以上结果可知:该方程有四个根分别为:-2,3,1,1

四、function i = igauss(f,a,b,n,ak,xk)

if(n<5 &&nargin ==4)

ak = 0;

xk = 0;

elsexk1=((b-a)/2)*xk+((a+b)/2);

i=((b-a)/2)*sum(ak.*subs(sym(f),findsym(f),xk1));

endta = b-a)/2;

tb = a+b)/2;

switch n

case 0 i=2*ta*subs(sym(f),findsym(sym(f)),tb);

矩阵上机作业

矩阵与数值分析 课程数值实验报告。1.方程在x 3.0附近有根,试写出其三种不同的等价形式以构成两种不同的迭代格式,再用这两种迭代求根,并绘制误差下降曲线,观察这两种迭代是否收敛及收敛的快慢。newton迭代法。function x juz1 x1,tol,max xo x1 t i 1 while...

矩阵实习作业

矩阵与数值分析大作业。课程名称 矩阵与数值分析 任课教师 xxx 副教授 姓名xxx学号xxxx 班级 xxxxx 学院 电信与电气工程学部 交作业时间 2011年 12月21日。2011级工科硕士研究生。矩阵与数值分析 课程数值实验题目。一 对于数列,有如下两种生成方式给出利用上述两种递推公式生成...

矩阵论测验作业

一 是非题 请在正确命题前的括号内打 否则打 1.设是的实矩阵,为维向量,则 2.设阶方阵满足,则的特征值只能是1 3.欧氏空间上的任意两种向量范数都是等价的 4.设为矩阵,为阶可逆方阵,则。二 填空题。设。则且与都正交的所有向量为。三 设阶方阵满足。试证明 四 给定的两个基。和。若定义线性变换为 ...