【发布时间】:2018-05-26 12:53:45
【问题描述】:
好的。所以我尝试使用一个 3x3 系数矩阵(名为 c)和一个从属值数组(名为 d)来获得 3 个线性方程的解。 我的代码:
import numpy as np
import sympy as sym
Ax, Ay, By, M0, F, q, L, L1, L2 = sym.symbols('A_x, A_y, B_y, M_0, F, q, L, L_1, L_2')
p = {'L': 6, 'L_1': 4, 'L_2': 2, 'q': 2000, 'F': 1000, 'M_0': 4000}
eq_Fx = sym.Eq(Ax - F, 0)
eq_MB = sym.Eq(-Ay*L + q*L1*(L1/2) + M0, 0)
eq_MA = sym.Eq(By*L + M0 - L1*q*(L1/2), 0)
c = np.array([[1, 0, 0],
[0, p['L'], 0],
[0, 0, p['L']]])
d = np.array([F,
(p['q']*p['L_1']**2)/2 + p['M_0'],
(p['q']*p['L_1']**2)/2 - p['M_0']])
result = np.linalg.solve(c, d)
print(result)
它引发了这个我不明白的奇怪错误:
TypeError: 没有找到匹配指定签名和转换的循环,用于 ufunc solve1。
如果有人知道这意味着什么或我如何纠正它,我将不胜感激。
【问题讨论】:
-
请不要在 SO 中发布代码图片(如果您想知道原因,请阅读 this link)
-
好的,抱歉。我正在解决这个系统: c = np.array([[1, 0, 0], [0, p['L'], 0], [0, 0, p['L']]]) d = np.array([F, (p['q']*p['L_1']**2)/2 + p['M_0'], (p['q']*p['L_1']* *2)/2 - p['M_0']]) 其中 c 是系数矩阵,d 是我的相关贵重物品数组。这些是我正在使用的数据: p = {'L': 6, 'L_1': 4, 'L_2': 2, 'q': 2000, 'F': 1000, 'M_0': 4000} 所以我尝试了以这种方式解决系统: result = np.linalg.solve(c, d) print(result) 但它不起作用。 ://
-
编辑您的问题并将您的代码发布到其中
-
我做到了。谢谢。 (我是 Stack 新手,抱歉)。
-
Error solving Matrix equation with numpy 的可能重复项。
F是<class 'sympy.core.symbol.Symbol'>类型,而在d中定义的数组的其他元素是float类型。也许d = np.array([F, ...]应该是d = np.array([p['F'], ...]?