18.08.2018, 10:15 [+3 UTC]
в нашей команде: 2 915 чел. | участники онлайн: 2 (рекорд: 21)

:: РЕГИСТРАЦИЯ

:: задать вопрос

:: все разделы

:: правила

:: новости

:: участники

:: доска почёта

:: форум

:: блоги

:: поиск

:: статистика

:: наш журнал

:: наши встречи

:: наша галерея

:: отзывы о нас

:: поддержка

:: руководство

Версия системы:
7.47 (16.04.2018)

Общие новости:
13.04.2018, 10:33

Форум:
16.08.2018, 11:45

Последний вопрос:
17.08.2018, 14:32

Последний ответ:
12.08.2018, 20:20

Последняя рассылка:
18.08.2018, 00:45

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
20.08.2012, 14:42 »
Вячеслав Шинкаренко
Спасибо. Вроде разобрался, с Вашей помощью. [вопрос № 186552, ответ № 271433]
01.08.2010, 20:11 »
Dimon4ik
Спасибо. Драйвер удалось откатить на старый. Тот действительно был не рабочий. DirectX установил с диска с игрой. Но там видимо не та версия. Сейчас качаю DirectX 9.0с - 104 МБ. Установлю и посмотрим. Спасибо за ответ. smile [вопрос № 179640, ответ № 262710]

РАЗДЕЛ • .NET Framework / C# / Java

Создание программ на программной платформе .NET Framework и языках С# и Java.

[администратор рассылки: Коцюрбенко Алексей aka Жерар (Мастер-Эксперт)]

Лучшие эксперты в этом разделе

Зенченко Константин Николаевич
Статус: Модератор
Рейтинг: 287
CradleA
Статус: Профессор
Рейтинг: 67
solowey
Статус: Студент
Рейтинг: 65

Перейти к консультации №:
 

Консультация онлайн # 193312
Раздел: • .NET Framework / C# / Java
Автор вопроса: dasha.savina2012 (Посетитель)
Отправлена: 24.05.2018, 21:51
Поступило ответов: 1

Уважаемые эксперты! Пожалуйста, ответьте на вопрос:
Не используя стандартные функции (за исключением abs), вычислить с точностью eps>0:
y=ln(1+x)=x-x^2/2+x^3/3-...+((-1)^(n-1))*x^n+...(|x|<1);
Считать, что требуемая точность достигнута, если очередное слагаемое по модулю меньше eps, - все последующие слагаемые можно уже не учитывать.
Программа есть, но не знаю как сделать рекурентную формулу для расчета.
Помогите, пожалуйста.

Приложение:

Состояние: Консультация закрыта

Ответ # 276550 от solowey (Студент)

Здравствуйте, dasha.savina2012!
вот вариант рекурсивной функции

        /// <summary>
        ////Функция вычисления ln(1+x)=x-x^2/2+x^3/3-...+((-1)^(n-1))*x^n/n+...
        /// </summary>
        /// <param name="eps">вычислить с точностью eps>0</param>
        /// <param name="x">введеное значение Х</param>
        /// <param name="n">число n</param>
        /// <param name="minus">значение -1</param>
        /// <param name="res">результат текущего цикла</param>
        /// <returns>результат вычисления</returns>
        static double Func(double eps, double x, int n, int minus, double res)
        {
            double temp = 1.0;
            for (int i = 0; i < n; i++)
            {
                temp *= x;
            }
            temp /= n;
            temp *= minus;

            if (Math.Abs(temp) < eps)
                return temp + res;

            temp += res;
            return Func(eps, x, ++n, minus * -1, temp);
        }

вызов будет так:
Func(eps, x, 1, 1, 0);


Консультировал: solowey (Студент)
Дата отправки: 27.05.2018, 13:35

5
нет комментария
-----
Дата оценки: 28.05.2018, 18:25

Рейтинг ответа:

+1

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Мини-форум консультации № 193312

solowey
Студент

ID: 400484

# 1

 +1 
 
= общий = | 25.05.2018, 12:05 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Добрый день,
вот вариант рекурсивной функции

        /// <summary>
        ////Функция вычисления ln(1+x)=x-x^2/2+x^3/3-...+((-1)^(n-1))*x^n/n+...
        /// </summary>
        /// <param name="eps">вычислить с точностью eps>0</param>
        /// <param name="x">введеное значение Х</param>
        /// <param name="n">число n</param>
        /// <param name="minus">значение -1</param>
        /// <param name="res">результат текущего цикла</param>
        /// <returns>результат вычисления</returns>
        static double Func(double eps, double x, int n, int minus, double res)
        {
            double temp = 1.0;
            for (int i = 0; i < n; i++)
            {
                temp *= x;
            }
            temp /= n;
            temp *= minus;

            if (Math.Abs(temp) < eps)
                return temp + res;

            temp += res;
            return Func(eps, x, ++n, minus * -1, temp);
        }

вызов будет так:
Func(eps, x, 1, 1, 0);

dasha.savina2012
Посетитель

ID: 402095

# 2

= общий = | 26.05.2018, 21:17 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
solowey:

© Цитата: solowey
Спасибо за помощь

 

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.14819 сек.

© 2001-2018, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.47 от 16.04.2018