線性代數之矩陣特征值與特征向量的數值求解方法

文章目錄

  • 前言
  • 1. 冪迭代法(Power Iteration)
    • 冪法與反冪法求解矩陣特征值
    • 冪法求最大特征值
    • 編程實現
    • 補充說明
  • 2. 逆冪迭代法(Inverse Iteration)
    • 移位反冪法
  • 3. QR 算法(QR Algorithm)——稠密矩陣
    • 理論推導
    • 編程實現
  • 4. 雅可比方法(Jacobi Method)——對稱矩陣
    • 編程實現
  • 5. Lanczos 算法(稀疏矩陣)
  • 6. 分治法
  • 7. 方法選擇指南
  • 8. 關鍵公式與說明
  • 參考文獻

前言

定n×n維矩陣A,滿足下式的數λ稱作矩陣A的一個特征值:
A u = λ u Au = \lambda u Au=λu
推廣形式

特征值問題可推廣到更一般的形式。假設 u = f ( x ) u = f(x) u=f(x) 是一個連續函數, A = d d x A = \frac{d}{dx} A=dxd? 表示微分運算,則二階微分方程:
d 2 u d x 2 = k 2 u \frac{d^2u}{dx^2} = k^2u dx2d2u?=k2u
可表示為:
A 2 u = k 2 u A^2u = k^2u A2u=k2u
這是特征值問題在微分算子中的表現形式。


特征方程與求解方法

根據定義 ( A ? λ I ) u = 0 (A - \lambda I)\mathbf{u} = 0 (A?λI)u=0
A ? λ I A - \lambda I A?λI 非奇異,則方程只有零解。因此,特征值需滿足:
det ? ( A ? λ I ) = 0 \det(A - \lambda I) = 0 det(A?λI)=0
此方程稱為特征方程,其根即為矩陣 A A A 的特征值。


示例

給定矩陣:
A = [ 1 2 3 2 ] A = \begin{bmatrix} 1 & 2 \\ 3 & 2 \end{bmatrix} A=[13?22?]
其特征方程為:
det ? [ 1 ? λ 2 3 2 ? λ ] = ( 1 ? λ ) ( 2 ? λ ) ? 6 = 0 \det\begin{bmatrix} 1 - \lambda & 2 \\ 3 & 2 - \lambda \end{bmatrix} = (1 - \lambda)(2 - \lambda) - 6 = 0 det[1?λ3?22?λ?]=(1?λ)(2?λ)?6=0
展開并化簡:
λ 2 ? 3 λ ? 4 = 0 ? λ 1 = 4 , λ 2 = ? 1 \lambda^2 - 3\lambda - 4 = 0 \implies \lambda_1 = 4,\ \lambda_2 = -1 λ2?3λ?4=0?λ1?=4,?λ2?=?1

然而,對于高階矩陣,特征值的解析解通常難以直接計算,需借助數值方法(如QR算法、冪迭代法等)進行求解。


1. 冪迭代法(Power Iteration)

目標:求解矩陣的模最大特征值及其對應特征向量。

冪法與反冪法求解矩陣特征值

本節介紹如何使用冪法和反冪法分別求解矩陣的模最大和模最小特征值。給定矩陣 A A A,假設其有 n n n 個實特征值:
∣ λ 1 ∣ > ∣ λ 2 ∣ > ? > ∣ λ n ∣ |λ_1| > |λ_2| > \cdots > |λ_n| λ1?>λ2?>?>λn?
對應的特征向量為 u 1 , u 2 , … , u n u_1, u_2, \ldots, u_n u1?,u2?,,un?


冪法求最大特征值

