Во время цикла (Python 3.7.4) - PullRequest
       4

Во время цикла (Python 3.7.4)

0 голосов
/ 24 сентября 2019

Я - новичок в программировании на Python, и у меня возникла проблема с пониманием того, как заставить Python работать с этим циклом While для данного мне уравнения.

Проблема гласит:

a ^ x можно оценить по следующим сериям: a^x = 1 + x*ln(a) + ((x*ln(a))^2/2! + ((x*ln(a))^3/3! + ... + ((x*ln(a))^n/n!

a = 1,52

x = 3,14

Продолжить сериюпока Абсолютный Срок не станет меньше 10 ^ -6 или пока вы не вычислили 100 терминов.

Выведите вашу серию ^ x, количество использованных терминов (n)

То, что я попробовал на Python 3.7.4:

from math import *

outFile = open("HW3out.txt", "a")
print("Problem 4 soln",file = outFile)

maxt = 100
tol = 1e-6
x = 3.14
a = 1.52
z = (x*log*a)

term = z
n = 1
sum = z

while abs(term) < tol and n < maxt:
   n = n+1
   term = (x*log*a)**n/n
   sum = sum + term

a**x = sum
diff = a**x - a

print("a^x", a**x, " Correct Value ", a, file = outFile)
print("x ", x, "n ", n, "term ", term, "diff ", diff, file = outFile)

outFile.close()`

Iзнаю, что я сделал что-то не так с моим кодом, но я не понимаю, что.Я использовал пример моего профессора с другим уравнением, которое он сделал в классе, но я все еще не мог понять, что я делаю неправильно.

1 Ответ

0 голосов
/ 24 сентября 2019

После просмотра отзывов я обнаружил, что одной из проблем была моя

a**x = sum

, которую я удалил, и кто-то другой предложил мне использовать term = term*z**n/n вместо term = (x*log*a)**n/n Это то, что мой новыйфайл выглядит следующим образом:

from math import *

outFile = open("HW3out.txt", "a")
print("Problem 4 soln",file = outFile)

maxt = 100
tol = 1e-6
x = 3.14
a = 1.52
z = (x*log(a))

term = z
n = 1
sum = z

while abs(term) < tol and n < maxt:
   n = n+1
   term = term*z**n/n
   sum = sum + term


diff = a**x - a

print("a^x", a**x, " Correct Value ", a, file = outFile)
print("x ", x, "n ", n, "term ", term, "diff ", diff, file = outFile)


outFile.close()

Я получил от моего outFile

Problem 4 soln
a^x 3.7238215950300577  Correct Value  1.52
x  3.14 n  1 term  1.314750451454701 diff  2.2038215950300577

, который я считаю правильным, так как программа наконец-то работает без ошибок

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...