- 1、本文档共22页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数学建模作业及答案
数学建模作业
姓名:叶勃
学号:
班级:024121
一:层次分析法
分别用和法、根法、特征根法编程求判断矩阵
的特征根和特征向量
冪法求该矩阵的特征根和特征向量
?程序为:?
#includeiostream?
#includemath.h
?using?namespace?std;?
#define?n?3??????????????????????????//三阶矩阵?
#define?N?20?#define?err?0.0001?//幂法求特征值特征向量
?void?main(){?
???cout**********幂法求矩阵最大特征值及特征向量***********endl;???
?int?i,j,k;?
???double?A[n][n],X[n],u,y[n],max;??
???
cout请输入矩阵:\n;????
for(i=0;in;i++)??????
?for(j=0;jn;j++)?
?????????cinA[i][j];?//输入矩阵?????????
?cout请输入初始向量:\n;????
????for(i=0;in;i++)?
??????????cinX[i];???????????????//输入初始向量?????????
?? k=1;???????
??? ? u=0;
while(1){????????max=X[0];????????for(i=0;in;i++)??
???{?
????????if(maxX[i])?max=X[i];??????????//选择最大值??
???}?
???????for(i=0;in;i++)?
????????y[i]=X[i]/max;??????????????????????????for(i=0;in;i++)??
?
{?
?????????X[i]=0;?
?????????for(j=0;jn;j++)?
?????????X[i]+=A[i][j]*y[j];?????????????????????//矩阵相乘??
?
}?
???????if(fabs(max-u)err)??
???{?
?????????coutA的特征值是?:endl;??????????coutmaxendl;?
?????????coutA的特征向量为:endl;???????for(i=0;in;i++)??
?????????coutX[i]/(X[0]+X[1]+X[2])??;??
?????coutendl;??????????????????????????????
??????break;??
???}?
??????else???
??{?
??????if(kN)?{k=k+1;u=max;}???????else?{??
?
??cout运行错误\n;?
break;?
???}????????????
??}?
??}?}?
程序结果为:
和法求矩阵最大特征值及特征向量?
程序为:?
#includestdio.h?
#includeiostream?
#includemath.h?using?namespace?std;?
#define?n?3??????????????????????????//三阶矩阵
?#define?N?20?
void?main(){?
??int?i,j,k;?
?? double?A[n][n],w[n],M[n],u[n],W[n][n],max;?
cout********和法求矩阵的特征根及特征向量*******endl;???
cout请输入矩阵:\n;??
?for(i=0;in;i++)?????
for(j=0;jn;j++)?
??????cinA[i][j];?//输入矩阵?//计算每一列的元素和???
M[0]=0;M[1]=0;M[2]=0;???
for(i=0;in;i++)?????
for(j=0;jn;j++)??
{??
?????M[i]+=A[j][i];??
}?
//将每一列向量归一化?
?for(i=0;in;i++)??
??for(j=0;jn;j++)???
?{??
?? W[j][i]=A[j][i]/M[i];?
?? ?}?
//输出按列归一化之后的矩阵W?
???cout按列归一化后的矩阵为:endl;??
for(i=0;in;i+
文档评论(0)