步驟說明:

  1. 初始向量選取:
    隨機選取初始向量 x 1 x_1 x1?,可表示為特征向量的線性組合:
    x 1 = c 1 u 1 + c 2 u 2 + ? + c n u n x_1 = c_1u_1 + c_2u_2 + \cdots + c_nu_n x1?=c1?u1?+c2?u2?+?+cn?un?

  2. 迭代計算:

    • 第一次迭代:
      A x 1 = c 1 A u 1 + c 2 A u 2 + ? + c n A u n = λ 1 c 1 x 2 Ax_1 = c_1Au_1 + c_2Au_2 + \cdots + c_nAu_n = λ_1c_1x_2 Ax1?=c1?Au1?+c2?Au2?+?+cn?Aun?=λ1?c1?x2?
      規范化后得到:
      x 2 = u 1 + c 2 c 1 λ 2 λ 1 u 2 + ? + c n c 1 λ n λ 1 u n x_2 = u_1 + \frac{c_2}{c_1} \frac{λ_2}{λ_1}u_2 + \cdots + \frac{c_n}{c_1} \frac{λ_n}{λ_1}u_n x2?=u1?+c1?c2??λ1?λ2??u2?+?+c1?cn??λ1?λn??un?

    • 第二次迭代:
      A x 2 = λ 1 u 1 + c 2 c 1 λ 2 2 λ 1 u 2 + ? + c n c 1 λ n 2 λ 1 u n = λ 1 x 3 Ax_2 = λ_1u_1 + \frac{c_2}{c_1} \frac{λ_2^2}{λ_1}u_2 + \cdots + \frac{c_n}{c_1} \frac{λ_n^2}{λ_1}u_n = λ_1x_3 Ax2?=λ1?u1?+c1?c2??λ1?λ22??u2?+?+c1?cn??λ1?λn2??un?=λ1?x3?
      規范化后得到:
      x 3 = u 1 + c 2 c 1 λ 2 2 λ 1 2 u 2 + ? + c n c 1 λ n 2 λ 1 2 u n x_3 = u_1 + \frac{c_2}{c_1} \frac{λ_2^2}{λ_1^2}u_2 + \cdots + \frac{c_n}{c_1} \frac{λ_n^2}{λ_1^2}u_n x3?=u1?+c1?c2??λ12?λ22??u2?+?+c1?cn??λ12?λn2??un?

  3. 通用迭代公式:
    k k k 次迭代的通式為:
    x k + 1 = u 1 + c 2 c 1 λ 2 k λ 1 k u 2 + ? + c n c 1 λ n k λ 1 k u n x_{k+1} = u_1 + \frac{c_2}{c_1} \frac{λ_2^k}{λ_1^k}u_2 + \cdots + \frac{c_n}{c_1} \frac{λ_n^k}{λ_1^k}u_n xk+1?=u1?+c1?c2??λ1k?λ2k??u2?+?+c1?cn??λ1k?λnk??un?

  4. 收斂性分析:
    由于 ∣ λ 1 ∣ > ∣ λ i ∣ ( i ≥ 2 ) |λ_1| > |λ_i| \, (i \geq 2) λ1?>λi?(i2),當 k k k 充分大時,高階小項趨于零,可得:
    A x k + 1 ≈ λ 1 u 1 , x k + 1 ≈ u 1 Ax_{k+1} \approx λ_1u_1, \quad x_{k+1} \approx u_1 Axk+1?λ1?u1?,xk+1?u1?


具體實現步驟

  1. 隨機初始化非零向量 v 0 \boldsymbol{v}_0 v0?
  2. 迭代計算:
    v k + 1 = A v k ∥ A v k ∥ \boldsymbol{v}_{k+1} = \frac{A\boldsymbol{v}_k}{\|A\boldsymbol{v}_k\|} vk+1?=Avk?Avk??
  3. 估計特征值:
    λ ≈ v k ? A v k \lambda \approx \boldsymbol{v}_k^\top A \boldsymbol{v}_k λvk??Avk?

編程實現

具體實現時,并沒有λ1和u1的值,因此,迭代計算 x k + 1 = A x k x_{k+1}=Ax_k xk+1?=Axk?后,規范化 x k + 1 x_{k+1} xk+1?即可。注意:最大特征值是指模最大的那個特征值

% 冪法求最大特征值
clc;
clear;
close all;
% 第一種寫法
A=[4 2 -2; -2 8 1 ; 2 4 -4];
x = ones(size(A));
for i=1:40x=A*x;[mx,id] = max(abs(x));x=x/x(id);
end
e = A*x./x;
[mx,id] = max(abs(e));
e = e(id)eig(A)% 第二種寫法
v0 = [1;1;1];
u0 = [1;1;1];
% A = [2,-1,0;-1,2,-1;0,-1,2];
v = A * u0;
u = v / norm(v, inf);
i = 0;
while norm(u - u0, inf) >= 1e-6u0 = u;v = A * u0;u = v / norm(v, inf);i = i+1;
end
norm(v, inf)
i
u

補充說明

  • 最大特征值: 冪法求得的是模最大的特征值 λ 1 λ_1 λ1?

2. 逆冪迭代法(Inverse Iteration)

目標:求解靠近 μ \mu μ最小模特征值

給定矩陣 ( A ),假設其有 ( n ) 個實特征值:

∣ λ 1 ∣ > ∣ λ 2 ∣ > ? > ∣ λ n ∣ |\lambda_1| > |\lambda_2| > \cdots > |\lambda_n| λ1?>λ2?>?>λn?

其對應的特征向量為( u 1 , u 2 u_1, u_2 u1?,u2?, … , u n \ldots, u_n ,un?)。( λ n \lambda_n λn? ) 是最小特征值。首先注意到如果 ( A u = λ u Au= \lambda u Au=λu ),則:

A ? 1 A u = A ? 1 λ u ? u = A ? 1 λ u A^{-1}Au = A^{-1}\lambda u \implies u = A^{-1}\lambda u A?1Au=A?1λu?u=A?1λu

因此有:

A ? 1 u = 1 λ u A^{-1}u = \frac{1}{\lambda}u A?1u=λ1?u

可以看到,當 λ n \lambda_n λn?為矩陣 A 的最小特征值時,( 1 λ n \frac{1}{\lambda_n} λn?1? ) 將是 A ? 1 A^{-1} A?1的最大特征值。此時運用冪法求解 A ? 1 A^{-1} A?1 的最大特征值,取倒數,即為 A 的最小特征值。反冪算法中需要注意的是,當最小特征值為 0 時,其倒數是沒有定義的,此時反冪法求解的是第二小的特征值,且需要采用移位反冪法。

function e = MinEig(A)invA = inv(A);x = ones(size(A));for i=1:40x=invA*x; [mx,id] = max(abs(x));x=x/x(id);ende = invA*x./x; [mx,id] = max(abs(e));e = 1/e(id);
end

移位反冪法

步驟

  1. ( A ? μ I ) (A - \mu I) (A?μI) 進行 LU 分解。
  2. 隨機初始化向量 v 0 \boldsymbol{v}_0 v0?
  3. 迭代求解:
    ( A ? μ I ) v k + 1 = v k ? v k + 1 = v k + 1 ∥ v k + 1 ∥ (A - \mu I)\boldsymbol{v}_{k+1} = \boldsymbol{v}_k \quad \Rightarrow \quad \boldsymbol{v}_{k+1} = \frac{\boldsymbol{v}_{k+1}}{\|\boldsymbol{v}_{k+1}\|} (A?μI)vk+1?=vk??vk+1?=vk+1?vk+1??
A = [3,0,-10;-1,3,4;0,1,-2];
I = eye(3,3);
p = 4.3;
u0 = [1;1;1];
v = inv(A - p * I) * u0;
u = v / norm(v, inf);
i = 0;
while norm(u - u0, inf) > 1e-5u0 = u;v = inv(A - p * I) * u0;u = v / norm(v, inf);i ++;
end;
i
u
x = p + 1 / norm(v, inf)

綜述所述,可以總結反冪法求解特征向量的特點如下:

位移技術: 對每個已求得的特征值 λ i \lambda_i λi?,構造矩陣 A 0 ? λ i I A_0-\lambda_iI A0??λi?I,使其接近奇異;

加速收斂: 反冪法迭代公式為 x k + 1 = ( A ? σ I ) ? 1 x k x_{k+1}=(A-\sigma I)^{-1}x_k xk+1?=(A?σI)?1xk?,其中 σ \sigma σ接近特征值。此時 ( A ? σ I ) ? 1 (A-\sigma I)^{-1} (A?σI)?1的模最大特征值對應的特征向量即為A的 σ \sigma σ附近特征值的特征向量。

高精度優勢: λ i \lambda_i λi?精度較高時,反冪法可以在少量迭代內快速收斂到對應特征向量。


3. QR 算法(QR Algorithm)——稠密矩陣

目標:求解所有特征值(稠密矩陣)。
步驟

  1. A A A 轉化為上 Hessenberg 矩陣。
  2. 迭代 QR 分解:
    A k = Q k R k , A k + 1 = R k Q k A_k = Q_k R_k, \quad A_{k+1} = R_k Q_k Ak?=Qk?Rk?,Ak+1?=Rk?Qk?
  3. A k A_k Ak? 收斂為上三角矩陣時,對角線元素即為特征值。

