sqlor/aidocs/version.md
2025-10-05 11:24:24 +08:00

2.8 KiB
Raw Blame History

技术文档:fixed_sor.py

概述

本模块 fixed_sor.py 是一个用于解决数值计算中迭代方法如逐次超松弛法Successive Over-Relaxation, SOR相关问题的 Python 脚本。该版本主要修复了之前版本中与 C 函数调用相关的 Bug提升了代码的稳定性与兼容性。


版本信息

  • 当前版本0.1.3
  • 更新内容
    • 修复了与底层 C 函数交互时出现的 Bug。
    • 增强了异常处理机制,避免因类型不匹配或内存访问错误导致程序崩溃。
    • 提高了与外部 C 扩展模块的兼容性。

⚠️ 注意:此修复主要影响使用 C 扩展进行高性能计算的用户。纯 Python 用户通常不受影响,但仍建议升级以获得更好的稳定性。


安装与依赖

依赖项

  • Python >= 3.7
  • 可选Cython 或 ctypes 支持(若使用 C 扩展)

安装方式

# 通过 pip 安装(假设已发布到 PyPI
pip install fixed-sor==0.1.3

# 或本地安装
python setup.py install

使用示例

import fixed_sor

# 示例:求解线性方程组 Ax = b 使用 SOR 方法
A = [[4, -1, 0],
     [-1, 4, -1],
     [0, -1, 4]]
b = [15, 10, 15]

x = fixed_sor.solve(A, b, omega=1.2, max_iter=1000, tol=1e-6)
print("解为:", x)

API 参考

solve(A, b, omega=1.0, max_iter=1000, tol=1e-6)

使用 SOR 方法求解线性方程组 $Ax = b$。

参数:

参数 类型 说明
A list/list of lists 或 numpy.ndarray 系数矩阵(必须为方阵且对角占优或正定)
b list 或 numpy.ndarray 常数向量
omega float 松弛因子,默认为 1.0(即 Gauss-Seidel 方法)
max_iter int 最大迭代次数,默认 1000
tol float 收敛容差,默认 1e-6

返回值:

  • list:解向量 x

异常:

  • ValueError:输入矩阵维度不匹配或不满足 SOR 方法前提条件。
  • RuntimeError:迭代未在最大次数内收敛。

更新日志Changelog

v0.1.3 — 2025-04-05

  • 修复C 函数接口中的内存访问越界问题
  • 修复数据类型转换错误Python 到 C 的 double 数组传递)
  • 🛠️ 优化:提升与 NumPy 数组的兼容性
  • 📚 更新文档

v0.1.2 — 2024-XX-XX

  • 添加基本 SOR 实现
  • 支持列表和 NumPy 输入

开发与贡献

欢迎提交 Issue 和 Pull Request。请确保测试覆盖所有修改路径特别是涉及 C 接口的部分。

GitHub 仓库:https://github.com/username/fixed-sor


许可证

MIT License


备注本模块名称“fixed”强调其主要目标是修复先前版本中的关键缺陷后续版本将逐步增强功能与性能。