子程序rg(nm,n,a,wr,wi,matz,z,iv1,fv1,ierr)c(c)整数n,nm,is1,is2,ierr,matz双精度a(nm,n),wr(n),wi(n整数iv1(n)c(c)c此子例程调用本征系统子程序包(eispack)中的c子程序c求特征值和特征向量(如果需要)实广义矩阵的c。c(c)输入上的cc(c)c nm必须设置为二维的行维度调用程序中声明的c数组参数c维语句。c(c)cn是矩阵a的阶数。c(c)c a包含实的一般矩阵。c(c)c matz是一个整数变量集,如果c只需要特征值。否则设置为c特征值和特征向量的任何非零整数。c(c)输出上的cc(c)c wr和wi包含实部和虚部,c分别表示特征值。复共轭c对特征值与c首先具有正虚部的特征值。c(c)cz包含特征向量的实部和虚部如果matz不为零。如果j-th特征值是实的,则z的cj列包含其特征向量。如果j-thc特征值与正虚部是复数z的cj-th和(j+1)-th列包含实数和c其特征向量的虚部。这个的共轭c向量是共轭特征值的特征向量。c(c)c ierr是一个等于错误的整数输出变量集hqr文档中描述的c完成代码c和hqr2。正常的完成代码为零。c(c)c iv1和fv1是临时存储阵列。c(c)c问题和意见应提交给伯顿·s·加博,c阿贡国家实验室数学与计算机科学部c(c)c本版本日期为1983年8月。c(c)c(c)------------------------------------------------------------------c(c)如果(n.le.nm)转到10ierr=10*n转到50c(c)10呼叫平衡(nm,n,a,is1,is2,fv1)呼叫elmhes(nm,n,is1,is2,a,iv1)如果(matz.ne.0)转到20c。。。。。。。。。。仅查找特征值。。。。。。。。。。调用hqr(nm,n,is1,is2,a,wr,wi,ierr)转到50c。。。。。。。。。。求特征值和特征向量。。。。。。。。。。20调用eltran(nm,n,is1,is2,a,iv1,z)调用hqr2(nm,n,is1,is2,a,wr,wi,z,ierr)如果(ierr.ne.0)转到50调用balbak(nm,n,is1,is2,fv1,n,z)50返回结束