【问题标题】:Extract solution values from a matrix Linear Equation and plot solution line从矩阵线性方程中提取解值并绘制解线
【发布时间】:2018-02-06 15:15:54
【问题描述】:

如何提取矩阵的值并创建一个带有 for 循环的方程来绘制一条线?本质上,下图是我试图做一个简单的线性方程:

根据我的数据,我正在使用以下代码:

import numpy as np

A = np.matrix([[10,1],[45,1]])
B = np.matrix([[180],[140]])

A_inverse = np.linalg.inv(A)

X = A_inverse * B

X

哪些输出:

matrix([[  -1.14285714],
        [ 191.42857143]])

最终我想做的是用矩阵方程的输出绘制一条线。希望在某种 for 循环中,这就是我认为方程式的样子:

线图 = -1.14285714 * T + 191.42857143

我可以组成一些数据,但是我如何在上面的等式中使用它,其中 T 可能是 Random_Number ...?下面的(m*x)+b 部分只是一个想法,我需要修改和实施以希望使其工作..

# Create a df with a date-time index with data every 6 hours
rng = pd.date_range('1/5/2018 00:00', periods=5, freq='6H')
df = pd.DataFrame({'Random_Number':randint(1, 10, 5)}, index=rng)

lineplot = []
for T in Ts:
    lineplot.append((m*x)+b)

【问题讨论】:

  • 你的问题的核心似乎是“我如何扫描一系列x值/解决方案的范围”,或者如你所说: “我可以编造一些数据,但是如何在上面的等式中使用它,其中 T 可能是 Random_Number ...?”
  • 谢谢,我会修改帖子

标签: python python-3.x numpy math matrix


【解决方案1】:

不确定你想用 Pandas 实现什么,但让我们总结一下与数学相关的部分 - 你正在尝试解方程:y = ax + b,你已经找到了ab。现在您需要为x 的不同值找到y 的值。您的随机T 实际上是等式中的x。您可以使用一些循环来计算 y 的不同值 T 但您的代码会相当慢。如果你使用点积,那么你不需要任何循环来计算y

import numpy as np
import matplotlib.pyplot as plt

A = np.matrix([[10,1],[45,1]])
B = np.matrix([[180],[140]])
A_inverse = np.linalg.inv(A)
X = A_inverse * B

T = np.arange(10) + (np.random.rand(10)-0.5) # some "random" T
line = np.vstack((T, np.ones(T.shape))).transpose().dot(X)

plt.plot(T, line, 'r*')

【讨论】:

  • 谢谢你给我看这个。你能给我一个额外的提示吗?最终,我试图使用这个方程来计算蒸汽锅炉系统的设定点。设定点基于室外空气温度(上面的 10 和 45),锅炉将根据室外温度保持在 180 到 140 之间。它是一个简单的线性重置...我是 python 新手,希望不求助于 Excel,你能帮我建立一个单独的“计算设定点”熊猫数据框吗?我有几个月的室外温度数据,我希望建立一个计算的设定点(用数学计算)然后绘制
  • 希望这是有道理的,你帮助我的数学是这个过程的一部分!感谢您的宝贵时间
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-08
  • 2017-08-26
相关资源
最近更新 更多