特征多项式法Word格式文档下载.docx

上传人:b****5 文档编号:20494498 上传时间:2023-01-23 格式:DOCX 页数:12 大小:484.11KB
下载 相关 举报
特征多项式法Word格式文档下载.docx_第1页
第1页 / 共12页
特征多项式法Word格式文档下载.docx_第2页
第2页 / 共12页
特征多项式法Word格式文档下载.docx_第3页
第3页 / 共12页
特征多项式法Word格式文档下载.docx_第4页
第4页 / 共12页
特征多项式法Word格式文档下载.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

特征多项式法Word格式文档下载.docx

《特征多项式法Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《特征多项式法Word格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。

特征多项式法Word格式文档下载.docx

%已知矩阵:

A

%求得的矩阵特征值:

l

symst;

N=size(A);

n=N(1,1);

y=det(A-t*eye(n,n));

l=solve(y);

l=vpa(l,5);

%结果取五位精度

例题:

采用特征多项式法,求矩阵A的特征值

A=

解:

在MATLAB窗口输入:

>

A=[1158;

-5610;

-234]

l=Chapoly(A)

输出计算结果为:

流程图为:

2、幂法

在MATLAB中编程实现的幂法的函数为:

pmethod。

幂法求矩阵的主特征值及主特征向量。

[l,v,s]=pmethod(A,x0,eps)

x0为迭代初始向量;

eps为迭代的精度;

l为求得的矩阵主特征值;

v为求得的矩阵主特征向量;

s为迭代步数。

function[l,v,s]=pmethod(A,x0,eps)

%幂法求矩阵的主特征值及主特征向量

%迭代初始向量:

x0

%迭代的精度:

eps

%求得的矩阵主特征向量:

v

%迭代步数:

s

Ifnargin==2

eps=1.0e-6;

end

v=x0;

%v为主特征向量

M=5000;

%迭代步数限制

m=0;

l=0;

for(k=1:

M)

y=A*v;

m=max(y);

%m为按模最大的分量

v=y/m;

if(abs(m-1)<

eps)

l=m;

%到所需精度,退出,l为主特征值

s=k;

%s为迭代步数

return;

else

if(k==m)

disp(‘迭代步数太多,收敛速度太慢!

’);

s=m;

l=m;

end

幂法求取特征值实例:

采用幂法求矩阵A的主特征值和主特征向量。

A=[152;

6-17;

131];

x0=[111]’;

[l,v,s]=pmethod(A,x0)

第2题

1.因为体积一栏的数据是以粒度为变量的概率密度函数,所以先画出以粒度为自变量,体积为因变量的条形图,从图可以看出,它们之间可能服从指数分布形式,因此给出指数分布的函数形式F(X)=1-exp(-x/a),因为是指数形式,所以用非线性拟合得到a的值为8.1451,并画出拟合图形,跟用原始数据画出的图形类似,并求出了置信度为95%的图形区间。

M文件如下:

x=[00.10.20.51.01.52.02.53.04.05.06.08.010.015.0];

y=[0

0.0114517

0.0249242

0.0710677

0.1316940

0.1754800

0.1923210

0.2297070

0.2317280

0.3583700

0.3853150

0.3950830

0.6645340

0.8342880

1.0000000

];

y=y'

;

bar(x,y);

%大致判断服从什么分布

beta0=0.1;

[betarj]=nlinfit(x,y,@funex,beta0);

Beta

ci=nlparci(beta,r,j)

nlintool(x,y,@funex,beta0,0.05,'

粒度x,体积y'

其中funex为构建的可能的函数形式

运行结果如下:

beta=

8.1451

流程图如下:

2直接用复化梯形公式计算积分,对h分别取0.1和0.2和0.4

对于不同的h值我们用switch开关语句来运行。

M文件入下:

x=[0.00.10.20.30.40.50.60.70.8];

y=[02.12203.02443.25683.13992.85792.51402.16391.8358];

h=input('

请输入h的值,h为0.1或0.2或0.4'

);

switchh

case0.4

s=h/2*(y

(1)+2*y(5)+y(9));

case0.2

s=h/2*(y

(1)+2*(y(3)+y(5)+y(7))+y(9));

case0.1

s=h/2*(y

(1)+2*(y

(2)+y(3)+y(4)+y(5)+y(6)+y(7)+y(8))+y(9));

otherwise

disp('

输入的h有误'

a.h=0.1的时候s=1.9997

b.h=0.2的时候s=1.9192

c.h=0.4的时候s=1.6231

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

当前位置:首页 > 求职职场 > 笔试

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

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