A. 基于C++的 qr分解算法
C语言的,之前有写过,还保留着,不知道对楼主胃口不?
B. matlab QR分解用什么算法实现的
QR分解法是目前求一般矩阵全部特征值的最有效并广泛应用的方法,一般矩阵先经过正交相似变化成为Hessenberg矩阵,然后再应用QR方法求特征值和特征向量。它是将矩阵分解成一个正规正交矩阵Q与上三角形矩阵R,所以称为QR分解法,与此正规正交矩阵的通用符号Q有关。
C. 对于实对称矩阵,用QR算法编写其程序,并用所编写的程序求矩阵的全部特征根
求实对称三对角对称矩阵的全部特征值及特征向量
//利用变型QR方法计算实对称三对角矩阵全部特征值及特征向量
//n-矩阵的阶数
//b-长度为n的数组,返回时存放三对角阵的主对角线元素
//c-长度为n的数组,返回时前n-1个元素存放次对角线元素
//q-长度为n*n的数组,若存放单位矩阵,则返回实对称三对角矩阵的特征向量组
// 若存放Householder变换矩阵,则返回实对称矩阵A的特征向量组
//a-长度为n*n的数组,存放n阶实对称矩阵
int ebstq(int n,double b[],double c[],double q[],double eps,int l)
{
int i,j,k,m,it,u,v;
double d,f,h,g,p,r,e,s;
c[n-1]=0.0;
d=0.0;
f=0.0;
for (j=0; j<=n-1; j++)
{
it=0;
h=eps*(fabs(b[j])+fabs(c[j]));
if (h>d)
{
d=h;
}
m=j;
while ((m<=n-1)&&(fabs(c[m])>d))
{
m=m+1;
}
if (m!=j)
{
do
{
if (it==l)
{
printf("fail\n");
return(-1);
}
it=it+1;
g=b[j];
p=(b[j+1]-g)/(2.0*c[j]);
r=sqrt(p*p+1.0);
if (p>=0.0)
{
b[j]=c[j]/(p+r);
}
else
{
b[j]=c[j]/(p-r);
}
h=g-b[j];
for (i=j+1; i<=n-1; i++)
{
b[i]=b[i]-h;
}
f=f+h;
p=b[m];
e=1.0;
s=0.0;
for (i=m-1; i>=j; i--)
{
g=e*c[i];
h=e*p;
if (fabs(p)>=fabs(c[i]))
{
e=c[i]/p;
r=sqrt(e*e+1.0);
c[i+1]=s*p*r;
s=e/r;
e=1.0/r;
}
else
{
e=p/c[i];
r=sqrt(e*e+1.0);
c[i+1]=s*c[i]*r;
s=1.0/r;
e=e/r;
}
p=e*b[i]-s*g;
b[i+1]=h+s*(e*g+s*b[i]);
for (k=0; k<=n-1; k++)
{
u=k*n+i+1;
v=u-1;
h=q[u];
q[u]=s*q[v]+e*h;
q[v]=e*q[v]-s*h;
}
}
c[j]=s*p;
b[j]=e*p;
}
while (fabs(c[j])>d);
}
b[j]=b[j]+f;
}
for (i=0; i<=n-1; i++)
{
k=i; p=b[i];
if (i+1<=n-1)
{
j=i+1;
while ((j<=n-1)&&(b[j]<=p))
{
k=j;
p=b[j];
j=j+1;
}
}
if (k!=i)
{
b[k]=b[i];
b[i]=p;
for (j=0; j<=n-1; j++)
{
u=j*n+i;
v=j*n+k;
p=q[u];
q[u]=q[v];
q[v]=p;
}
}
}
return(1);
}
http://..com/question/42993521.html?si=2
D. Qr指什么Qr又是怎么算出来的
熵变
1. 熵:体系混乱度(或无序度)的量度。S 表示熵
2. 热力学第三定律:对于纯物质的晶体,在热力学零度时,熵为零。
3. 标准熵:1 mol物质在标准状态下所计算出的 标准熵值,用ST q表示,单位: J�6�1mol-1 �6�1K-1
4. 熵的规律:
(1) 同一物质,气态熵大于液态熵,液态熵大于固态熵; ST q(g) > ST q(l) > ST q(s)
S q H2O (g) > H2O (l) > H2O (s)
(2) 相同原子组成的分子中,分子中原子数目越多,熵值越大;
S q O2 (g) < S q O3 (g)
S q NO (g) < S q NO2 (g) < S q N2O4 (g)
S q CH2=CH2 (g) < S q CH3-CH3 (g)
(3) 相同元素的原子组成的分子中,分子量越大,熵值越大;
S q CH3Cl(g) < S q CH2Cl2 (g) < S q CHCl3(g)
(4) 同一类物质,摩尔质量越大,结构越复杂,熵值越大;
S qCuSO4(s) < S qCuSO4�6�1H2O(s) < SqCuSO4�6�13H2O(s) < SqCuSO4�6�15H2O (s)
S qF2(g) < S qCl2(g) < S qBr2(g) < SqI2 (g)
(5) 固体或液体溶于水时,熵值增大,气体溶于水时,熵值减少;
5. 反应熵变的计算公式
一般地,对于反应:m A + n B =x C + y D
DrSmq = åSq,(生成物) - åSq,(反应物)
= [x Sq,C + y Sq,D] – [m Sq,A + n Sq,B]
6.热力学第二定律:
孤立体系(绝热体系)的自发过程是体系熵增加的过程,即:
状态I ® 状态II, SII > SI DS = SII - SI > 0
DS > 0,过程自发进行;
DS < 0,逆过程自发进行;
DS = 0,平衡状态
E. Qr指什么Qr又是怎么算出来的熵变不用这个怎么算
熵变 1.熵:体系混乱度(或无序度)的量度.S 表示熵 2.热力学第三定律:对于纯物质的晶体,在热力学零度时,熵为零.3.标准熵:1 mol物质在标准状态下所计算出的 标准熵值,用ST q表示,单位:mol-1 K-1 4.熵的规律:(1) 同一物质,气态熵大于液态熵,液态熵大于固态熵; ST q(g) > ST q(l) > ST q(s) S q H2O (g) > H2O (l) > H2O (s) (2) 相同原子组成的分子中,分子中原子数目越多,熵值越大; S q O2 (g) < S q O3 (g) S q NO (g) < S q NO2 (g) < S q N2O4 (g) S q CH2=CH2 (g) < S q CH3-CH3 (g) (3) 相同元素的原子组成的分子中,分子量越大,熵值越大; S q CH3Cl(g) < S q CH2Cl2 (g) < S q CHCl3(g) (4) 同一类物质,摩尔质量越大,结构越复杂,熵值越大; S qCuSO4(s) < S qCuSO4?H2O(s) < SqCuSO4?3H2O(s) < SqCuSO4?5H2O (s) S qF2(g) < S qCl2(g) < S qBr2(g) < SqI2 (g) (5) 固体或液体溶于水时,熵值增大,气体溶于水时,熵值减少; 5.反应熵变的计算公式 一般地,对于反应:m A + n B =x C + y D DrSmq = åSq,(生成物) - åSq,(反应物) = [x Sq,C + y Sq,D] – [m Sq,A + n Sq,B] 6.热力学第二定律:孤立体系(绝热体系)的自发过程是体系熵增加的过程,即:状态I ® 状态II,SII > SI DS = SII - SI > 0 DS > 0,过程自发进行; DS < 0,逆过程自发进行; DS = 0,平衡状态
F. 利用QR 方法求矩阵的特征和特征向量
1.[S,H]=hess(A)
H为Hessenberg 矩阵。S为变换矩阵
2.[Q,R]=qr(A)
[v,d]=eig(A)
G. 求二维码QR的生成算法,它是如何编码的不要程序,告诉我计算方法就行了
二维码里面的纠错编码与纠错译码有两种:BCH和reedsolomon,纠错是一个专门的学科。
它的基本原理是一利用一元高次方程的根与系数的关系。我们会解一元一次方程、一元二次方程、和特殊的一元三次方程,再高了我们就解不了了。
在这方面有一个人值得一提,就是伽罗华,他找到了一个解一元高次方次的方程的方法。即每个方程对应于一个域,即含有方程全部根的域,称为这方程的伽罗华域,这个域对应一个群,即这个方程根的置换群,称为这方程的伽罗华群。伽罗华域的子域和伽罗华群的子群有一一对应关系;当且仅当一个方程的伽罗华群是可解群时,这方程是根式可解的。如果你真的有兴趣,可以找一些相关的着作研究一下。我是软能动力(北京)有限责任公司的,做二维码近十年了。我们用的纠错编码与纠错译码是在前人的基础上修改、测试而来的,对于纠错算法的本身,并没有过多的研究。
希望以上所述可以为你提供一定的线索和基本的帮助,也希望你能在数学方面成为中华民族的骄傲。
H. QR算法求矩阵的特征值的优点
主要优点:
1.不会遗漏特征值
2.向后稳定
3.局部二次收敛,相当于直接法,一般O(n^3)步可以完成
对于非对称矩阵而言,QR算法仍然是目前求所有特征值的最好算法.
I. 如何用QR算法求矩阵特征值
function l = rqrtz(A,M)
%瑞利商位移的QR算法求矩阵全部特征值
%已知矩阵:A
%迭代步数:M
%求得的矩阵特征值:lA = hess(A);
for(i=1:M)
N = size(A);
n = N(1,1);
u = A(n,n);
[q,r]=qr(A-u*eye(n,n));
A = r*q+u*eye(n,n);
l = diag(A);
end4.4 QR算 法 QR算法也是一种迭代算法,是目前计算任意实的非奇异矩阵全部特征值问题的最有效的方法之一.该方法的基础是构造矩阵序列 ,并对它进行QR分解. 由线性代数知识知道,若A为非奇异方阵,则A可以分解为正交矩阵Q与上三角形矩阵R的乘积,即A=QR,而且当R的对角线元素符号取定时,分解式是唯一的. 若A为奇异方阵,则零为A的特征值.任取一数p不是A的特征值,则A-pI为非奇异方阵.只要求出A-pI的特征值,就很容易求出A的特征值,所以假设A为非奇异方阵,并不妨碍讨论的一般性. 设A为非奇异方阵,令 ,对 进行QR分解,即把 分解为正交矩阵 与上三角形矩阵 的乘积 = 做矩阵 继续对 进行QR分解 并定义 一般地,递推公式为 QR算法就是利用矩阵的QR分解,按上述递推公式构造矩阵序列 .只要A为非奇异方阵,则由QR算法就完全确定 .这个矩阵序列 具有下列性质. 性质1 所有 都相似,它们具有相同的特征值. 证明 因为 若令 ,则 为正交阵,且有 因此 与A相似,它们具有相同的特征值. 性质2 的QR分解式为 其中 证明 用归纳法.显然当k=1时,有 假设 有分解式 于是 因为 ,所以 因为 都是正交阵,所以 也是正交阵,同样 也是上三角形阵,从而 的QR分解式为 由前面的讨论知 .这说明QR算法的收敛性有正交矩阵序列 的性质决定. 定理1 如果 收敛于非奇异矩阵 为上三角形矩阵,则 存在并且是上三角形矩阵. 证明 因为 收敛,故下面极限存在 由于 为上三角形矩阵,所以 为上三角形矩阵.又因为 所以 存在,并且是上三角形矩阵. 定理2 (QR算法的收敛性)设A为n 阶实矩阵,且1) A的特征值满足: 2) ,其中 且设 有三角分解式 =LU(L为单位下三角阵,U为上三角阵),则由QR算法得到的矩阵序列 本质上收敛于上三角形矩阵.即 满足 当 当 的极限不一定存在 证明 因为 ,矩阵 决定 的收敛性.又 我们利用 求 ,然后讨论 的收敛性. 由定理条件 得 令 其中 的(i,j)元素 为 于是 由假设,当i>j时, 故 设方阵X的QR分解式为 由 由 知,对充分大的 非奇异,它应有唯一的QR分解式 ,并且 于是 但上三角阵 的对角线元素不一定大于零.为此,引入对角矩阵 以便保证( )的对角线元素都是正数,从而得到 的QR分解式 由 的QR分解式的唯一性得到 从而 由于 ,所以 从而 其中 于是 因为 为上三角阵, 为对角阵,且元素为1或-1,所以 当 当 的极限不一定存在 例 用QR算法求矩阵 的特征值.A的特征值为-1,4,1+2i,1-2i. 解 令 ,用施密特正交化过程将 分解为 将 与 逆序相乘,求出 用 代替A重复上面过程,计算11次得 由 不难看出,矩阵A的一个特征值是4,另一个特征值是-1,其他两个特征值是方程 的根.求得为