python中sympy的用法,如何使用python中的sympy来计算表达式

I need a calculate below expression using sympy in python?

exp = '(a+b)*40-(c-a)/0.5'

In a=6, b=5, c=2 this case how to calculate expression using sympy in python? Please help me.

解决方案

The documentation is here: http://docs.sympy.org/. You should really read it!

To "calculate" your expression, write something like this:

from sympy import Symbol

a = Symbol("a")

b = Symbol("b")

c = Symbol("c")

exp = (a+b)*40-(c-a)/0.5

And that's it. If you meant something else by "calculate", you could also solve exp = 0:

sympy.solve(exp)

> {a: [0.0476190476190476*c - 0.952380952380952*b],

> b: [0.05*c - 1.05*a],

> c: [20.0*b + 21.0*a]}

For everything else, you should really read the docs. Maybe start here: http://docs.sympy.org/0.7.1/tutorial.html#tutorial

UPDATE: since you added the values for a, b, c to the question, you can add this to the solution:

exp.evalf(subs={a:6, b:5, c:2})

好的,我可以帮你回答这个问题。 首先,需要在C++使用pybind11库来调用Python代码。pybind11是一个开源的库,可以方便地将C++和Python代码结合起来。它提供了一个简单的接口,可以将C++数据类型转换为Python数据类型,并在C++代码使用Python模块。 接下来,需要在Python使用sympy库来计算表达式sympy是一个Python库,可以进行符号计算,并支持各种数学操作,如求导、积分、解方程等等。 在Python,可以使用以下代码计算表达式: ```python import sympy x = sympy.Symbol('x') expr = sympy.parse_expr('x**2 + 2*x + 1') result = expr.subs(x, 3) print(result) ``` 这段代码,首先定义了一个符号变量x,然后使用parse_expr函数将字符串转换为表达式。最后,使用subs函数将x的值替换为3,并打印结果。 最后,在C++调用Python代码,可以使用以下代码: ```c++ #include <pybind11/pybind11.h> namespace py = pybind11; int main() { py::module sympy = py::module::import("sympy"); py::object x = sympy.attr("Symbol")("x"); py::object expr = sympy.attr("parse_expr")("x**2 + 2*x + 1"); py::object result = expr.attr("subs")(x, 3); std::cout << py::str(result) << std::endl; return 0; } ``` 这段代码,首先导入sympy模块,然后定义符号变量x和表达式expr。最后,使用subs函数计算表达式的值,并将结果转换为字符串打印出来。 这就是使用pybind11调用Python sympy计算表达式的基本方法。希望对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值