我在解决这个等式时遇到了问题:
ra = (1.5 * (ca - (ra/2))/(1 + 0.8 * (ca - (ra/2))))
我必须输入变量“ ca ”作为浮点数,然后python必须找到“ ra ”的值
提前致谢
答案 0 :(得分:2)
您可以使用{{ hostvars['localhost']['app_git_sha1'] }}
库执行此类操作。
http://docs.sympy.org/dev/index.html
sympy
显然,您需要从用户那里获取>>> 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
求解。
答案 1 :(得分:1)
你在“ra”的定义中使用“ra”。你应该通过解决这个等式摆脱右侧的“ra”(你可以使用不同的工具,如wolframalpha或matlab或你的纸和笔)。
答案 2 :(得分:0)
您需要找到一种方法将您的值输入ca
并声明它是一个浮点数。
input
经常在命令行应用程序(在终端中工作)中用于此类目的,但如果您使用的是早期的Python解释器,则需要查看raw_input
。
类似的东西:
ca = input('Please type a float: ')
这应该让你开始。您需要断言ca
是一个浮点数(请查看assert
作为处理这种情况的可能选项。)
然后你应该创建一个以ca
为参数并输出ra
像
这样的东西def calculate(n):
...
return x