Python

Лабораторная работа програмирование 2

Вычислить значение суммы, при необходимости используя функции
модуля math (например, math.faktorial(i)).
Задано действительное число x, целое значение n и формула
 # Вторая:
import math
def f(x, n):
y, p, s, q = - x * x, x, x, 0.0
while q < n:
q += 1.0
p *= y / q
s += p / (2.0 * q + 1.0)
return s
const = math.sqrt(math.pi) * 0.5
while True:
x, n = input('x n: ').split()
x, n = float(x), float(n)
y = f(x, n)
print(y, ', error =', y - const * math.erf(x))
Это ряд для такой вот функции:
∫[0;x]exp(-x²)dx=½•√π•erf(x).
Вот с ней, с её значениями, и можно сравнивать получающиеся суммы:При увеличивающихся по модулю аргументах х значение n надо брать всё больше и больше, а точность вычислений при этом всё уменьшается и уменьшается.
Без сравнений и обёртки в бесконечный цикл будет так:
 def f(x, n): 
y, p, s, q = - x * x, x, x, 0.0
while q < n:
q += 1.0; p *= y / q; s += p / (2.0 * q + 1.0)
return s
x, n = input('x n: ').split()
x,n=float(x),float(n); print(f(x, n))
А вообще тут можно и без функции обойтись.
Первую не хочу решать.
Динмухамед Аскарулы
Динмухамед Аскарулы
66 572
Лучший ответ
Вычислить значение суммы, при необходимости используя функции
модуля math (например, math.faktorial(i))
Обойдёмся ;-)
 s, f, r, n = 0, 1, 0, int(input('n = ')) 
for i in range(1, n + 1): f *= i; s += i; r += f / s
print(r)
Вторую не хочу решать.
Msv100972
Msv100972
93 624