15得票5回答
简化表达式的运算次数

假设我进行的计算只涉及加法和乘法:(a+b)*(c+d) 这可以用许多其他方法来完成,例如:a*(c+d) + b*(c+d) a*c + a*d + b*c + b*d 对于三个示例所需的加法和乘法操作次数分别为(2,1)(3,2)(3,4)。显然,如果目标是减少总操作次数,则第一个示例更优...

15得票4回答
如何在Mathematica中找到一个函数的r次导数,当r为符号时?

我有一个函数 f(t)=2/(2-t)。在不使用Mathematica的情况下,在t=0处得到r阶导数(即2^(-r)*r!)并不难。在Mathematica计算中,当r=4时,我可以像这样得到第r个导数:D[2/(2-t), {t, 4}]。但是当r是任意整数时,我该如何在Mathemati...

14得票2回答
在Sympy中,因式/收集表达式

我有一个类似于以下的方程: R₂⋅V₁ + R₃⋅V₁ - R₃⋅V₂ i₁ = ───────────────────── R₁⋅R₂ + R₁⋅R₃ + R₂⋅R₃ 我有一个定义好的公式,我想将其分解为仅包括单个变量(在这种情况下是V1和V2)的因子。 因此,我期望得到:...

14得票1回答
如何在SymPy中简化矩阵表达式?

考虑以下示例import sympy as sy n = sy.symbols('n') A = sy.MatrixSymbol("A",n,n) B = sy.MatrixSymbol("B",n,n) C = sy.MatrixSymbol("C",n,n) M = A.inverse()...

14得票2回答
在sympy中,是否有一种向量化的方式来计算梯度?

如何在sympy中计算多元函数的(符号)梯度? 显然我可以分别为每个变量计算导数,但是否有一种向量化操作可以实现这一点? 例如:m=sympy.Matrix(sympy.symbols('a b c d')) 现在我可以做 i=0..3 的情况:sympy.diff(np.sum(m*m.T)...

13得票5回答
SymPy中的非连续替换

我想使用[SymPy][1]在同一时间替换表达式中的多个项。我尝试了使用字典作为参数的[subs函数][2],但发现它是按顺序进行替换的。 In : a.subs({a:b, b:c}) Out: c 问题在于第一次替换的结果可以被第二次替换所替代,但这不是我想要的(对我的目的来说)。有...

12得票2回答
如何在SymPy中展开矩阵表达式?

在SymPy中,我正在尝试执行矩阵乘法并在此后进行展开。然而,SymPy似乎不支持矩阵表达式的展开。例如,以下是矩阵的四阶Runge-Kutta(RK4):from sympy import init_session init_session() from sympy import * A ...

12得票2回答
使用变量的抽象矩阵乘法

我知道Python有进行矩阵乘法的能力。 不幸的是,我不知道如何抽象地进行这个操作?也就是说,不是用具体的数字,而是用变量。 例如: M = ( 1 0 ) * ( 1 d ) ( a c ) ( 0 1 ) 有没有一种方式可以定义a、c和d,使得矩阵乘法可...

12得票2回答
Maxima:将矩阵转换为列表

我在Maxima中通过以下方式将列表转换为矩阵:DataL : [ [1,2], [2,4], [3,6], [4,8] ]; DataM: apply('matrix,DataL); 如何以另一种方式实现? 如何将给定的矩阵DataM转换为列表DataL?

11得票2回答
为什么SymPy计算平面交点时会出错?

我有一个奇怪的问题,SymPy中平面的交点可以处理简单的例子,但在坐标更复杂的情况下会失败。我发布了一个可行的简单示例和一个失败的示例。如Povray图像所示,我有三个平面通过多面体的顶点,并且垂直于通过相应顶点和中心的线。我想计算这些平面相交的点,但是SymPy给出的相交线是错误的。在图像中...