用 python 求解方程
Solving an equation with python
我在求解这个方程时遇到了问题:
ra = (1.5 * (ca - (ra/2))/(1 + 0.8 * (ca - (ra/2))))
我必须输入变量“ca”作为浮点数,然后 python 必须找到“ra[=20=”的值]
提前致谢
您在 "ra" 的定义中使用了 "ra"。你应该通过求解这个方程来去掉右边的 "ra" s(你可以使用不同的工具,比如 wolframalpha 或 matlab 或者你的纸和笔)。
您需要找到一种方法将您的值输入 ca
并断言它是一个浮点数。
input
在命令行应用程序(在终端中工作)中经常用于此类目的,但如果您使用的是较早的 [=33],则需要查看 raw_input
=] 解释器。
类似于:
ca = input('Please type a float: ')
这应该可以帮助您入门。您需要断言 ca
是一个浮点数(查看 assert
作为处理这种情况的可能选项)。
然后你应该创建一个以 ca
作为参数并输出 ra
的函数
类似
def calculate(n):
...
return x
你可以用 sympy
库做这样的事情。
http://docs.sympy.org/dev/index.html
>>> from sympy import *
>>> from sympy.solvers import solve
>>> ca, ra = symbols("ca ra")
>>> eq = -ra + (1.5 * (ca - (ra/2))/(1 + 0.8 * (ca - (ra/2))))
>>> print(eq)
-ra + (1.5*ca - 0.75*ra)/(0.8*ca - 0.4*ra + 1)
>>> solutions = solve(eq, ra) #solve equation for ra
>>> print(solutions)
[ca - 0.0625*sqrt(256.0*ca**2 + 160.0*ca + 1225.0) + 2.1875,
ca + 0.0625*sqrt(256.0*ca**2 + 160.0*ca + 1225.0) + 2.1875]
>>> values = [s.replace(ca, 5) for s in solutions] #get solutions for ca=5
[1.45076257791068, 12.9242374220893]
显然,您需要从用户那里获得 ca
的数字,而不仅仅是求解 ca=5
.
我在求解这个方程时遇到了问题:
ra = (1.5 * (ca - (ra/2))/(1 + 0.8 * (ca - (ra/2))))
我必须输入变量“ca”作为浮点数,然后 python 必须找到“ra[=20=”的值]
提前致谢
您在 "ra" 的定义中使用了 "ra"。你应该通过求解这个方程来去掉右边的 "ra" s(你可以使用不同的工具,比如 wolframalpha 或 matlab 或者你的纸和笔)。
您需要找到一种方法将您的值输入 ca
并断言它是一个浮点数。
input
在命令行应用程序(在终端中工作)中经常用于此类目的,但如果您使用的是较早的 [=33],则需要查看 raw_input
=] 解释器。
类似于:
ca = input('Please type a float: ')
这应该可以帮助您入门。您需要断言 ca
是一个浮点数(查看 assert
作为处理这种情况的可能选项)。
然后你应该创建一个以 ca
作为参数并输出 ra
类似
def calculate(n):
...
return x
你可以用 sympy
库做这样的事情。
http://docs.sympy.org/dev/index.html
>>> from sympy import *
>>> from sympy.solvers import solve
>>> ca, ra = symbols("ca ra")
>>> eq = -ra + (1.5 * (ca - (ra/2))/(1 + 0.8 * (ca - (ra/2))))
>>> print(eq)
-ra + (1.5*ca - 0.75*ra)/(0.8*ca - 0.4*ra + 1)
>>> solutions = solve(eq, ra) #solve equation for ra
>>> print(solutions)
[ca - 0.0625*sqrt(256.0*ca**2 + 160.0*ca + 1225.0) + 2.1875,
ca + 0.0625*sqrt(256.0*ca**2 + 160.0*ca + 1225.0) + 2.1875]
>>> values = [s.replace(ca, 5) for s in solutions] #get solutions for ca=5
[1.45076257791068, 12.9242374220893]
显然,您需要从用户那里获得 ca
的数字,而不仅仅是求解 ca=5
.