Climber.pI的OI之路

Through the darkest dark,may we see the light.

线性方程组以及在高考/竞赛中的应用

上周四研究有多套系数的氧化还原反应方程式配平的时候, 遇到了多元线性方程组求解的问题, 不过似乎书上写挂了(应该写通解, 而书上只给出了一个特解). 另外一个可能遇到的应用,是, 在电路问题中, 结合欧姆定律和基尔霍夫定律暴力求解. 当然, 平时用的最多的是利用二阶行列式求解系数较为复杂的二元一次方程, 比如高考解析几何大题.
大概是对于wikipedia上概念, 结合个人认识的一些重述, 实在不是便于理解, 仅供复习:

[线性方程组的矩阵表示] A \times a = b. 矩阵乘法的一个应用是求解线性递推数列, 可以利用快速幂将复杂度降至O(logN).

[Rank(秩)] 线性无关的列的个数, 对于n元线性方程组, 仅当秩r = n时恰有一组解. r > n时无解, r < n时有无数组解.

[Gaussian Elimination(高斯消元法)] 通过不断消元, 使得方程组中每个方程的元的个数逐个递减, 等号左边呈三角形状, 自下而上代入消元即可. 具体操作时, 对于方程f_1(x_1, x_2, \cdots, x_n) = 0, f_2(x_1, x_2, \cdots, x_n) = 0, 令f_2(...) = f_1(...) + \lambda f_2(...). 手算的话, 消元方向很明确, 
对于N元线性方程组, 时间复杂度为O(N^3). 更好的做法是共轭梯度法, 时间复杂度为O(N^2). NOIp 2004的虫食算的AC算法可以使用Gaussion Elimination.

[Cramer's Rule(克莱姆法则)] 二阶行列式解二元一次方程组的理论依据. 
x_i = \frac{D_i}{D} (1 \leq i \leq n), D = det(A). D_i = det(A_i), 即把矩阵A的第i列换成矩阵b. 显然当D为0时线性方程组无解. 对于N元线性方程组, 时间复杂度为O(N!).

[Least Squares(最小二乘法)]参见选修2-3, 推导有一定技巧性, 但是我已经忘完了 >_<. 值得一提的是, 发现者是Gauss和Legendre, 存在发现先后的争论, Legendre的肖像居然和同名法国政治家的肖像混用了一个多世纪(参见维基), 不过发现者是如何的淡腾. = =|||

[Cross Product(叉积)] 可以通过向量矩阵和(i, j, k)的乘法计算, 通过右手定则判定方向. 比较简单的用途是计算立体几何中的法向量(口算), 以及安培力和洛伦磁力的方向确定.(不过高中教材中介绍左手定则判定方向, 分离了矢量的方向和大小).
考虑向量a, b, 存在|a \times b|^2 + |a \cdot b|^2 = |a|^2 \ cdot |b|^2, 这个结论被称作Lagrangian Identities(拉格朗日恒等式).


立体几何一个的应用在化学的晶体结构中, 比如正四面体CH_4, 键角为arccos{-1/3}. 如果尝试思考不同学科之间的联系, 会发现很多意想不到的结论, 往往可以通过其他学科浅显的结论, 来解释另一学科中难以求解的问题. 令人唏嘘的是, 一些原本浅显的联系并没有在高中教学中被体现. 也许可以尝试收集这样的联系, 何况生活原本是充满乐趣, 可我们却停留在了乏味而抽象的表层.

posted on 2012-05-28 17:00 Climber.pI 阅读(402) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理