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,其他兩個特徵值是方程 的根.求得為