金融数学和量化分析中,线性代数是最基础也最强大的数学工具之一。无论是投资组合优化、风险分析还是衍生品定价,都离不开线性代数和线性方程组求解。本文作为Python数值分析系列第一篇,将介绍核心数值方法并通过Python实现展示其在金融中的应用。

1. 线性方程组的求解技术

1.1 什么是线性方程组?

线性方程组可以简洁地表示为:$Ax = b$,其中A是系数矩阵,x是我们要求的未知向量,b是常数向量。

金融应用场景

1.2 高斯消元法:最直观的解法

高斯消元法是最基本的求解方法,通过行变换将方程组转化为等价但更容易求解的形式。

核心思想:把复杂方程组转化为简单的上三角形式,然后逐个回代求解。

import numpy as np

def gaussian_elimination(A, b):
    """高斯消元法求解线性方程组"""
    # 创建增广矩阵
    n = len(b)
    aug_matrix = np.column_stack((A, b))

    # 前向消元
    for i in range(n):
        # 找主元(避免除以接近零的数)
        max_row = i + np.argmax(abs(aug_matrix[i:, i]))
        if max_row != i:
            aug_matrix[[i, max_row]] = aug_matrix[[max_row, i]]

        # 消元过程
        for j in range(i+1, n):
            factor = aug_matrix[j, i] / aug_matrix[i, i]
            aug_matrix[j, i:] -= factor * aug_matrix[i, i:]

    # 回代过程
    x = np.zeros(n)
    for i in range(n-1, -1, -1):
        x[i] = (aug_matrix[i, -1] - np.sum(aug_matrix[i, i+1:n] * x[i+1:])) / aug_matrix[i, i]

    return x

实际应用:假设我们需要求解满足特定风险和收益目标的投资组合权重,可以构建相应的线性方程组求解。

1.3 LU分解:应对多个常数项

LU分解是高斯消元法的变体,将系数矩阵A分解为下三角矩阵L和上三角矩阵U的乘积:$A = LU$。

优点