python - 使用 lambdify 将涉及向量转置的表达式转换为数值函数

标签 python vector sympy

我用 python 编写了一个脚本,它使用 sympy 来计算几个向量/矩阵公式。但是,当我尝试将它们转换为可以使用 sympy.lambdify 评估的函数时,我得到了一个

SyntaxError : EOL while scanning string literal

下面是一些有同样错误的代码,这样你就明白我的意思了。

import sympy
x = sympy.MatrixSymbol('x',3,1)
f = sympy.lambdify(x, x.T*x)

因此,语法错误与表达式“x'.dot(x)”以及“.T”到“.”的转换有关。

我如何解决这个问题以正确定义上述 lambdify 中的 f?

最佳答案

找到了一个变通办法,虽然不是最干净的解决方案......但它有效。

使用 sympy 中的 implemented_function() 方法来定义您的函数。在此处阅读完整文档:http://docs.sympy.org/latest/modules/utilities/lambdify.html

代码如下:

import sympy
import numpy as np
from sympy.utilities.lambdify import implemented_function


x = sympy.MatrixSymbol('x',3,1)

f = implemented_function(sympy.Function('f'), lambda x: x.T*x)

lam_f= sympy.lambdify(x, f(x))

希望这能解决您的问题:)

关于python - 使用 lambdify 将涉及向量转置的表达式转换为数值函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36730931/

相关文章:

python - 使用 pandas 加载过滤后的 .tda 文件的最简单方法是什么?

python - 我应该多久检查一次过度拟合?我如何自动检测/采取行动?

C++11 : cin doesn't wait for user input and ends the loop

Python argparse : how to handle MacOSX `-psn` parameter

java - 需要建议 : A programmatic way for creating vector graphics with heavy usage of text

C++ 模板集合类型

python - 在一张图片中结合 sympy 和 matplotlib 图

python - 使用 sympy 集成指数函数

python - 使用 sympy 提取嵌套分数的分子和分母

python不会将两位数计为最高值