Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 19.12.2020
Сообщений: 14

Как сделать, чтобы для синуса и числа пи подбиралась своя точность вычисления

21.03.2021, 00:38. Показов 1592. Ответов 1

Студворк — интернет-сервис помощи студентам
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import math
def is_digit(string):
    if string.isdigit():
        return True
    else:
        try:
            float(string)
            return True
        except ValueError:
            return False
a=input('нажмите <Enter>')
while a not in ['нет','Нет','N','n','н','Н','no','No']:
    print("Приветствую, странник!")
    func=input('Считаем sin(x) (1) или ты хочешь подсчитать число Pi(2)? : ')
    while func not in ['1','2']:
        func=input('У тебя только два выбора , Нео. 1 или 2? ')
    b=input('Введите точность вычисления [0;14]')
    while b not in ['1','2','3','4','5','6','7','8','9','10','11','12','13','14']:
        b=input('Ладно ,давай ещё раз. Выбери от 1 до 14! ')
    xx=input('Введите значение аргумента x ')
    while not is_digit(xx):
        xx=input('Нам нужно число, Лебовски! ')
    x = float(xx)
    b=int(b)
    func=int(func)
    if func==1:
        print('sin(x)=x-x^3/3!+x^5/5!-x^7/7!+...')
 
        for i in range (1,b+1):
            b=b/10
        i=1
        j=1
        a1=-1/x
        k=1
        itog=0.0
        t1=(-1*a1*x*x)/(j*k)
        while not math.fabs(t1)<b:
            t1=(-1*a1*x*x)/(j*k)
            a1=t1
            itog=itog+t1
            j=j+2
            k=j-1
        print('Согласно ряду Тейлора наш результат будет:',itog)
        print('Поразмыслив пару тысячных секунд,я могу сказать , что стандартная функция будет такой:', math.sin(x))
    else:
        print("Введите точность измерений [1,5]")
        ee=input('')
        while ee not in['1','2','3','4','5']:
            ee=input('Опа! Я погляжу бунтарство в моде, но тут такое не прокатит. Выбирай от 1 до 5!')
        e=int(ee)
        ex=1.0
        for i in range(1,e+1):
            ex=ex*0.1
        f=1
        a=1
        n=1
        while abs(a)>ex:
            a=a*n
            n=n+2
            a1=((-1)*a)/n
            f=f+a1
            a=a1
        print('Согласно ряду Тейлора наш результат будет:',4*f)
        print('Поразмыслив пару тысячных секунд,я могу сказать , что стандартная функция будет такой:',math.pi)
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.03.2021, 00:38
Ответы с готовыми решениями:

