已知B=A-Aᵀ(B为实n阶反对称阵)求A的方法及非负约束问询
Alright, let's break this problem down clearly, starting with the unconstrained case and moving to the non-negative constraint scenario.
1. Unconstrained Case (No (A_{ij} \geq 0) Requirement)
First, recall that (B = A - A^T) is an antisymmetric matrix, so (B^T = -B) and all diagonal elements (B_{ii} = 0) (which aligns with (A)'s diagonal elements being 0, since (B_{ii} = A_{ii} - A_{ii} = 0)).
The equation (B = A - A^T) doesn't have a unique solution—there are infinitely many valid (A) matrices. Here's how to characterize all solutions, plus the simplest one:
- General Solution: Any valid (A) can be written as (A = \frac{B}{2} + S), where (S) is an arbitrary symmetric (n \times n) matrix with all diagonal elements equal to 0.
- Why this works: (S - S^T = 0) (since (S) is symmetric), so (A - A^T = \left(\frac{B}{2} + S\right) - \left(\frac{B^T}{2} + S^T\right) = \frac{B}{2} - \frac{-B}{2} + 0 = B). The diagonal elements of (A) are (0 + 0 = 0) (since (\frac{B}{2}) has 0 diagonal elements and (S) does too).
- Simplest Unique Solution: If you just need one easy-to-compute solution, set (S = 0). This gives (A = \frac{B}{2}).
- For any (i \neq j), (A_{ij} = \frac{B_{ij}}{2}) and (A_{ji} = \frac{B_{ji}}{2} = -\frac{B_{ij}}{2}) (since (B) is antisymmetric). Plugging back in: (A_{ij} - A_{ji} = \frac{B_{ij}}{2} - \left(-\frac{B_{ij}}{2}\right) = B_{ij}), which satisfies the original equation. Diagonal elements are 0 by construction.
2. Constrained Case ((A_{ij} \geq 0) for All (i,j))
Now we need (A) to satisfy both (B = A - A^T), (A_{ii} = 0), and (A_{ij} \geq 0) for every (i,j). Let's translate the constraints into actionable rules:
For each pair (i \neq j):
- From (B_{ij} = A_{ij} - A_{ji}), we get (A_{ji} = A_{ij} - B_{ij}). Since (A_{ji} \geq 0), this implies (A_{ij} \geq B_{ij}) (if (B_{ij}) is positive) or (A_{ji} \geq -B_{ij}) (if (B_{ij}) is negative).
- We can construct a valid, easy-to-compute solution by setting:
Let's verify this works:A_{ij} = \max(0, B_{ij}) \quad \text{for } i \neq j A_{ii} = 0 \quad \text{for all } i- If (B_{ij} \geq 0): (A_{ij} = B_{ij}), (A_{ji} = \max(0, B_{ji}) = \max(0, -B_{ij}) = 0). Then (A_{ij} - A_{ji} = B_{ij} - 0 = B_{ij}), which matches. Both (A_{ij}) and (A_{ji}) are non-negative.
- If (B_{ij} < 0): (A_{ij} = 0), (A_{ji} = \max(0, B_{ji}) = \max(0, -B_{ij}) = -B_{ij}) (which is positive). Then (A_{ij} - A_{ji} = 0 - (-B_{ij}) = B_{ij}), which matches. Again, both elements are non-negative.
This solution is minimal (it uses the smallest possible non-negative values to satisfy the equation) and straightforward to compute—just take each off-diagonal element of (B), replace negative values with 0, and set diagonals to 0.
Note: There are other valid solutions too—you can add any non-negative symmetric matrix (T) (with 0 diagonals) to this minimal (A), since (A + T - (A^T + T^T) = A - A^T = B) (and (T = T^T) keeps all elements non-negative). But the max-based solution is the simplest.
内容的提问来源于stack exchange,提问作者space_voyager

