资源简介
采用C语言编写,运用数值迭代方法求矩阵的特征值和特征向量,包括高斯迭代法和杜利特尔迭代法,精度10^-12
代码片段和文件信息
// Homework_1.cpp : 定义控制台应用程序的入口点。
//
#include “stdafx.h“
#include
#include
using namespace std;
bool matrixVectorMultiply(double *adouble *xdouble *yint N);
double vectorInnerProduct(double *xdouble *yint N);
bool powerIterationMethod(double *adouble *udouble *lambdaint Nint *time);
bool inversePowerIterationMethod(double *adouble *udouble *lambdaint Nint *time);
bool theGaussSeidelIterationMethod(double *adouble *xdouble *yint N);
bool directDoolittleMethod(double *aodouble *udouble *yoint N);
bool detMatrix(double *aodouble *detint N);
bool directDoolittleSolveMethod(double *adouble *budouble *bldouble *cudouble *cldouble *udouble *yoint N);
bool directDoolittleSplitMethod(double *adouble *budouble *bldouble *cudouble *clint N);
int _tmain(int argc _TCHAR* argv[])
{
double a[501]am[501]u[501]lambda[3]lambdamaxlambdamindet;
double b=0.16;
double c=-0.064;
int times=0;
for(int i=0;i<501;i++)
{
a[i]=1.64-0.024*(i+1);
a[i]*=sin(0.2*(i+1));
a[i]-=0.64*exp(0.1/(i+1));
u[i]=1;
}
powerIterationMethod(au&lambda[0]501×);
for(int i=0;i<501;i++) u[i]=1;
inversePowerIterationMethod(au&lambda[2]501×);
for(int i=0;i<501;i++)
am[i]=a[i]+lambda[0];
for(int i=0;i<501;i++) u[i]=1;
inversePowerIterationMethod(amu&lambda[1]501×);
lambdamin=min(lambda[1]-lambda[0]lambda[0]);
lambdamax=max(lambda[1]-lambda[0]lambda[0]);
cout.setf(ios::scientific); //科学记数法
cout.precision(12); //精度为12,正常为6
cout<<“λ1=“< cout<<“λ501=“< cout<<“λs=“< for(int k=1;k<40;k++)
{
double mu;
mu=lambdamin+k*(lambdamax-lambdamin)/40;
for(int i=0;i<501;i++)
am[i]=a[i]-mu;
for(int i=0;i<501;i++) u[i]=1;
inversePowerIterationMethod(amu&lambda[0]501×);
cout<<“k=“< }
cout<<“cond(A)=“< detMatrix(a&det501);
cout<<“det(A)=“< /*
cout<<“lambda 1 or lambda 501 = “< cout<<“times = “< lambdamin=min(lambda[1]-lambda[0]lambda[0]);
lambdamax=max(lambda[1]-lambda[0]lambda[0]);
cout<<“lambda 1 = “< cout<<“lambda 501 = “< cout<<“lambda s = “<
for(int k=0;k<40;k++)
{
int mu;
mu=lambdamin+k*(lambdamax-lambdamin)/40;
for(int i=0;i<501;i++)
am[i]=a[i]-mu;
inversePowerIterationMethod(amu&lambda[0]501×);
cout<<“k=“< }
cout<<“cond(A)=“< //printf(“k=%d =>>>λi%d=%.13e\n“kkvalue_s);
//printf(“λs=%.13e\n“value_s);
double det;
detMatrix(a&det501);
cout<<“det(A)=“< det=1;
for(int i=0;i<501;i++)
det*=a[i];
cout<<“det(A)=“< */
return 0;
}
bool detMatrix(double *aodouble *detint N)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 53248 2014-10-31 18:35 Homework_1_1\debug\Homework_1.exe
文件 655964 2014-10-31 18:35 Homework_1_1\debug\Homework_1.ilk
文件 601088 2014-10-31 18:35 Homework_1_1\debug\Homework_1.pdb
文件 6394 2014-10-31 18:35 Homework_1_1\Homework_1\Debug\BuildLog.htm
文件 403 2014-10-27 10:45 Homework_1_1\Homework_1\Debug\Homework_1.exe.em
文件 468 2014-10-27 10:45 Homework_1_1\Homework_1\Debug\Homework_1.exe.em
文件 385 2014-10-31 18:35 Homework_1_1\Homework_1\Debug\Homework_1.exe.intermediate.manifest
文件 69613 2014-10-31 18:35 Homework_1_1\Homework_1\Debug\Homework_1.obj
文件 1048576 2014-10-27 10:45 Homework_1_1\Homework_1\Debug\Homework_1.pch
文件 67 2014-10-31 18:35 Homework_1_1\Homework_1\Debug\mt.dep
文件 10785 2014-10-27 10:45 Homework_1_1\Homework_1\Debug\stdafx.obj
文件 232448 2014-10-31 18:35 Homework_1_1\Homework_1\Debug\vc80.idb
文件 241664 2014-10-31 18:35 Homework_1_1\Homework_1\Debug\vc80.pdb
文件 19598 2014-10-31 18:35 Homework_1_1\Homework_1\Homework_1.cpp
文件 4560 2015-05-18 20:18 Homework_1_1\Homework_1\Homework_1.vcproj
文件 4496 2014-10-27 10:24 Homework_1_1\Homework_1\Homework_1.vcproj.8.00.old
文件 1427 2015-05-18 20:28 Homework_1_1\Homework_1\Homework_1.vcproj.woshidiannao-PC.woshidiannao.user
文件 1427 2014-10-31 18:55 Homework_1_1\Homework_1\Homework_1.vcproj.WWW-A86CE6CB1B0.Administrator.user
文件 968 2014-10-27 10:24 Homework_1_1\Homework_1\ReadMe.txt
文件 215 2014-10-27 10:24 Homework_1_1\Homework_1\stdafx.cpp
文件 276 2014-10-27 10:24 Homework_1_1\Homework_1\stdafx.h
文件 1289216 2015-05-18 20:28 Homework_1_1\Homework_1.ncb
文件 896 2015-05-18 20:18 Homework_1_1\Homework_1.sln
文件 895 2014-10-27 10:24 Homework_1_1\Homework_1.sln.old
..A..H. 17408 2015-05-18 20:28 Homework_1_1\Homework_1.suo
..A..H. 16384 2014-10-31 18:55 Homework_1_1\Homework_1.suo.old
..A..H. 16384 2014-10-31 18:55 Homework_1_1\Homework_1.v11.suo
文件 2349 2015-05-18 20:18 Homework_1_1\UpgradeLog.xm
文件 3348 2015-05-18 20:18 Homework_1_1\_UpgradeReport_Files\UpgradeReport.css
文件 12579 2007-06-27 17:04 Homework_1_1\_UpgradeReport_Files\UpgradeReport.xslt
............此处省略10个文件信息
相关资源
- 数值分析算法程序设计 C++实现
- 数值分析(Numerical Recipes)3rd Edition原
- Newton插值法求解一元高次方程的根
- 《数值分析》(Numerical Recipes)3rd E
- 算法经典VC++数值分析
- 数值分析中的插值法包括拉格朗日n次
- 数值分析 牛顿插值法c++代码
- 数值分析迭代法解非线性方程组c语言
- 北航数值分析大作业一
- Jacobi迭代法和Gauss-Seidel迭代法求解线
- 矩阵的三角分解c程序
- C语言 Newton迭代法解非线性方程组
- 数值分析实验之改进的欧拉公式程序
- 数值分析三次样条两种边界matlab代码
- 数值分析牛顿迭代、三次样条等五个
- 最小二乘法数值分析作业
- 数值分析c语言追赶法解方程
评论
共有 条评论