Как сделать чтобы у каждого поста выводилась своя картинка?
Я новичок в Wordpress, поэтому просьба сильно не пинать:) В Wordpress (тема Simple Travel) присутствует такой раздел как Banners (очень...

Как сделать так, чтобы в каждой надстройке вызывалась своя форма?
Имеются две надстройки, в каждой есть форма About. Если в любой из них вызвать на показ эту форму (About.Show), то показывается только...

Как сделать чтобы знак менялся в паскале для вычисления суммы ряда?
как зделать чтобы знак менялся в паскале для вычисления суммы ряды например 1 - 2 + 3 -4 + 5 и т.д. подскажите как менять знак ???

1
 Аватар для codcw
815 / 527 / 214
Регистрация: 22.12.2017
Сообщений: 1,495
21.03.2021, 04:24
Лучший ответ Сообщение было отмечено s1f0n4ik как решение

Решение

s1f0n4ik, слегка разобрал, однако сами вычисления проверять не стал - мало того что не разбираюсь особо в рядах, так ещё и в этом коде чёрт ногу сломит

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import math #окей
def is_digit(string): #почему? если ради проверки на вещественное число, назвали бы is_float
    if string.isdigit(): #зачем? можно сразу try писать
        return True
    else:
        try:
            float(string) #не стоит зарезервированные имена использовать в качестве переменных
            return True
        except ValueError:
            return False
a=input('нажмите <Enter>') #допустим
while a not in ['нет','Нет','N','n','н','Н','no','No']: #зачем?? а если зачем-то такую конструкцию и добавлять, то как о ней узнает пользователь?
    print("Приветствую, странник!")
    func=input('Считаем sin(x) (1) или ты хочешь подсчитать число Pi(2)? : ')
    while func not in ['1','2']:
        func=input('У тебя только два выбора , Нео. 1 или 2? ')
    b=input('Введите точность вычисления [0;14]') #квадратные скобки значат включительно, далее последовательность идёт от 1 0_о (тут ;)
    while b not in ['1','2','3','4','5','6','7','8','9','10','11','12','13','14']: #https://docs.python.org/3/library/stdtypes.html?highlight=range#ranges
        b=input('Ладно ,давай ещё раз. Выбери от 1 до 14! ')
    xx=input('Введите значение аргумента x ')
    while not is_digit(xx):
        xx=input('Нам нужно число, Лебовски! ')
    x = float(xx) #лишняя переменная
    b=int(b)
    func=int(func)
    if func==1:
        print('sin(x)=x-x^3/3!+x^5/5!-x^7/7!+...')
 
        for i in range (1,b+1):
            b=b/10
        i=1
        j=1
        a1=-1/x
        k=1
        itog=0.0
        t1=(-1*a1*x*x)/(j*k)
        while not math.fabs(t1)<b:
            t1=(-1*a1*x*x)/(j*k)
            a1=t1 #думаю лишнее
            itog=itog+t1
            j=j+2
            k=j-1
        print('Согласно ряду Тейлора наш результат будет:',itog)
        print('Поразмыслив пару тысячных секунд,я могу сказать , что стандартная функция будет такой:', math.sin(x)) #вместо "пары тысячных" можно и реальное время выполнения измерить ^-^
    else:
        print("Введите точность измерений [1,5]") #лишняя строчка (а тут уже ,)
        ee=input('') #лишние кавычки
        while ee not in['1','2','3','4','5']:
            ee=input('Опа! Я погляжу бунтарство в моде, но тут такое не прокатит. Выбирай от 1 до 5!')
        e=int(ee) #лишняя переменная
        ex=1.0
        for i in range(1,e+1): #цикл для умножения 1 на 0.1? 10**-e  ~~
            ex=ex*0.1 
        f=1
        a=1
        n=1
        while abs(a)>ex:
            a=a*n #*=
            n=n+2 #+=
            a1=((-1)*a)/n
            f=f+a1
            a=a1
        print('Согласно ряду Тейлора наш результат будет:',4*f)
        print('Поразмыслив пару тысячных секунд,я могу сказать , что стандартная функция будет такой:',math.pi)
 
#имена переменных крайне желательно пофиксить, хотя-бы немного более осмысленный вид им придать
#ну а также пробелы, пробелы, пробелы (1+1=2 -> 1 + 1 = 2; [1,2,3] -> [1, 2, 3])
а точность вычисления у вас уже подбирается во второй функции, просто добавить её в первую
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.03.2021, 04:24
Помогаю со студенческими работами здесь

Даны положительные числа a,x,n (n-точность вычисления) в последовательности y1,y2,y3.yn
Даны положительные числа a,x,z (z-точность вычисления) в последовательности y1,y2,y3..yn образованной по закону: y0=a, yi=1/2(yi-1+x/yi-1)...

Точность синуса при счёте с рядом Тейлора
Подскажите, пожалуйста, что считается точностью синуса при счёте с помощью ряда Тейлора? Имею ввиду как правильно считать делать...

Формула для вычисления синуса
Как современные калькуляторы вычисляют синусы? Должен быть какой-то принцип. Может есть какая-нибудь формулка. Почему sin(30) градусов...

Создать модуль для вычисления гиперболического синуса
Добрый вечер, нужно создать модуль для вычисления sh(x) и +с его помощью вычислить значение выражения:...

Программа для вычисления синуса по ряду Маклорена
Добрый день всем. Нашел программу, которая вычисляет синус по ряду Маклорена, однако, если вводить значение x&gt;30, то программа выводит...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru