Нахождение наименьшего значения в питоне

1

Я ищу некоторую помощь в создании кода для следующего в python

Изображение 174551

Я попытался ответить, но я не совсем уверен, как закончить его. Вот что я до сих пор

import numpy as np
import math
from numpy import cos
x=10**(-p)
funct = (1-math.cos(x))/x

Поэтому я определил свою функцию, которую я пытаюсь вычислить, я считаю, что я сделал это правильно с

funct = (1-math.cos(x))/x

Я сказал, что x должен быть с

x=10**(-p)

Но как добавить код, чтобы найти наименьшее значение p, которое не имеет правильной значащей цифры при x = 10 ** -p при использовании стандартной двойной точности?

Нужно ли мне как-то использовать

print(min(funct))

Ищете помощь в этом исполнении, спасибо!

Изменение: новый код

import numpy as np
import math
for p in range(10): 
    x=10.0**-p; 
    result = (1-np.cos(x))/x
    print (p)
    print (result)
    Test = 2*np.sin(x/2)**2/x
    print (p)
    print(Test)

дает результаты:

0
0.459697694132
0
0.459697694132
1
0.0499583472197
1
0.0499583472197
2
0.00499995833347
2
0.00499995833347
3
0.000499999958326
3
0.000499999958333
4
4.99999996961e-05
4
4.99999999583e-05
5
5.0000004137e-06
5
4.99999999996e-06
6
5.00044450291e-07
6
5e-07
7
4.99600361081e-08
7
5e-08
8
0.0
8
5e-09
9
0.0
9
5e-10
  • 3
    Вы далеко Python - это не математика - = оператор - это присваивание в python, для определения функций вам нужно ключевое слово def и т. Д. Другими словами, прежде чем пытаться его использовать, вы должны сначала изучить Python . Вы не можете написать код на Python только с математическими знаниями. Вам нужно прочитать руководство по питону.
  • 0
    @nosklo хорошо, спасибо за совет, просто пытаюсь выучить питон впервые
Показать ещё 4 комментария
Теги:
numerical-methods

1 ответ

0
Лучший ответ

С петлей

for p in range(15): x=10.0**-p; print p, x, (1-np.cos(x))/x, 2*np.sin(x/2)**2/x

Я получаю значения для выражения и теоретически эквивалентного выражения

p   x       (1-cos(x))/x       2*sin²(x/2)/x

0  1.0    0.459697694132     0.459697694132
1  0.1    0.0499583472197    0.0499583472197
2  0.01   0.00499995833347   0.00499995833347
3  0.001  0.000499999958326  0.000499999958333
4  0.0001 4.99999996961e-05  4.99999999583e-05
5  1e-05  5.0000004137e-06   4.99999999996e-06
6  1e-06  5.00044450291e-07  5e-07
7  1e-07  4.99600361081e-08  5e-08
8  1e-08  0.0                5e-09
9  1e-09  0.0                5e-10
10 1e-10  0.0                5e-11
11 1e-11  0.0                5e-12
12 1e-12  0.0                5e-13
13 1e-13  0.0                5e-14
14 1e-14  0.0                5e-15

но я не знаю, как интерпретировать задачу, чтобы дать правильный ответ. Может быть p = 5 или может быть p = 8.

  • 0
    почему ты использовал грех? получить эквивалентный ответ?
  • 0
    и как я могу отредактировать это в своем коде, чтобы получить ваш вывод?
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню