Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Python 3.8代数表达式始终返回0.00_Python 3.x_Math - Fatal编程技术网

Python 3.x Python 3.8代数表达式始终返回0.00

Python 3.x Python 3.8代数表达式始终返回0.00,python-3.x,math,Python 3.x,Math,下面的代码在返回E1=1.24时一直返回E1=0.00。大多数值都是浮点数。分母比分子小,但根据我的理解,这对Python3没有什么区别,所以我不知道为什么它不能给出正确的答案。我非常感谢您的帮助,提前谢谢 import math a1 = 11.88 period1 = 8.28 b = 19.7884 d = 1.73 g = 32.2 V = 675 Te = .28 Omega1 = 1/period1 w1 = V*Omega1 x1 = 1-(1/math.sqrt(1+w1**2

下面的代码在返回E1=1.24时一直返回E1=0.00。大多数值都是浮点数。分母比分子小,但根据我的理解,这对Python3没有什么区别,所以我不知道为什么它不能给出正确的答案。我非常感谢您的帮助,提前谢谢

import math

a1 = 11.88
period1 = 8.28
b = 19.7884
d = 1.73
g = 32.2
V = 675
Te = .28
Omega1 = 1/period1
w1 = V*Omega1
x1 = 1-(1/math.sqrt(1+w1**2*Te**2))
E1 = (1+(b*(d+x1*a1))/(25*d*(d+2*x1*a1)))/(1+((w1**2*a1**2*(1-x1))/2*V**2)**2)

就像上面jasonharper的评论一样,试着用括号括起分母。请记住,该语言通过按优先顺序,然后从左到右对某些表达式或公式求值。当你这样做的时候

formula = x/y*z
这变成x/y,然后结果是*z,而不是x/(y*z)。 因此,在该部分周围加上括号可以解决问题:

E1 = (1+(b*(d+x1*a1))/(25*d*(d+2*x1*a1)))/(1+((w1**2*a1**2*(1-x1))/(2*V**2))**2)

就像上面jasonharper的评论一样,试着用括号括起分母。请记住,该语言通过按优先顺序,然后从左到右对某些表达式或公式求值。当你这样做的时候

formula = x/y*z
这变成x/y,然后结果是*z,而不是x/(y*z)。 因此,在该部分周围加上括号可以解决问题:

E1 = (1+(b*(d+x1*a1))/(25*d*(d+2*x1*a1)))/(1+((w1**2*a1**2*(1-x1))/(2*V**2))**2)

在最后一行的
2*V**2
部分用括号括起来的结果约为1.24,因此我认为您在这一点上误译了公式。我投票关闭此公式,因为@jasonharper的评论解决了问题
/(2*V**2))**2) 
在最后一行的
2*V**2
部分加上括号,得出的结果约为1.24,因此我认为您在这一点上误译了公式。我投票结束这一点,因为@jasonharper的评论解决了问题
/(2*V**2))**2