Riemann sum python

问题描述 投票:-1回答:2

我需要制作一个python函数,在其中我可以用riemann和找到表面。这就是我所拥有的,并且在老师的反馈下,我非常接近它,但是它并不能像我想要的那样正常工作。老师还说了关于try-catch的信息,这意味着我需要编写一个额外的代码来控制答案(如果我没记错的话),要找到曲面,请询问uppper和下限以及在该线下想要多少个矩形就像在程序中一样。

import math

def f(x): return math.sqrt(x) #Function in the left!

a = int(input("What is the lowerlimit?:"))
b = int(input("What is the upperlimit?:"))
n = int(input("How many division intervals do you want?:"))

dx = (b-a)/n;

xi = 0;
sum = 0;
for i in range(n):
xi = xi+dx;
sum = sum + f(xi)
print("The surface under the line is ", (sum*dx))

#einde programma!
python riemann
2个回答
0
投票

如@Sadap所说,您可以尝试这样的事情:

while True:
  try:
    a = int(input("What is the lowerlimit?:"))
    b = int(input("What is the upperlimit?:"))
    n = int(input("How many division intervals do you want?:"))
    break
  except ValueError:
    print("Oops!  That was no valid number.  Try again...")

您也可以查看此link,以其他方式制作黎曼和。有关try-catch的文档,可以输入此link


0
投票

上面的代码有一些问题:

1] 最重要,您实际上没有计算出正确的答案,因为您假设下限等于0。应该写xi=0而不是写xi=a! (请注意,如果要使用下端,将使用每个矩形的远端来计算heightm,并且不想更改任何其他代码,则需要编写xi = a - dx,因此从a开始(话虽如此,我不会这样做,但这是在不进行任何更改的情况下解决此问题的方法。)

2)验证错误:您应该检查一些事情。 abn的值是有效整数。此外,还应检查n不等于0,否则在尝试除以时会产生错误。您还应该确保n不为负,因为这将导致您获得错误的值(按原样使用代码)。

© www.soinside.com 2019 - 2024. All rights reserved.