首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >求解等于零的方程

求解等于零的方程
EN

Stack Overflow用户
提问于 2020-02-24 10:33:29
回答 2查看 7.1K关注 0票数 0

我如何将一个方程等效为零,然后求解它(目的是消除分母)。

代码语言:javascript
复制
y=(x**2-2)/3*x

在Matlab中,这一工作是:

solution= solve(y==0,x)

但不是在蟒蛇。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-02-24 15:15:15

如果你只想消除分母,那么你可以把它分成分子和分母。如果方程已经以分数的形式出现,而你想要分子

代码语言:javascript
复制
>>> y=(x**2-2)/(3*x); y  # note parentheses around denom, is that what you meant?
(x**2 - 2)/(3*x)
>>> numer(_)
x**2 - 2

但是,如果方程以和的形式出现,那么您可以将它放在分母上,也许还可以用因子来识别分子因子,这些因子必须为零才能解决这个方程:

代码语言:javascript
复制
>>> y + x/(x**2+2)
x/(x**2 + 2) + (x**2 - 2)/(3*x)
>>> n, d = _.as_numer_denom(); (n, d)
(3*x**2 + (x**2 - 2)*(x**2 + 2), 3*x*(x**2 + 2))
>>> factor(n)
(x - 1)*(x + 1)*(x**2 + 4)
>>> solve(_)
[-1, 1, -2*I, 2*I]

但是,在尝试求解之前,不必考虑分子的因素。但有时我发现它在处理特定方程时很有用。

如果你有一个方程的例子,在其他地方得到快速解,但不是在SymPy中,请张贴它。

票数 0
EN

Stack Overflow用户

发布于 2020-02-24 10:42:56

代码语言:javascript
复制
from sympy import *

x, y = symbols('x y') 

y=(x**2-2)/3*x

# set the expression, y, equal to 0 and solve
result = solve(Eq(y, 0))

print(result)

另一种解决办法是:

代码语言:javascript
复制
from sympy import *

x, y = symbols('x y')

equation = Eq(y, (x**2-2)/3*x)

# Use sympy.subs() method
result = solve(equation.subs(y, 0))

print(result)

编辑(更简单):

代码语言:javascript
复制
from sympy import *

x, y = symbols('x y') 

y=(x**2-2)/3*x

# solve the expression y (by default set equal to 0)
result = solve(y)

print(result)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60373970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档