【python】求解线性方程

唯一解(矩阵法、solve函数)

{ 3 x + y = 9 x + 2 y = 8 \left\{ \begin{matrix} 3x+y=9 \\ x+2y=8 \end{matrix} \right. {3x+y=9x+2y=8
A x = b Ax=b Ax=b,其中 A = [ 3 1 1 2 ] A=\left[\begin{matrix} 3 & 1 \\ 1 &2 \end{matrix}\right] A=[3112], B = [ 9 8 ] B=\left[\begin{matrix} 9 \\ 8 \end{matrix}\right] B=[98],则 x = A − 1 b = [ 2 3 ] x = A^{-1}b=\left[\begin{matrix} 2 \\ 3 \end{matrix}\right] x=A−1b=[23]

可以使用np.linalg.inv(a) @ b或者np.linalg.solve(a, b)求解

python 复制代码
import numpy as np
a = np.array([[3, 1], [1, 2]])
b = np.array([[9] ,[8]])
x1 = np.linalg.inv(a) @ b  #第一种解法
#上面语句中@表示矩阵乘法
x2 = np.linalg.solve(a, b) #第二种解法

print(a);print(b)
print(np.linalg.inv(a))
print(x1); print(x2)

最小二乘解(方程数>未知数)

具体解释线性方程组的最小二乘解和最小范数解 - 杨晓东的文章 - 知乎
{ 3 x + y = 9 x + 2 y = 8 x + y = 6 \left\{ \begin{matrix} 3x+y=9 \\ x+2y=8 \\x+y=6 \end{matrix} \right. ⎩ ⎨ ⎧3x+y=9x+2y=8x+y=6

使用广义逆矩阵np.linalg.pinv(a) @ b,结果最小二乘解:[2,3.1667]

python 复制代码
import numpy as np
a = np.array([[3, 1], [1, 2], [1, 1]])
b = np.array([9, 8, 6])
x = np.linalg.pinv(a) @ b  
print(np.round(x, 4))
相关推荐
段一凡-华北理工大学17 分钟前
【高炉炼铁领域炉温监测、预警、调控智能体设计与应用】~系列文章08:多模态数据融合:让数据更聪明
人工智能·python·高炉炼铁·ai赋能·工业智能体·高炉炉温
万粉变现经纪人20 分钟前
如何解决 pip install llama-cpp-python 报错 未安装 CMake/Ninja 或 CPU 不支持 AVX 问题
开发语言·python·开源·aigc·pip·ai写作·llama
清风明月一壶酒32 分钟前
OpenClaw自动处理Word文档全流程
开发语言·c#·word
其实防守也摸鱼37 分钟前
CTF密码学综合教学指南--第五章
开发语言·网络·笔记·python·安全·网络安全·密码学
callJJ2 小时前
Spring Data Redis 两种编程模型详解:同步 vs 响应式
java·spring boot·redis·python·spring
小郑加油2 小时前
python学习Day12:pandas安装与实际运用
开发语言·python·学习
AC赳赳老秦2 小时前
投标合规提效:用 OpenClaw 实现标书 / 合同自动审核、关键词校验、格式优化,降低废标风险
开发语言·前端·python·eclipse·emacs·deepseek·openclaw
.柒宇.2 小时前
AI掘金头条项目-K8s部署实战教程
python·云原生·容器·kubernetes·fastapi
KuaCpp2 小时前
C++面向对象(速过复习版)
开发语言·c++
观北海2 小时前
从 Sim2Sim 到 Sim2Real:以 ONNX 为核心的机器人策略实机落地全指南
python·机器人