2015-11-24 49 views
-6

的公式我有解决这个方程的一个问题:解决与Python

ra = (1.5 * (ca - (ra/2))/(1 + 0.8 * (ca - (ra/2)))) 

我必须输入变量“CA”为float,然后蟒蛇必须找到我“RA的价值“

在此先感谢

+4

OK。那么你想让我们做什么?为你做作业吗? – MattDMo

+1

这就是大多数人在这里问他们的第一个问题想要... – Galax

+0

使用像WolframAlpha.com,枫树,八度,Matlab不同的工具 – furas

回答

2

你可以做这样的事情与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。 OK。

1

您在”ra“的定义中使用”ra“。你应该通过求解这个方程式去除右边的“ra”(你可以使用不同的工具,如wolframalpha或matlab或你的纸和笔)。

0

您需要找到一种方法让您的价值输入到ca并断言它是一个浮动。

input经常用于命令行应用程序(在终端中工作)的这种用途,但如果您使用的是早期的Python解释器,则需要查看raw_input

类似:

ca = input('Please type a float: ')

这应该让你开始。您需要声明ca是一个浮点数(检出assert作为处理这种情况的可能选项)。

那么你应该创建一个函数,它接受ca作为参数和输出ra

喜欢的东西

def calculate(n): 
    ... 
    return x 
+0

为了把输入变成一个浮点数,你需要使用float()来转换它。 'input()'只在Python 3中返回一个字符串。 – MattDMo

+0

我知道如何使用python中的函数,文件和其他东西,像(dicts,sets,lists),但我真的不知道如何解决这个问题:/ – IEMSlovenia