Программа почти работает
Вложений: 3
На фотографиях задание.
вот код: Код:
#include <math.h> Не пойму почему после 35-ого элемента счет через ряд сбивается, и начинают вываливаться большие числа. |
Цитата:
|
Буду благодарен. Программирование начал изучать только в универе. Очень тяжко получается:)Мне не совсем к спеху) Буду очень благодарен!:)
|
Вложений: 1
Ну вот, нарисовал. Не без внутренней борьбы, поскольку полностью разделяю мнение, что все эти переходы по меткам (GoTo) подлежат неукоснительному изгнанию, чего Вам на будущее советую. Дурной стиль и "лапша" в итоге. Ну ладно, это лирика. Вот что получилось:
Код:
Var Цитата:
|
Попробуйте использовать х от 1 до 100
|
Вложений: 1
Я вот про это
|
Вложений: 1
Цитата:
Вложение 106579 Причем никакими ухищрениями "это" не одолевается. А пробовал я многое: переход на рекуррентный способ вычисления слагаемых (тогда можно исключить вычисление факториала в явном виде), исключения периодов косинуса, так, чтобы привести аргумент в диапазон -2π..2π - тщетно! Похоже, тут мы просто упёрлись в ограничения разрядных сеток или, скорее, адресации цифровых ЭВМ, то есть, хотя формально разложение функции Cos(x+b) работает для |x|<∞, реально начиная с нескольких десятков компьютер выдает всякую чушь. Подождем, может быть профессионалы подскажут что-нибудь в этом плане: я-то любитель-самоучка. А пока просто ограничьте диапазон аргументов, скажем, x+b<10. |
Я так понимаю идей никаких?(
|
Вложений: 2
Цитата:
Суть проблемы в том, что следует представлять себе ответы на вопросы о применимости разложения функций в ряд Тейлора и об условиях достоверности аппроксимации значения функции конечной суммой членов такого ряда. Дело в том, что разложение в ряд Тейлора ведется всегда в окрестности некоей центральной точки, и чем ближе аргумент к этой точке, тем точнее приближение суммой конечного числа членов ряда, или тем меньше членов ряда нужно учесть, чтобы достичь требуемой точности. Если же мы уйдем далеко от центра, то тут возможны "сюрпризы". Рассмотрим наш случай. Здесь разложение ведется в окрестности х=0. И действительно, для небольших значений аргумента, в пределах одного-двух десятков, всё нормально. А вот дальше... Дальше, для больших аргументов, начинается серьёзная конкуренция между степенной функцией в числителе и факториалом в знаменателе, благодаря чему сначала модули слагаемых членов ряда в зависимости от номера начинают возрастать до огромных (порядка 10^20-10^30, ^ - возведение в степень) значений, а затем спадают, выходя практически на "плато". То же самое происходит и с суммой, только она "застывает" на значениях порядка 10^10-10^20, что мы и видим. Возникает вопрос - а почему же тогда в справочниках область применимости разложения указана, как |x|<∞? Всё правильно. Если Вы вообразите ЭВМ с бесконечноёмкой разрядной сеткой и просуммируете миллионы-миллиарды-триллионы-квинтильоны и т.д. членов ряда, то в конце концов придёте к нужному значению Вашего косинуса. Итог: повторяю - ограничьте диапазон значений аргумента. Это всё. Приложенные файлы иллюстрируют вышеприведенный анализ и содержат расчеты для малых и больших аргументов (значения - в первой строке файла). Колонка А (вторая) - это значения члена ряда под номером n. |
Вложений: 1
А нельзя ли факториал задать без функции??
Скажем на основе вот этого примера: вариант 2 |
Часовой пояс GMT +4, время: 13:51. |
Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.