具體描述
內容簡介
袁錦昀教授是傑齣的旅居巴西華人1957年齣生於江蘇興化唐劉鎮,1977年考入南京工學院,巴西巴拉那聯邦大學數學係終身教授、工業數學研究所所長,巴西計算和應用數學學會副會長,巴西數學會巴拉那州分會會長,巴西科技部基金委數學終審組應用數學和計算數學負責人,巴西巴拉那基金委數學終身組成員。 《實用迭代分析(英文版)(精)》是由其創作的英文版實用迭代分析專著。 目錄
Preface to the Series in Information and Computational Science
Preface
Chapter 1 Introduction
1.1 Background in linear algebra
1.1.1 Basic symbols, notations, and definitions
1.1.2 Vector norm
1.1.3 Matrix norm
1.1.4 Spectral radii
1.2 Spectral results of matrix
1.3 Special matrices
1.3.1 Reducible and irreducible matrices
1.3.2 Diagonally dominant matrices
1.3.3 Nonnegative matrices
1.3.4 p-cyclic matrices
1.3.5 Toeplitz, Hankel, Cauchy, Cauchy-like and Hessenberg matrices "
1.4 Matrix decomposition
1.4.1 LU decomposition
1.4.2 Singular value decomposition
1.4.3 Conjugate decomposition
1.4.4 QZ decomposition
1.4.5 S T decomposition
1.5 Exercises
Chapter 2 Basic Methods and Convergence
2.1 Basic concepts
2.2 The Jacobi method
2.3 The Gauss-Seidel method
2.4 The SOR method
2.5 M-matrices and splitting methods
2.5.1 M-matrix
2.5.2 Splitting methods
2.5.3 Comparison theorems
2.5.4 Multi-splitting methods
2.5.5 Generalized Ostrowski-Reich theorem
2.6 Error analysis of iterative methods
2.7 Iterative refinement
2.8 Exercises
Chapter 3 Non-stationary Methods
3.1 Conjugate gradient methods
3.1.1 Steepest descent method
3.1.2 Conjugate gradient method
3.1.3 Preconditioned conjugate gradient method
3.1.4 Generalized conjugate gradient method
3.1.5 Theoretical results on the conjugate gradient method
3.1.6 GeueuAzed poduct-tpe methods base u -QC
3.1.7 Inexact preconditioned conjugate gradient method
3.2 Lanczos method
3.3 GMRES method and QMR method
3.3.1 GMRES method
3.3.2 QMR method
3.3.3 Variants of the QMR method
3.4 Direct projection method
3.4.1 Theory of the direct projection method
3.4.2 Direct projection algorithms
3.5 Semi-conjugate direction method
3.5.1 Semi-conjugate vectors
3.5.2 Left conjugate direction method
3.5.3 One possible way to find left conjugate vector set
3.5.4 Remedy for breakdown
3.5.5 Relation with Gaussian elimination
3.6 Krylov subspace methods
3.7 Exercises
Chapter 4 Iterative Methods for Least Squares Problems
4.1 Introduction
4.2 Basic iterative methods
4.3 Block SOR methods
4.3.1 Block SOR algorithms
4.3.2 Convergence and optimal factors
4.3.3 Example
4.4 Preconditioned conjugate gradient methods
4.5 Generalized least squares problems
4.5.1 Block SOR methods
4.5.2 Preconditioned conjugate gradient method
4.5.3 Comparison
4.5.4 SOR-like methods
4.6 Rank deficient problems
4.6.1 Augmented system of normal equation
4.6.2 Block SOR algorithms
4.6.3 Convergence and optimal factor
4.6.4 Preconditioned conjugate gradient method
4.6.5 Comparison results
4.7 Exercises
Chapter 5 Preconditioners
5.1 LU decomposition and orthogonal transformations
5.1.1 Gilbert and Peierls algorithm for LU decomposition
5.1.2 Orthogonal transformations
5.2 Stationary preconditioners
5.2.1 Jacobi preconditioner
5.2.2 SSOR preconditioner
5.3 Incomplete factorization
5.3.1 Point incomplete factorization
5.3.2 Modified incomplete factorization
5.3.3 Block incomplete factorization
5.4 Diagonally dominant preconditioner
5.5 Preconditioner for least squares problems
5.5.1 Preconditioner by LU decomposition
5.5.2 Preconditioner by direct projection method
5.5.3 Preconditioner by QR decomposition
5.6 Exercises
Chapter 6 Singular Linear Systems
6.1 Introduction
6.2 Properties of singular systems
6.3 Splitting methods for singular systems
6.4 Nonstationary methods for Singular systems
6.4.1 symmetric and positive semidefinite systems
6.4.2 General systems
6.5 Exercises
Bibliography
Index
精彩書摘
Chapter 1
Introduction
In this chapter, we first give an overview of relevant concepts and some basic results of matrix linear algebra. Materials contained here will be used throughout the book.
1.1 Background in linear algebra
1.1.1 Basic symbols, notations, and definitions
Let R be the set of real numbers; C,the set of complex numbers; and i 三 /^T. The symbol Rn denotes the set of real n-vectors and Cn, the set of complex n-vectors, a, /3, 7,etc., denote real numbers or constants. Vectors are almost always column vectors. We use Rmxn to denote the linear vector space of all m-by-n real matrices and Cmxn, the linear vector space of all m-by-n complex matrices. The symbol dimp) denotes the dimension of a linear vector space S.
The upper case letters A, B, C, A, A, etc., denote matrices and the lower case letters x, y, z, etc., denote vectors.
Let (A)ij = ctij denote the (i, j)th entry in a matrix A = (aij). For any n-by-n matrix, the indices j go through 1 to n usually but sometimes go through 0 to n — 1 for convenience. Let AT be the transpose of A; A*, the conjugate transpose of
A rank(yl), the rank of A and tr(A)三the trace of A. An n-by-n diagonal
matrix is denoted by
We use the notation In for the n-by-n identity matrix. When there is no ambiguity, we shall write it as I. The symbol ej denotes the jth unit vector, i.e., the jth column vector of I.
A matrix A G Rnxn is symmetric if AT = A, and skew-symmetric if AT = —A. A symmetric matrix A is positive definite (semidefinite) if xTAx > 00) for any
nonzero vector x G Rn. A matrix A G Cnxn is Hermitian if A* = A. A Hermitian matrix A is positive definite (semidefinite) if x*Ax ≥ 0( 0) for any nonzero vector
x e Cn.
A number A e C is an eigenvalue of A G Cnxn if there exists a nonzero vector x G Cn such that Ax = Xx, where x is called the eigenvector of A associated with A. It is well-known that the eigenvalues of all Hermitian matrices are real. Let Amin (A) and Amax(A) denote the smallest and largest eigenvalues of a Hermitian matrix A respectively. We use p(A) = max |Ai(A)| to denote the spectral radius of A where Ai(A) goes through the spectrum of A. Recall that the spectrum of A is the set of all the eigenvalues of A.
We use to denote a norm of vector or matrix. The symbols||oo denote the p-novm with p = 1,2, oo, respectively. Also we use ?a(A), which is defined by Ka(A) = ||A||a||A_1||a to denote the condition number of the matrix A. In general, we consider every norm at the definition when a is omitted. But most used norm is 2-norm.
We use and 1Z(A) to represent the null space and Image space (or Range)
of given matrix A respectively where = {x G Rn : Ax = 0} and 1^(A) = {y G
Rm : y = Ax for some x G Rn} and A G Rmxn.
For matrix iterative analysis, we need some tools, such as vector norms, matrix norms and their extensions, and spectral radii.
1.1.2 Vector norm
In fact, a norm is an extension of length of vector in R2 or absolute value in R. It is well-known that Vx G R, x = satisfies the following properties:
We generalize three properties above to vector space Rn as follows.
Definition 1.1.1 /i : Rn —j- R is a vector norm on Rn if
Example 1.1.1 There are three common norms on Rn defined by
There axe some important elementary consequences from Definition 1.1.1 of the vector norm.
Proposition 1.1.1
Proof
Then,
By interchanging x and y, we can obtain
The result of (1.1.1) follows from (1.1.3) and (1.1.4) together. We can prove (1.1.2) if y is replaced by —y in (1.1.1).
The 2-norm is the natural generalization of the Euclidean length of vector on R2 or R3 and called the Euclidean norm. The oo-norm also sometimes called the maximum norm or the Chebyshev norm. In fact, they are special cases of p-norm defined as ,
Sometimes, usual norm is not enough for our research. We have to construct a new norm. One useful technique to construct new norms from some well-known norm is given in the following theorem.
Theorem 1.1.2 Let v be a norm on Rm and A E Rmxn have linearly inde?pendent columns. Then /i(x) = u(Ax) : Rn is a norm on Rn.
The proof is easy, just to check properties of the norm in Definition 1.1.1. Leave it to reader. This technique can work for matrix norm in the next subsection.
Corollary 1.1.3 Let A G RnXn be symmetric and positive definite. Then, /i(x) = VxTAx is a norm on Rn? denoted ||尤||^4,and called weighted norm (with A). We have to know if the sequence generated by iterative methods converges to the solution when we study iterative methods. For this purpose, we shall give some concepts about limit of sequence in vector spaces.
Definition 1.1.2 Let {x(fc)} be a sequence of n-vectors,and x G Rn. Then, x is a limit of the sequence {x(fc)} (written x = limfc_,00 x^) if
where Xi(i = 1,2, … ,n) are components of x.
By the definition,
Furthermore, it follows from equivalence of vector norms that x = lim a;⑷ lim "(x — a:⑷)=0,
where " is a norm on Rn.
1.1.3 Matrix norm
Definition 1.1.3 : Rmxn — R is a matrix norm on Rmxn if
Example 1.1.2 Let A 前言/序言
架構演進與係統重構:現代軟件工程的實踐指南 本書聚焦於復雜軟件係統在長期維護和快速迭代過程中所麵臨的深層結構性挑戰,提供一套係統化、可操作的架構演進策略與重構技術。它不直接探討特定工具鏈的迭代速度或版本發布周期,而是深入剖析支撐這些活動的底層軟件設計原則和管理方法論。 在當今快速變化的技術環境中,軟件産品不再是靜態的交付物,而是需要持續進化的生命體。本書的核心價值在於,它將軟件架構視為一個動態實體,強調“架構適應性”而非“初始完美性”。我們承認,任何初始設計都將隨著業務需求、技術棧和團隊規模的擴大而逐漸顯現齣瓶頸。本書的目標讀者是那些正麵臨“技術債務雪球效應”的資深開發者、架構師以及技術領導者,旨在為他們提供穿越復雜性迷霧的清晰路徑。 第一部分:識彆與量化架構停滯的信號 在開始任何大規模的結構性變動之前,精準地識彆齣當前架構的健康狀況至關重要。本部分詳盡闡述瞭如何將抽象的“係統變慢”轉化為可量化的工程指標。 1. 耦閤度與內聚性的深度剖析: 我們將超越經典的“高內聚、低耦閤”口號,深入探討如何使用依賴圖分析工具和模塊間的調用頻率統計,精確測量組件之間的耦閤強度。重點分析瞭“虛擬耦閤”(如共享數據庫、全局配置狀態)對係統靈活性的隱性製約。 2. 變更擴散效應(Change Diffusion): 成功的架構能夠將局部改動的影響限製在最小範圍內。本書提供瞭一套方法論,用於追蹤和記錄一次業務需求的變更,需要修改多少個不相關的代碼文件,以及需要重新部署的組件數量。高擴散率是係統僵化的明確信號。 3. 領域邊界的模糊化與衝突: 探討康威定律在現實中的體現。當不同業務領域的邏輯混雜在同一代碼庫中時,理解和維護成本呈指數級增長。我們將介紹如何通過上下文映射(Context Mapping)技術,識彆齣正在被不當閤並或過度耦閤的業務領域。 4. 非功能性需求的降級模式: 性能、可觀測性和安全性是架構的生命綫。本章分析瞭當架構開始退化時,這些非功能性指標是如何係統性地、難以察覺地下降的。例如,內存泄漏、不閤理的鎖競爭引入的響應時間波動,以及如何在日常監控中捕獲這些微妙的信號。 第二部分:演進式架構的設計原則與模式 本部分將視角從“問題診斷”轉嚮“解決方案構建”,提齣一套非破壞性的架構重構策略。我們堅信,大型係統的演進必須是漸進的、可驗證的,而不是“大爆炸式”的推倒重來。 1. 絞殺者模式(Strangler Fig Pattern)的精細化應用: 詳細闡述瞭如何將遺留係統中的特定功能或服務,安全地“絞殺”並遷移到新的服務邊界內。重點討論瞭如何設計透明的路由層,確保在遷移過程中業務的連續性和數據的一緻性。這不是關於工具,而是關於策略的部署。 2. 邊界上下文的物理化: 如何將邏輯上的領域邊界,通過實際的技術選型(如獨立部署單元、不同的數據存儲技術)固化下來。討論瞭微服務架構並非萬能藥,而是一種工具,用於隔離那些具有高波動性和高變更頻率的業務核心。 3. 數據拓撲的解耦: 數據是係統中最難遷移的部分。本書深入研究瞭如何處理共享數據庫的依賴。討論瞭數據復製、事件溯源(Event Sourcing)和命令查詢職責分離(CQRS)在實現數據層解耦中的具體實踐,重點在於如何在高並發環境下維護事務語義。 4. 架構契約的建立與強製執行: 引入“架構契約”的概念,它定義瞭服務之間必須遵守的通信協議、數據格式和邊界條件。我們將介紹如何利用靜態分析和運行時驗證工具,將這些契約嵌入到持續集成流程中,從而防止“架構漂移”(Architectural Drift)。 第三部分:重構的工程實踐與文化支撐 成功的架構演進不僅是技術挑戰,更是組織和流程的挑戰。本部分著重於如何將重構活動融入日常開發流程,並建立支持持續改進的工程文化。 1. 增量式重構的“特性開關”策略: 介紹如何利用特性開關(Feature Toggles)來安全地部署包含新舊架構代碼的分支。這使得團隊可以在生産環境中對新架構進行有限範圍的驗證和灰度發布,極大地降低瞭部署風險。 2. 遺留代碼的“就地清理”原則: 摒棄為重構而重構的觀念。本書強調代碼應在“觸摸它時”進行清理。當需要添加新功能或修復缺陷時,將清理和改進作為任務的一部分,而不是單獨的項目。這需要明確的團隊共識和代碼所有權劃分。 3. 架構債務的可見化與治理: 架構債務需要像技術債務一樣被追蹤和管理。我們提供瞭一套方法,用於記錄架構決策(Architecture Decision Records, ADRs),清晰記錄為何采取瞭某個設計,以及未來需要解決的局限性。這些記錄成為未來重構工作的路綫圖。 4. 持續反饋迴路的構建: 強調自動化測試套件(單元、集成和契約測試)是架構演進的安全網。隻有當測試覆蓋率足夠高時,架構師和工程師纔有信心深入到係統的核心進行修改。本書提供瞭構建健壯測試金字塔,以支撐大規模重構的實用建議。 通過對這些深層次工程哲學的探討與實踐指導,本書旨在幫助讀者構建齣更具韌性、更易於理解和維護的軟件係統,確保技術投資能夠持續地支持業務的長期發展目標。