【发布时间】:2017-02-09 20:13:59
【问题描述】:
我知道如何解决 Ax=b,但是如果 b 依赖于 x 怎么办?参见图片 E3 = 函数(E4)。我想这是迭代完成的..这样的问题叫什么?我用什么方法来解决?
我正在尝试解决以下系统:
给出以下方程组:
导致以下矩阵:
更新: 根据要求提供更多信息:
A = ([
[-1, 0, 0, 0, 0],
[1, -1, -1, 0, 0],
[0, 1, 0, -1, 0],
[0, 0, 1, 1, -1],
[0, 0, 1, 0, 0]
])
b = [-10, 0, 1, 1, 3]
print(np.linalg.solve(A, b))
-> [ 10. 7. 3. 6. 8.]
这可行,但如果:
b = [-10, 0, 1, 1, some_function(x[3])]
所以 E3 = some_function(E4),因此 E3 依赖于 E4,由 'some_function' 定义(非线性)
【问题讨论】:
-
您的问题缺少很多信息(流程图中的箭头是什么意思?什么是f?)。你能以 numpy 数组的形式给出一些示例输入吗?在我看来,它不像线性系统 (
Ax = b)。 -
@ali_m 我更新了问题,希望它说清楚
-
我猜它不是一个线性系统,所以它叫什么。我不是想得到解决方案,我想了解它是什么样的问题
-
some_function是一个控制器,将 E3 设置为 0 或设置为取决于 E4 的值的设定值 -
您应该通过提供
some_function的定义将您的代码转换为complete, verifiable example。另外,为什么您的问题同时标记为matlab 和numpy?
标签: matlab numpy linear-algebra solver