|
0 / 0 / 0
Регистрация: 22.10.2009
Сообщений: 5
|
|||||||||||
Из Sin в Cos С++23.09.2010, 11:52. Показов 8286. Ответов 48
Метки нет (Все метки)
Здраствуйте, мне нужно написать програму которая за рядами Тейлора выводит косинус . Проблема заключаеться в том ,что если програма добавляет елементы сумы Тейлора то (как у меня было в разных интерпретациях цыкла) то после 30 елемента или 70 выдает -1,#IND , а значения аргумента будут вводится от 100. Порывшись на американский сайтах нашел програму которая почти идеально решает задачу для Синуса (она с циклом Тейлора только до 10, а значение начинают незначительно (0.0000001) расходиться когда вводимый аргумент больше 1 000 000. Я хотел переделать эту програму на Косинус, но увы, некоторые части кода вообще не понимаю зачем нужны, прошу помощи и обьяснений, Спасибо.
Вот сам код функций. Которую нашел, работает на ура, но это Синус.
Если кто не помнит... Ряд Тейлора для Синуса Ряд Тейлора для Косинуса
0
|
|||||||||||
| 23.09.2010, 11:52 | |
|
Ответы с готовыми решениями:
48
Построить массив по правилу: X[i]=(cos 1 +...+ cos i) / (sin 1 +...+ sin i) Функция sin(x+y)=sin(x)cos(y)+cos(x)sin(y) Sin() cos() |
|
1563 / 1041 / 94
Регистрация: 17.04.2009
Сообщений: 2,995
|
|||||||
| 23.09.2010, 13:46 | |||||||
1
|
|||||||
|
0 / 0 / 0
Регистрация: 22.10.2009
Сообщений: 5
|
||
| 23.09.2010, 14:07 [ТС] | ||
|
Спасибо KuKu я знаю что это , самое интересное зачем оно ? а значение косинуса всегда будет возле нуля, посмотри внимательно на код 1/... дело в том что при больших размерах вводимого значения аргумента выдает -1,#IND и я как бы незнаю что делать ...
0
|
||
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
| 23.09.2010, 14:30 | |
|
KuKu,
С чего бы это вдруг эти разложения для икс около 1? Для любого икса они работают. Добавлено через 1 минуту Возможно, вы спутали с арксинусом, арктангенсом и логарифмом, которые работают для икса от -1 до 1
1
|
|
|
0 / 0 / 0
Регистрация: 22.10.2009
Сообщений: 5
|
||
| 23.09.2010, 14:32 [ТС] | ||
|
возвртное значение палюбому будет от -1 до 1
0
|
||
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
| 23.09.2010, 14:35 | |
|
Область определения sin(x) (cos(x)): [-1; 1]
Область значений этих же функций: [-inf; inf] Мы говорим про область значений.
1
|
|
|
0 / 0 / 0
Регистрация: 22.10.2009
Сообщений: 5
|
||
| 23.09.2010, 14:40 [ТС] | ||
|
0
|
||
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
| 23.09.2010, 14:43 | |
|
Не понял, о каком "вращении" речь, до вы вообще видите разницу между двумя приведёнными разложениями? Вся разница заключается в том, что у синуса идут нечётные степени и факториал этих нечётных степеней в знаменателе, а у косинуса - чётные. Вся ваша задача - убрать +1 в коде вычисления синуча, чтобы получались чётные числа.
1
|
|
|
0 / 0 / 0
Регистрация: 22.10.2009
Сообщений: 5
|
||
| 23.09.2010, 14:50 [ТС] | ||
|
0
|
||
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
||||||
| 23.09.2010, 15:06 | ||||||
|
Вот программка, но с большими x она тоже не будет работать. Ведь скажем 100^2 - ещё нормально, 100^3 -тоже... А вот 100^20 - уже перебор, а с нормальной точностью нужно вычислить куда больше 10 членов.
0
|
||||||
| 23.09.2010, 15:11 | |
|
1
|
|
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
| 23.09.2010, 15:12 | |
|
Евгений М.,
Разумеется, прошу прощения)))
0
|
|
|
1563 / 1041 / 94
Регистрация: 17.04.2009
Сообщений: 2,995
|
||
| 23.09.2010, 17:31 | ||
|
0
|
||
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
| 23.09.2010, 17:34 | |
|
KuKu,
С 1 промахнулся, имел ввиду 0. Я правильно понял, вы имели ввиду, что аргумент (x) должен быть по модулю близок к нулю, иначе результат будет неверным? Если так, то это не правильно, этот ряд даёт верный результат для любого x. Если нет, то я чего-то не понимаю...
0
|
|
|
1563 / 1041 / 94
Регистрация: 17.04.2009
Сообщений: 2,995
|
|||
| 23.09.2010, 17:39 | |||
|
Добавлено через 1 минуту , ряд тейлора это разложение вокруг какой то точки, а не по всей области.Добавлено через 1 минуту silent_1991, чуть не засомневался Ряд Тейлора, посмтрите что такое ряд Тейлора.
0
|
|||
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
| 23.09.2010, 17:44 | |
|
Я не понимаю, при чём здесь нуль и его окрестность... Какое отношение это имеет к аргументу?
0
|
|
|
1563 / 1041 / 94
Регистрация: 17.04.2009
Сообщений: 2,995
|
|
| 23.09.2010, 17:51 | |
|
на изображение в первом посте есть разложение по которому считается значение косинуса, вот это ряд Макларена - ряд Тейлора именно вокруг нуля. Если попытаться понять почему именно такие члены разложения, то мы увидим что в них входят производные в нуле. Пройди по сслыке из вики, там есть общий вид ряда Тейлора.
0
|
|
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
| 23.09.2010, 17:54 | |
|
Я знаю, что это ряд Маклорена. И всё равно не понимаю связь окрестности точки, в которой дифференцируема функция, и аргумента, который мы подаём на вход. Это две разные точки.
Хорошо, ссылка из вики. Точка 0, о которой вы говорите - точка а в общей формуле. Подставьте в неё вместо а свой 0, увидите, что никого влияния на х это не оказало, мы до сих пор можем подставлять в формулу любой х и получать верный результат.
0
|
|
|
1563 / 1041 / 94
Регистрация: 17.04.2009
Сообщений: 2,995
|
|
| 23.09.2010, 18:04 | |
|
короче, на примере разложения ряда тейлора с одним членом sinx=f(a)+f'(x)(x-a)
т.е sinx=sin(0)+cos(0)*(x-0), это значит что sin(x) равен синус в нуле + произодная*приращение. Если мы берем x=10, то получается что sin(10)=синус в нуле + производная в нуле * 10, но производная у нас от 0 до 10 меняется - не константа. Добавлено через 57 секунд вообщем у меня объяснять математику сложно выходит, просто посмотри учебник матана
0
|
|
|
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
| 23.09.2010, 18:06 | |
|
Эм... Я относительно неплохо знаю матан. В том числе когда-то на отлично сдавал по нему экзамены))) Я не пойму никак, как тот факт, что мы раскладываем функцию в ряд Тейлора именно в окрестности нуля (или проще, в ряд Маклорена), повлияет на результат вычислений.
0
|
|
| 23.09.2010, 18:06 | |
|
Помогаю со студенческими работами здесь
20
y=sin(n*x)+cos(k*x)+ln(m*x)
Точность sin, cos Определить sin и cos Выражение с cos() и sin() Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2).
Унарный минус обозначается как !
*/
#include <iostream>
#include <stack>
#include <cctype>. . .
|
Камера 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. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|