大连理工大学矩阵与数值分析上机作业.docx

上传人:b****5 文档编号:8493378 上传时间:2023-01-31 格式:DOCX 页数:24 大小:496.56KB
下载 相关 举报
大连理工大学矩阵与数值分析上机作业.docx_第1页
第1页 / 共24页
大连理工大学矩阵与数值分析上机作业.docx_第2页
第2页 / 共24页
大连理工大学矩阵与数值分析上机作业.docx_第3页
第3页 / 共24页
大连理工大学矩阵与数值分析上机作业.docx_第4页
第4页 / 共24页
大连理工大学矩阵与数值分析上机作业.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

大连理工大学矩阵与数值分析上机作业.docx

《大连理工大学矩阵与数值分析上机作业.docx》由会员分享,可在线阅读,更多相关《大连理工大学矩阵与数值分析上机作业.docx(24页珍藏版)》请在冰豆网上搜索。

大连理工大学矩阵与数值分析上机作业.docx

大连理工大学矩阵与数值分析上机作业

大连理工大学

矩阵与数值分析上机作业

 

课程名称:

矩阵与数值分析

研究生姓名:

 

交作业日时间:

2016年12月20日

 

第1题

1.1程序:

Clearall;

n=input('请输入向量的长度n:

')

fori=1:

n;

v(i)=1/i;

end

Y1=norm(v,1)

Y2=norm(v,2)

Y3=norm(v,inf)

1.2结果

n=10Y1=2.9290

Y2=1.2449

Y3=1

n=100Y1=5.1874

Y2=1.2787

Y3=1

n=1000Y1=7.4855

Y2=1.2822

Y3=1

N=10000Y1=9.7876

Y2=1.2825

Y3=1

1.3分析

一范数逐渐递增,随着n的增加,范数的增加速度减小;二范数随着n的增加,逐渐趋于定值,无群范数都是1.

第2题

2.1程序

clearall;

x

(1)=-10^-15;

dx=10^-18;

L=2*10^3;

fori=1:

L

y1(i)=log(1+x(i))/x(i);

d=1+x(i);

ifd==1

y2(i)=1;

else

y2(i)=log(d)/(d-1);

end

x(i+1)=x(i)+dx;

end

x=x(1:

length(x)-1);

plot(x,y1,'r');

holdon

plot(x,y2);

 

2.2结果

2.3分析

红色的曲线代表未考虑题中算法时的情况,如果考虑题中的算法则数值大小始终为1,这主要是由于大数加小数的原因。

第3题

3.1程序

clearall;

A=[1-18144-6722016-40325376-46082304-512];

x=1.95:

0.005:

2.05;

fori=1:

length(x);

y1(i)=f(A,x(i));

y2(i)=(x(i)-2)^9;

end

figure(3);

plot(x,y1);

holdon;

plot(x,y2,'r');

F.m文件

functiony=f(A,x)

y=A

(1);

fori=2:

length(A);

y=x*y+A(i);

end;

3.2结果

第4题

4.1程序

clearall;

n=input('请输入向量的长度n:

')

A=2*eye(n)-tril(ones(n,n),0);

fori=1:

n

A(i,n)=1;

end

n=length(A);

U=A;

e=eye(n);

fori=1:

n-1

[max_data,max_index]=max(abs(U(i:

n,i)));

e0=eye(n);

max_index=max_index+i-1;

U=e0*U;

e1=eye(n);

forj=i+1:

n

e1(j,i)=-U(j,i)/U(i,i);

end

U=e1*U;

P{i}=e0;%把变换矩阵存到P中

L{i}=e1;

e=e1*e0*e;

end

fork=1:

n-2

Ldot{k}=L{k};

fori=k+1:

n-1

Ldot{k}=P{i}*Ldot{k}*P{i};

end

end

Ldot{n-1}=L{n-1};

LL=eye(n);

PP=eye(n);

fori=1:

n-1

PP=P{i}*PP;

LL=Ldot{i}*LL;

end

b=ones(n,2);

b=e*b;%解方程

x=zeros(n,1);

x(n)=b(n)/U(n,n);

fori=n-1:

-1:

1

x(i)=(b(i)-U(i,:

)*x)/U(i,i);

end

X=U^-1*e^-1*eye(n);%计算逆矩阵

AN=X';

result2{n-4,1}=AN;

result1{n-4,1}=x;

fprintf('%d:

\n',n)

fprintf('%d',AN);

4.2结果

n=5

1.0625

-0.875

-0.75

-0.5

-0.0625

0.0625

1.125

-0.75

-0.5

-0.0625

0.0625

0.125

1.25

-0.5

-0.0625

0.0625

0.125

0.25

1.5

-0.0625

-0.0625

-0.125

-0.25

-0.5

0.0625

n=10

1.0625

-0.875

-0.75

-0.5

-0.0625

1.0625

-0.875

-0.75

-0.5

-0.0625

0.0625

1.125

-0.75

-0.5

-0.0625

0.0625

1.125

-0.75

-0.5

-0.0625

0.0625

0.125

1.25

-0.5

-0.0625

0.0625

0.125

1.25

-0.5

-0.0625

0.0625

0.125

0.25

1.5

-0.0625

0.0625

0.125

0.25

1.5

-0.0625

-0.0625

-0.125

-0.25

-0.5

0.0625

-0.0625

-0.125

-0.25

-0.5

0.0625

1.0625

-0.875

-0.75

-0.5

-0.0625

1.0625

-0.875

-0.75

-0.5

-0.0625

0.0625

1.125

-0.75

-0.5

-0.0625

0.0625

1.125

-0.75

-0.5

-0.0625

0.0625

0.125

1.25

-0.5

-0.0625

0.0625

0.125

1.25

-0.5

-0.0625

0.0625

0.125

0.25

1.5

-0.0625

0.0625

0.125

0.25

1.5

-0.0625

-0.0625

-0.125

-0.25

-0.5

0.0625

-0.0625

-0.125

-0.25

-0.5

0.0625

同样的方法可以算出n=20,n=30时的结果,这里就不罗列了。

 

第5题

5.1程序

clearall;

n=input('请输入向量的长度n:

10至20')

fori=1:

n

forj=1:

n

a(i,j)=1/(i+j-1);

end

end

forj=1:

n

sum=0;

fork=1:

j-1

sum=sum+l(j,k)^2;

end

l(j,j)=sqrt(a(j,j)-sum);

fori=j+1:

n

sum=0;

fork=1:

j-1

sum=sum+l(i,k)*l(j,k);

end

l(i,j)=(a(i,j)-sum)/l(j,j);

end

end

b=ones(n,1);

y=zeros(n,1);

y(n)=b(n)/l(n,n);

fori=n-1:

-1:

1

y(i)=(b(i)-l(i,:

)*y)/l(i,i);

end

l=l';

x=zeros(n,1);

x(n)=y(n)/l(n,n);

fori=n-1:

-1:

1

x(i)=(y(i)-l(i,:

)*x)/l(i,i);

end

fprintf('%d\t',x);

fprintf('\n');

 

5.2结果

n=10

n=11

n=12

n=13

n=14

n=15

n=16

n=17

n=18

n=19

n=20

-746517.8688

3111493.423

-11884558.85

478355909.6

497329749.5

519377549.9

445748685

378885969.7

341571897.8

1020943960

994971030.6

69820595.08

-354658479.9

1634110905

-77484610111

-80547115920

-82914903907

-72327488690

-62111481037

-60010758946

-1.76915E+11

-1.68795E+11

-1587444197

9875543407

-54993461592

3.06265E+12

3.18327E+12

3.23484E+12

2.86169E+12

2.48062E+12

2.55037E+12

7.40163E+12

6.93865E+12

152********

-1.17236E+11

7.93546E+11

-5.20373E+13

-5.40791E+13

-5.42806E+13

-4.8713E+13

-4.26882E+13

-4.65382E+13

-1.3123E+14

-1.21156E+14

-76184620048

7.35352E+11

-6.11155E+12

4.7524E+14

4.93812E+14

4.89563E+14

4.46792E+14

3.97243E+14

4.57473E+14

1.22E+15

1.11E+15

2.18036E+11

-2.70378E+12

2.80302E+13

-2.62E+15

-2.72E+15

-2.66E+15

-2.48E+15

-2.25E+15

-2.72E+15

-6.64E+15

-5.98E+15

-3.70513E+11

6.12295E+12

-8.11E+13

9.24E+15

9.59E+15

9.27E+15

8.90E+15

8.30E+15

1.04E+16

2.17E+16

1.94E+16

3.69292E+11

-8.64269E+12

1.51789E+14

-2.17E+16

-2.25E+16

-2.14E+16

-2.14E+16

-2.07E+16

-2.60E+16

-4.18E+16

-3.74E+16

-1.99261E+11

7.40507E+12

-1.83339E+14

3.40E+16

3.53E+16

3.34E+16

3.52E+16

3.56E+16

4.28E+16

4.06E+16

3.77E+16

44905979430

-3.52275E+12

1.3792E+14

-3.55E+16

-3.68E+16

-3.47E+16

-3.89E+16

-4.12E+16

-4.38E+16

-4.89E+15

-1.01E+16

7.13565E+11

-5.87483E+13

2.35E+16

2.44E+16

2.37E+16

2.73E+16

2.94E+16

2.40E+16

-1.64E+16

-5.28E+15

1.08203E+13

-8.98E+15

-9.29E+15

-1.03E+16

-9.10E+15

-7.78E+15

-4.50E+15

-1.23E+16

-1.58E+16

1.50E+15

1.55E+15

3.06E+15

-2.94E+15

-6.68E+15

1.72E+15

1.63E+16

1.04E+16

2.17168E+12

-7.94676E+14

5.08E+15

7.29E+15

-1.45E+15

3.84E+16

3.85E+16

1.58892E+14

-2.50E+15

-2.19E+15

-8.57E+15

-2.64E+16

-2.01E+16

4.80384E+14

-3.1296E+14

1.48E+16

-8.62E+16

-7.98E+16

2.304E+14

-9.01E+15

1.40E+17

1.19E+17

1.99E+15

-8.07E+16

-6.35E+16

1.70E+16

1.09E+16

7.5453E+14

 

第6题

6.1程序

clearall;

A=[1234;

-13sqrt

(2)sqrt(3);

-22exp

(1)pi;

-sqrt(10)2-37;

0275/2;];

U=f61(A(:

2));

HA=f62(U,A);

f.m文件

functionU=f61(x)

e1=eye(length(x),1);

U=x-sign(x

(1))*sqrt(dot(x,x))*e1;

U=U./sqrt(dot(U,U));

functionHA=f62(U,A)

HA=A-2*U*U'*A;

 

6.2结果

-2.264911064

5

4.735840869

7.695867546

2.264911064

4.44E-16

-0.321627306

-1.963816738

0.176607376

4.44E-16

1.561054583

0.677680956

-0.985670284

4.44E-16

-4.157227246

4.536088303

2.176607376

4.44E-16

5.842772754

0.036088303

第7题

7.1程序

clearall;

max=1000;

x(1,:

)=[123];

fori=1:

max

x(i+1,1)=(-2+x(i,2)+3*x(i,3))/5;

x(i+1,2)=(1+x(i,1)-4*x(i,3))/2;

x(i+1,3)=(10+3*x(i,1)-4*x(i,2))/15;

err(i)=sqrt(dot(x(i+1,:

)-x(i,:

),x(i+1,:

)-x(i,:

)));

if(err(i)<10^-6)

break;

end

end

figure(7);

plot(err);

clearerr;

x(1,:

)=[123];

fori=1:

max

x(i+1,1)=(-2+x(i,2)+3*x(i,3))/5;

x(i+1,2)=(1+x(i+1,1)-4*x(i,3))/2;

x(i+1,3)=(10+3*x(i+1,1)-4*x(i+1,2))/15;

err(i)=sqrt(dot(x(i+1,:

)-x(i,:

),x(i+1,:

)-x(i,:

)));

if(err(i)<10^-6)

break;

end

end

holdon

plot(err,'r');

7.2结果

误差越来越小。

 

第8题

8.1程序

clearall;

max=100;

x

(1)=1;

fori=1:

max

x(i+1)=x(i)-(x(i)^3+2*x(i)^2+10*x(i)-100)/(3*x(i)^2+4*x(i)+10);

if(abs(x(i+1)-x(i))<10^-6)

break;

end

end

figure(8)

plot(x);

clearx;

x

(1)=0;

x

(2)=1;

fori=2:

max

x(i+1)=x(i)-(x(i)^3+2*x(i)^2+10*x(i)-100)/(x(i)^3+2*x(i)^2+10*x(i)-(x(i-1)^3+2*x(i-1)^2+10*x(i-1)))*(x(i)-x(i-1));

if(abs(x(i+1)-x(i))<10^-6)

break;

end

end

holdon

plot(x,'r');

8.2结果

8.3分析

由计算结果可知,弦截法的收敛速度比牛顿法的收敛速度快。

第9题

9.1程序

clearall;

f(0,4*pi);

f.m文件

function[]=f(l,r)

if(r-l<10^-6)

fprintf('%g,',(r-l)/2+l);

return

end

iff9(l)*f9(r)<0

iff9((l+r)/2+l)*f9(l)<0

f(l,(l+r)/2+l);

end

iff9((l+r)/2+l)*f9(r)<0

f((l+r)/2+l,r);

end

end

iff9(l)*f9(r)>0

f(l,(l+r)/2+l);

f((l+r)/2+l,r);

end

9.2结果

X=4.71239、8.24668、17.6715、14.1372

第10题

10.1程序

clearall;

n=3;%节点个数

Xj=0:

1/n:

1;

y=sin(pi*Xj);

fori=1:

n+1

f(i,1)=y(i);

end

forj=2:

n+1

fori=1:

n-j+2;

dx=((j-1)/n);

f(i,j)=(f(i+1,j-1)-f(i,j-1))/dx;

end

end

fori=1:

n+1

a(i)=f(1,i);

end

x=0:

0.001:

1;

fori=1:

1/0.001+1;

y1(i)=sin(pi*x(i));

y2(i)=f10(a,Xj,x(i));

end

figure(10);

plot(x,y1,'r');

holdon;

plot(x,y2,'');

10.2结果

10.3分析

有图像可知插值函数的值已经很接近原函数的值了。

第11题

11.1程序

clearall;

n=input('请输入n:

')%n代表节点

Xj=-5:

1/n:

5;

Yj=1./(1.+Xj.^2);

x=-5:

0.01:

5;

fori=1:

10/0.01+1;

y1(i)=1/(1+x(i)^2);

y2(i)=f(Yj,Xj,x(i));

end

figure(11);

plot(x,y1,'r');

holdon;

plot(x,y2,,'');

f.m文件

functiony=f(Yj,Xj,x)

y=0;

fori=1:

length(Yj)

l=1;

forj=1:

length(Xj)

ifi==j

continue;

end

l=l*(x-Xj(j))/(Xj(i)-Xj(j));

end

y=y+Yj(i)*l;

end

11.2结果

从左往右n依次取1、2、3、4

11.3分析

随着n的不断增加,插值越来越接近真实值。

第12题

12.1程序

clearall;

n=input('请输入n:

')%n=501002005001000

x=0:

2*pi/n:

2*pi;

fori=1:

n+1

X=x(i);

Y(i)=exp(3*X)*cos(pi*X);

end

Y

(1)=1;

fori=1:

n

X=(x(i)+x(i+1))/2;

Y2(i)=exp(3*X)*cos(pi*X);

end

T=(x(n+1)-x

(1))/(2*n)*(Y

(1)+2*sum(Y(2:

n))+Y(n+1));

S=(x(n+1)-x

(1))/(6*n)*(Y

(1)+4*sum(Y2)+2*sum(Y(2:

n))+Y(n+1));

13.2结果

n

50

100

200

500

1000

T

3.512534119493697e+07

3.520489119998542e+07

3.522553497836321e+07

3.523136936592422e+07

3.523220478232005e+07

S

3.523140786833490e+07

3.523241623782247e+07

3.523247916807637e+07

3.523248325445201e+07

3.523248335509114e+07

第13题

13.1程序

clearall;

G2=f(1/sqrt(3))+f(-1/sqrt(3));

G3=0.555555556*f(-0.7745966692)+0.555555556*f(+0.7745966692)+0.88888888889*f(0);

G5=0.2369268851*f(-0.9061798459)+0.2369268851*f(+0.9061798459)+...0.4786286705*f(-0.5384693101)+0.4786286705*f(+0.5384693101)+...0.5688888889*f(0);

f.m文件1

functiony=f(x)

y=x^2/sqrt(1-x^2);

f.m文件2

functiony=f(x)

x=pi/2*(x+1)/2;

y=sin(x)/x;

13.2结果

(1)y=x^2/sqrt(1-x^2)

(2)y=sin(x)/x

G2

0.816496*********

G2

1.74487172393660

G3

1.05409255403515

G3

1.74531021550858

G5

1.05409255403515

G5

1.74530859901330

 

第14题

14.1程序

clearall;

U0=2;%初值

step=0.2;%step表示步长

U1

(1)=U0;

Len=1;

fori=1:

floor(Len/step)

U1(i+1)=U1(i)+step*f14(U1(i),(i-1)*step);

end

%改进的Euler法

U2

(1)=U0;

fori=1:

floor(Len/step)

U2(i+1)=U2(i)+step/2*(f14(U2(i),(i-1)*step)+f14(U1(i+1),(i+1-1)*step));

end

%Runge_KUtta

U3

(1)=U0;

fori=1:

floor(Len/step)

t=(i-1)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 信息与通信

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1