矩阵和数值分析实验作业Word格式文档下载.docx

上传人:b****5 文档编号:15844373 上传时间:2022-11-16 格式:DOCX 页数:36 大小:322.98KB
下载 相关 举报
矩阵和数值分析实验作业Word格式文档下载.docx_第1页
第1页 / 共36页
矩阵和数值分析实验作业Word格式文档下载.docx_第2页
第2页 / 共36页
矩阵和数值分析实验作业Word格式文档下载.docx_第3页
第3页 / 共36页
矩阵和数值分析实验作业Word格式文档下载.docx_第4页
第4页 / 共36页
矩阵和数值分析实验作业Word格式文档下载.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

矩阵和数值分析实验作业Word格式文档下载.docx

《矩阵和数值分析实验作业Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《矩阵和数值分析实验作业Word格式文档下载.docx(36页珍藏版)》请在冰豆网上搜索。

矩阵和数值分析实验作业Word格式文档下载.docx

end

disp('

结果是:

'

S

有效数字的位数是:

i-1

b.运行结果:

2.从大到小

a.程序代码:

leijia2.m

pleaseinputN:

s=s+1/[(N-j+2)^2-1];

end%判断有效数字位数

b.运行结果:

二.解线性方程组

1.原题:

分别Jacobi迭代法和Gauss-Seidel迭代法求解线性方程组

迭代法计算停止条件为:

1>

.Jacobi迭代法:

Jacobi.m

A=input('

请输入矩阵A='

b=input('

请输入列向量b='

X=input('

请输入初始值X='

S=input('

请输入终止条件S='

max1=100;

%最大循环次数

B=diag(A);

G=diag(B);

%求对角阵

D=inv(G);

%求对角阵的逆矩阵

P=G-A;

fork=1:

max1

Y=D*P*X+D*b;

Z=abs(Y-X);

[t]=max(Z);

X=Y;

Ift<

S%终止条件

end

end%计算方程的解

X

2>

.G-S迭代法:

GS.m

C=diag(A);

P=diag(C);

%求A的对角阵

U=-triu(A)+P;

%求A的下三角阵

G=A+U;

fork=1:

Y=D*U*X+D*b;

if(t<

S)%终止条件

2.原题:

用Gauss列主元消去法、QR方法求解如下方程组:

.Gauss列主元消去法:

GAUSS.m

请输入系数矩阵A='

G=[A,b];

B=[];

%定义一个空矩阵

t=size(b);

%求系数矩阵的维数

k=t(1,1);

fori=1:

k

C=0;

fore=i:

C(e)=abs(G(e,i));

end

l=max(C);

%挑选最大值

l2=find(C==l);

l1=l2(1,1);

T=G(l1,:

G(l1,:

)=G(i,:

G(i,:

)=T;

%选主元,交换最大值所在的行

disp('

主元调整后的矩阵:

G

forj=i+1:

P=-G(j,i)/G(i,i);

B(j,:

)=P*G(i,:

)+G(j,:

G(j,:

)=B(j,:

end%进行消元

消元后的矩阵:

b=G(:

k+1);

G(:

k+1)=[];

X=[];

form=1:

X(k-m+1)=b(k-m+1)/G(k-m+1,k-m+1);

b=b-X(k-m+1)*G(:

k-m+1);

end%求方程组的解

方程组的解:

X

.QR法:

QR.m

m=size(A);

k=m(1,1);

%计算A的维数

B=A;

M=eye(size(A));

%定义一个与A同维数的单位矩阵

Q=M;

forr=1:

k-1;

I=eye(size(B));

e=I(:

1);

a=B(:

%取出B的第一列

d=norm(a);

w=a-d*e;

c=rot90(w);

H=I-2*w*c/(c*w);

%求变换矩阵

P=H*B;

B=P;

B(1,:

)=[];

B(:

1)=[];

fori=1:

k-r+1

forj=1:

M(r+i-1,r+j-1)=H(i,j);

end%将变换矩阵H变成k维

Z=M;

M=eye(size(A));

Q=Z*Q;

Q

R=Q*A;

R

b=Q*b;

foru=1:

X(k-u+1)=b(k-u+1)/R(k-u+1,k-u+1);

b=b-X(k-u+1)*R(:

k-u+1);

end%计算方程组的解

三.非线性方程的迭代解法

1.原题:

用Newton迭代法求解方程

的根,计算停止的条件为:

newton.m

symsx;

f=input('

请以x为变量输入函数f='

s=input('

请输入终止条件s='

%最大循环次数

p=diff(f);

%求f的导函数

y=X-subs(f,X)/subs(p,X);

%迭代公式

m=abs(y-X);

X=y;

if(m<

s)%终止条件

方程的根:

a.运行结果:

2.原题:

利用Newton迭代法求多项式

的所有实零点,注意重根的问题。

new.m

functionX=newton1(X,s)

f=x^4-5.4*x^3+10.56*x^2-8.954*x+2.7951;

max1=20;

s)

end%定义一个newton迭代法求线性方程组的的函数

请以x为变量输入多项式f='

c=input('

请输入多项式的次数c='

a=input('

请输入根所在的估计的最大区间的左端点a='

请输入根所在的估计的最大区间的右端点b='

n=input('

请输入将[a,b]区间分成的个数n='

请输入newton搜索时的终止条件s='

A=a:

(b-a)/n:

b;

%将区间n等分

n等分后的区间为:

A

n

Y(i)=subs(f,A(i));

Y(i+1)=subs(f,A(i+1));

ifY(i)*Y(i+1)<

M(i)=newton1(A(i),s);

elseifabs(Y(i))==0

M(i)=A(i);

%求多项式的根

B=find(M~=0);

k1=size(B);

k=k1(1,2);

forkk=1:

X(kk)=M(B(kk));

%将根以矩阵形式表示

多项式的根为:

p=0;

c1=c-k;

forj=1:

q=f;

fore=1:

c1+1

q=diff(q,x);

y=subs(q,X(j));

ifabs(y)>

=100*s

end%判断根的重数

ife>

1

根的重数:

X(j)

的重数:

disp(e);

p=p+e-1;

%对根重数大于1的重数进行累加

ifp==k-c

break%判断重数是否已达到总重数

四.数值积分

分别用复化梯形公式和Romberg公式计算积分

要求误差不超过10-5,并给出节点个数。

.复化梯形公式:

fuhuatixing.m

formatlong;

请以x为自变量输入函数f='

请输入积分区域左端点a='

请输入积分区域右端点b='

n=100;

X=a:

t1=0;

fa=subs(f,a);

fb=subs(f,b);

fori=2:

t1=t1+subs(f,X(i));

T(i)=(b-a)*(fa+fb+2*t1)/(2*n);

%用复化梯形公式计算积分结果

if(T(i)-T(i-1))<

=s

积分结果:

T(i)

.Romberg公式:

romberg.m

T(1,1)=1/2*(subs(f,a)+subs(f,b));

q1=0;

(2^(i-2))

q1=q1+subs(f,(a+(2*(e-1)+1)*(b-a)/2^(i-1)));

q=(b-a)*q1/2^(i-1);

T(i,1)=1/2*T(i-1,1)+q;

%计算复化梯形得出的值

forj=2:

i

T(i,j)=(4^(j-1)*T(i,j-1)-T(i-1,j-1))/(4^(j-1)-1);

%计算n大于2时复化newton-cotes的值

ifabs(T(i,i)-T(i-1,i-1))<

s%判断条件

T数表:

T

T(i,i)

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

当前位置:首页 > 职业教育 > 职高对口

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

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