理論推導

冪法與反冪法用于求解矩陣的最大特征值與最小特征值。若想求解矩陣的所有特征值,可以使用QR分解法。假設矩陣 A 是 n × n n \times n n×n 的方陣,且其 n 個特征值均為互不相同的實數。QR分解法的理論保證如下:

若對矩陣 A 進行相似變換 B = C ? 1 A C B = C^{-1}AC B=C?1AC ,則變換后的矩陣 B 的特征值與 A 一致。這是因為:
A u = λ u Au = \lambda u Au=λu ,令 v = C ? 1 u v = C^{-1}u v=C?1u,則有
A C v = A u = λ C v ACv = Au = \lambda Cv ACv=Au=λCv
進一步可得
C ? 1 A C v = λ v C^{-1}ACv = \lambda v C?1ACv=λv
因此, λ \lambda λ 也是 C ? 1 A C C^{-1}AC C?1AC 的特征值。

據此,可以通過以下步驟實現特征值和特征向量的求解:

  1. 初始化

    • 令 ( A_1 = A ),并對 ( A_1 ) 進行QR分解:
      A 1 = Q 1 R 1 A_1 = Q_1R_1 A1?=Q1?R1?
      其中,( Q_1 ) 是正交矩陣(滿足 ( Q_1Q_1^T = I )),( R_1 ) 是上三角矩陣。
  2. 迭代生成新矩陣

    • 計算 ( A_2 = R_1Q_1 ),即:
      A 2 = Q 1 ? 1 A 1 Q 1 A_2 = Q_1^{-1}A_1Q_1 A2?=Q1?1?A1?Q1?
      此時 ( A_2 ) 的特征值與 ( A ) 一致。繼續對 ( A_2 ) 進行QR分解:
      A 2 = Q 2 R 2 A_2 = Q_2R_2 A2?=Q2?R2?
  3. 重復迭代

    • 計算 ( A_3 = R_2Q_2 ),即:
      A 3 = Q 2 ? 1 A 2 Q 2 = Q 2 ? 1 Q 1 ? 1 A 1 Q 1 Q 2 A_3 = Q_2^{-1}A_2Q_2 = Q_2^{-1}Q_1^{-1}A_1Q_1Q_2 A3?=Q2?1?A2?Q2?=Q2?1?Q1?1?A1?Q1?Q2?
  4. 終止條件

    • 重復上述步驟,直至 ( A_n ) 收斂為一個上三角矩陣。此時,矩陣對角線上的元素即為 ( A ) 的所有特征值。

:QR分解通過不斷迭代將原矩陣相似變換為上三角矩陣,從而直接讀取對角線元素作為特征值。此方法適用于實對稱矩陣或具有實特征值的方陣。

編程實現

A=[ 6 -7 2 ; 4 -5 2; 1 -1 1]
A0=A;
for i=1:40[Q R]=qr(A);A=R*Q;
end
A
ev=diag(A)
eig(A0)

特點

  • 復雜度 O ( n 3 ) O(n^3) O(n3),LAPACK 的核心算法。
  • 結合位移(如 Wilkinson 位移)優化收斂。

?特征值修正?
QR方法得到的特征值可能存在微小誤差,反冪法可進一步修正

A=[ 6 -7 2 ; 4 -5 2; 1 -1 1]
A0=A;
for i=1:40[Q R]=qr(A);A=R*Q;
end
A
ev=diag(A)
Q
eig(A0)% 使用反冪法求特征向量,并對特征值進行修正
a = ev;
n = size(a,1);
x = zeros(n);
for i = 1:nx0 = ones(n,1);[b,x0] = MinEig(A0-a(i,1)*eye(n));x(:,i) = x0;a(i,:) = a(i,:) + b;
enda
x

4. 雅可比方法(Jacobi Method)——對稱矩陣

目標:求解對稱矩陣的所有特征值和特征向量。

Jacobi方法的基本思想是通過一次正交變換,將A中的一對非零的非對角元素化成零并且使得非對角元素的平方和減小。反復進行上述過程,使變換后的矩陣的非對角元素的平方和趨于零,從而使該矩陣近似為對角矩陣,得到全部特征值和特征向量。

步驟

  1. 通過 Givens 旋轉矩陣 G k G_k Gk? 逐步對角化:
    A k + 1 = G k ? A k G k A_{k+1} = G_k^\top A_k G_k Ak+1?=Gk??Ak?Gk?
  2. 重復直到非對角元素接近零。

特點

  • 穩定但收斂慢,特征向量通過旋轉矩陣累積。

編程實現

function [D,V,iter]=Jacobi_classical(A,maxIter,tol)
n = size(A, 1); % 矩陣的大小
V = eye(n); % 初始化特征向量矩陣為單位矩陣
iter = 0; % 初始化迭代次數
% 設置最大迭代次數和誤差精度
if nargin < 3 || isempty(tol)tol = 1e-9; % 默認誤差精度
end
if nargin < 2 || isempty(maxIter)maxIter = 1000; % 默認最大迭代次數
end
while(iter < maxIter)iter=iter+1;D=A;n=size(D,1);p=1;q=2;for i=1:nfor j=i+1:nif(abs(D(i,j))>abs(D(p,q)))%找到對稱矩陣的上三角矩陣中最大的元素的下標p=i;q=j;endendendif(abs(D(p,q))<tol)break;endif(A(p,q)~=0)d=(A(q,q)-A(p,p))/(2*A(p,q));if(d>0)t=1/(d+sqrt(d^2+1));elset=-1/(-d+sqrt(d^2+1));endc=1/sqrt(t^2+1);s=c*t;elsec=1;s=0;endR=[c s;-s c];A([p,q],:)=R'*A([p,q],:);A(:,[p,q])=A(:,[p,q])*R;V(:, [p, q]) = V(:,[p,q])*R;
end
D = diag(diag(D));  % 提取特征值
end

結果測試:

clc;
clear;
close all;A=[ 6 -7 2 ; 4 -5 2; 1 -1 1]
[D, V, iter] = Jacobi_classical(A, 2000)
eig(A)

在這里插入圖片描述


5. Lanczos 算法(稀疏矩陣)

目標:求解稀疏矩陣的部分極端特征值
步驟

  1. 生成 Krylov 子空間的正交基底。
  2. 投影到三對角矩陣 T k T_k Tk?
    T k = V k ? A V k T_k = V_k^\top A V_k Tk?=Vk??AVk?
  3. T k T_k Tk? 應用 QR 算法求特征值。
    特點
  • 僅需矩陣-向量乘法,適合大規模稀疏矩陣。

6. 分治法

目標:高效求解對稱三對角矩陣的所有特征值。
步驟

  1. 將矩陣分解為子矩陣。
  2. 遞歸求解子矩陣特征值。
  3. 合并子問題解并修正。

特點

  • 復雜度 O ( n 2 ) O(n^2) O(n2),適合大規模三對角矩陣。

7. 方法選擇指南

場景推薦方法
中小規模稠密矩陣QR 算法
對稱矩陣Jacobi 或 QR 算法
稀疏矩陣的極端特征值Lanczos/Arnoldi 迭代
最小/靠近 μ \mu μ 的特征值逆冪迭代法 + 位移
工程問題中的部分特征值子空間迭代法

8. 關鍵公式與說明

特征方程
矩陣 A A A 的特征值滿足:
det ? ( A ? λ I ) = 0 \det(A - \lambda I) = 0 det(A?λI)=0

  • 2x2 矩陣
    λ 2 ? tr ( A ) λ + det ? ( A ) = 0 \lambda^2 - \text{tr}(A)\lambda + \det(A) = 0 λ2?tr(A)λ+det(A)=0
  • n 階矩陣
    P ( λ ) = ( ? 1 ) n λ n + ? + det ? ( A ) P(\lambda) = (-1)^n \lambda^n + \dots + \det(A) P(λ)=(?1)nλn+?+det(A)

提示

  • 高階矩陣避免解析法,優先使用數值庫(如 LAPACK、ARPACK)。
  • 對稱矩陣的特征向量可正交化,提升計算穩定性。

參考文獻

[1] *數值計算day5-特征值與特征向量
[2] 數值計算方法 Chapter7. 計算矩陣的特征值和特征向量
[3] 數值線性代數:Arnoldi求解特征值/特征向量
[4] 使用Matlab實現:冪法、反冪法(原點位移)
[5] MATLAB求解矩陣特征值的六種方法

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/73095.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/73095.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/73095.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

VScode:運行程序停止后,頻繁出現終端進程被終止

VScode里面powershell被迫關閉 bug場景排查原因解決辦法 bug場景 系統&#xff1a;Windows IDE&#xff1a;Visual Studio Code 停止運行程序后&#xff0c;按向上箭頭想要執行上一步命令&#xff0c;忽然終端頁面強行關閉&#xff0c;并報錯如下&#xff1a; 終端進程 &quo…

[MERN] 使用 socket.io 實現即時通信功能

[MERN] 使用 socket.io 實現即時通信功能 效果實現如下&#xff1a; MERN-socket.io 實現即時聊天 Github 項目地址:https://github.com/GoldenaArcher/messenger-mern 項目使用了 MERN(MongoDB, Express, React, Node.js) socket.io 實現即時通信功能&#xff0c;并且使用了…

【菜鳥飛】Conda安裝部署與vscode的結合使用

介紹 Conda 是一個跨平臺的開源工具&#xff0c;用于管理軟件包和環境。最初由 Anaconda 公司開發&#xff0c;它的設計目標是支持數據科學和機器學習領域&#xff0c;但其功能不僅局限于此。 以下是 Conda 的核心特點&#xff1a; 包管理&#xff1a;安裝、更新、卸載各種庫…

《Android應用性能優化全解析:常見問題與解決方案》

目錄 一、UI卡頓/掉幀 二、內存泄漏&#xff08;Memory Leak&#xff09; 三、ANR&#xff08;Application Not Responding&#xff09; 四、列表滑動卡頓&#xff08;RecyclerView/ListView&#xff09; 五、冷啟動耗時過長 六、內存抖動&#xff08;Memory Churn&#x…

【MySQL是怎么運行的】0、名詞解釋

聚簇索引&#xff1a;聚簇索引和數據在一起&#xff0c;又名主鍵索引&#xff0c;是主鍵id構建的一顆B樹&#xff0c;非葉節點是主鍵id&#xff0c;葉子節點是真實數據。其他索引統稱二級索引&#xff0c;也稱為非聚簇索引。覆蓋索引&#xff1a;查找的數據就在索引樹上&#x…

深入解析 TCP 協議【真題】

傳輸控制協議&#xff08;TCP&#xff09;解析與題目解析 題目解析 關于傳輸控制協議&#xff08;TCP&#xff09;表述不正確的是&#xff1f; A. 主機尋址 B. 進程尋址 C. 流量控制 D. 差錯控制 TCP&#xff08;Transmission Control Protocol&#xff09;是面向連接、可靠傳…

單例模式的五種實現方式

1、餓漢式 ①實現&#xff1a;在類加載的時候就初始化實例 ②優點&#xff1a;線程安全 ③缺點&#xff1a;實例在類加載的時候創建&#xff0c;可能會浪費資源 //餓漢式 public class EagerSingleton{private EagerSingleton(){} //私有構造方法private static EagerSingle…

SwiftUI 讓視圖自適應高度的 6 種方法(四)

概覽 在 SwiftUI 的世界里&#xff0c;我們無數次都夢想著視圖可以自動根據布局上下文“因勢而變”?。大多數情況下&#xff0c;SwiftUI 會將每個視圖尺寸處理的井井有條&#xff0c;不過在某些時候我們還是得親力親為。 如上圖所示&#xff0c;無論頂部 TabView 容器里子視圖…

小程序SSL證書過期怎么辦?

SSL證書就像小程序的“安全鎖”&#xff0c;一旦過期&#xff0c;用戶訪問時會被提示“不安全”&#xff0c;輕則流失客戶&#xff0c;重則數據泄露&#xff01;作為企業負責人&#xff0c;如何快速解決證書過期問題&#xff1f;又該如何避免再次踩坑&#xff1f;這篇指南給你答…

ClickHouse優化技巧實戰指南:從原理到案例解析

目錄 ?ClickHouse優化核心思想?表結構設計優化?查詢性能優化技巧?數據寫入優化方案?系統配置調優實戰?高可用與集群優化?真實案例解析?總結與建議 1. ClickHouse優化核心思想 ClickHouse作為OLAP領域的明星引擎&#xff0c;其優化需遵循列式存儲特性&#xff0c;把握…

DeepSeek 助力 Vue3 開發:打造絲滑的表格(Table)之添加列寬調整功能,示例Table14_02帶邊框和斑馬紋的固定表頭表格

前言&#xff1a;哈嘍&#xff0c;大家好&#xff0c;今天給大家分享一篇文章&#xff01;并提供具體代碼幫助大家深入理解&#xff0c;徹底掌握&#xff01;創作不易&#xff0c;如果能幫助到大家或者給大家一些靈感和啟發&#xff0c;歡迎收藏關注哦 &#x1f495; 目錄 Deep…

服務自動被kill掉的原因和查看

服務在運行一段時間后被自動kill掉可能是由多種原因引起的,包括系統資源限制、進程管理策略、應用程序錯誤等。以下是一些常見的原因以及定位問題的過程: 常見原因 系統資源限制: 內存不足:如果服務消耗了過多的內存,系統可能會kill掉該進程以釋放內存資源。CPU使用過高:…

基礎算法——順序表

一、詢問學號 題?來源&#xff1a;洛? 題?鏈接&#xff1a;P3156 【深基15.例1】詢問學號 - 洛谷 難度系數&#xff1a;★ 1. 題目描述 2. 算法原理 直接? vector 或者數組模擬即可。 3. 參考代碼 #include <iostream> #include <vector>using namespace st…

Ubuntu用戶安裝cpolar內網穿透

前言 Cpolar作為一款體積小巧卻功能強大的內網穿透軟件&#xff0c;不僅能夠在多種環境和應用場景中發揮巨大作用&#xff0c;還能適應多種操作系統&#xff0c;應用最為廣泛的Windows、Mac OS系統自不必多說&#xff0c;稍顯小眾的Linux、樹莓派、群輝等也在起支持之列&#…

C#實現高性能異步文件下載器(支持進度顯示/斷點續傳)

一、應用場景分析 異步文件下載器用處很大&#xff0c;當我們需要實現以下功能時可以用的上&#xff1a; 大文件下載&#xff08;如4K視頻/安裝包&#xff09; 避免UI線程阻塞&#xff0c;保證界面流暢響應多任務并行下載 支持同時下載多個文件&#xff0c;提升帶寬利用率后臺…

Oracle比較好的幾本書籍

1.《Oracle專家高級編程》 2.《Oracle高效設計》 3.《Oracle9i&10g&11g編程藝術深入數據庫體系結構》 4.《讓Oracle跑的更快》(1/2) ....... n.《Oracle官方文檔的閱讀》下面包括這幾個部分&#xff0c;可以跟進研讀一下&#xff1a; &#xff08;1&#xff09;《…

js和java中方法重載(js本身是不支持方法重載,方便對比學習)

js如果需要實現方法重載 示例 1&#xff1a;根據參數數量實現重載 function overloadExample() {if (arguments.length 1) {console.log(一個參數:, arguments[0]);} else if (arguments.length 2) {console.log(兩個參數:, arguments[0], arguments[1]);} else {console.l…

Android : Camera之CHI API

來自&#xff1a; https://www.cnblogs.com/szsky/articles/10861918.html 一、CAM CHI API功能介紹&#xff1a; CHI API建立在Google HAL3的靈活性基礎之上&#xff0c;目的是將Camera2/HAL3接口分離出來用于使用相機功能&#xff0c;它是一個靈活的圖像處理驅動程序&#…

Netty基礎—2.網絡編程基礎四

大綱 1.網絡編程簡介 2.BIO網絡編程 3.AIO網絡編程 4.NIO網絡編程之Buffer 5.NIO網絡編程之實戰 6.NIO網絡編程之Reactor模式 5.NIO網絡編程之Buffer (1)Buffer的作用 Buffer的作用是方便讀寫通道(Channel)中的數據。首先數據是從通道(Channel)讀入緩沖區&#xff0c;從…

Git前言(版本控制)

1.Git 目前世界上最先進的分布式版本控制系統。 git官網&#xff1a;https://git-scm.com/ 2.版本控制 2.1什么是版本控制 版本控制(Revision control)是一種在開發的過程中用于管理我們對文件、目錄或工程等內容修改歷史&#xff0c;方便查看更改歷史記錄備份以便恢復以前…