Форум программистов, компьютерный форум CyberForum.ru

Функция корня степени - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 28, средняя оценка - 4.71
Bloodykeeper
This party getting crazy!
 Аватар для Bloodykeeper
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
31.03.2010, 14:21     Функция корня степени #1
Написать и протестировать функцию, которая по натуральному k и вещественным x > 0, 0 < ε ≤ 10-6 вычисляет значение , используя следующую итерационную формулу:

(формула во вложении).

В качестве результата берётся то значение yi+1 , для которого |yi+1 - yi| < ε.

Пожалуйста, помогите сделать, пообещал другу помочь, а сам не справляюсь((
Миниатюры
Функция корня степени  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.03.2010, 14:21     Функция корня степени
Посмотрите здесь:

Извлечение корня n-степени C++
C++ Нахождения корня р степени из а используя реккурентное выражение
C++ Разработать алгоритм вычисления корня n-ой степени из комплексного числа
Извлечение корня н-ной степени из числа C++
C++ Описать рекурсивную функцию вещественного типа, находящую приближенное значение корня K-й степени из числа X по формуле:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Bloodykeeper
This party getting crazy!
 Аватар для Bloodykeeper
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
01.04.2010, 08:26  [ТС]     Функция корня степени #2
Помощь всё ещё требуется.

Добавлено через 3 часа 43 минуты
Вопрос ещё не решён.

Добавлено через 10 часов 25 минут
ПОжалуйста, помогите решить, очень нужно! Блин, я такх функций ещё не встречал
Maxim Prishchepa
Эксперт С++
 Аватар для Maxim Prishchepa
1761 / 984 / 60
Регистрация: 29.03.2010
Сообщений: 2,975
01.04.2010, 10:12     Функция корня степени #3
прошу простить, а что тут сложного то? условия вхождения и выхождения из цикла даны, формула то-же дана, берите да пешите.... я может бы и написал бы код, но иннет лимитирован и картинки смотреть - к сожалению не позволительная роскошь.
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
01.04.2010, 11:01     Функция корня степени #4
C
1
2
3
4
5
6
7
8
9
10
11
12
13
double fun(double x, double k)
{
   double eps = 0.000001;
   double prev_y, next_y;
 
   next_y = x;
   do
   {
      prev_y = next_y;
      next_y = prev_y + ((x/pow(prev_y, k-1)) - prev_y)/k;
   }while ((next_y - prev_y) > eps);
   return next_y;
}
Bloodykeeper
This party getting crazy!
 Аватар для Bloodykeeper
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
01.04.2010, 17:34  [ТС]     Функция корня степени #5
блин....допустил ошибку в условии. Там где вычисляет значение...вычисляет значение корня степени к из икса по интерационной формуле. Как исправить скажите пожалуйста, чтобы вычислить это значение? я пока что вот так склеял:
C
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
#include <stdio.h>
#include <math.h>
 
double fun(double x, double k);
 
int main()
{
    float x, k, y;
 
    printf("Enter x:\n");
    scanf("%f", &x);
    printf("Enter pow of sqrt k:\n");
    scanf("%f", &k);
    y = fun(x, k);
    printf("sqrt = %f" "\n", y);
    getchar();
    getchar();
    return 0;
}
 
double fun(double x, double k)
{
   double eps = 0.000001;
   double prev_y, next_y;
 
   next_y = x;
   do
   {
      prev_y = next_y;
      next_y = prev_y + ((x/pow(prev_y, k-1)) - prev_y)/k;
   }
   while ((next_y - prev_y) > eps);
   return next_y;
}
Спасибо всем кто поможет исправить, и вычислить правильно выражение.

Добавлено через 3 часа 55 минут
Народ, так как можно исправить, подскажите плиз.
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
02.04.2010, 04:16     Функция корня степени #6
Попробуй такую формулу
C
1
prev_y = next_y;    next_y = (prev_y * (k - 1) + x/pow(prev_y, k-1))/k;
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
02.04.2010, 12:03     Функция корня степени #7
Окончательный вариант
C
1
2
3
4
5
6
7
8
9
10
11
12
13
double Nth_root(double number, double power)
{
   double eps = 0.000001;
   double prev_y, next_y;
 
   next_y = number;
   do
   {
      prev_y = next_y;
      next_y = (prev_y*(power - 1) + number / pow(prev_y, power- 1))/power;
   }while (fabs(next_y - prev_y) > eps);
   return next_y;
}
правильная формула для нахождения корня n-ой степени
Изображения
 
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.11.2013, 23:13     Функция корня степени
Еще ссылки по теме:

Вычисление корня n-ой степени C++
Рекурсивное вычисление корня k-й степени C++
C++ Вычисление корня n степени оформить в виде функции

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

Или воспользуйтесь поиском по форуму:
Fatosha
0 / 0 / 0
Регистрация: 12.10.2013
Сообщений: 153
30.11.2013, 23:13     Функция корня степени #8
Вышеупомянутый код не будет работать для значение 2е-30 при n == 2
Yandex
Объявления
30.11.2013, 23:13     Функция корня степени
Ответ Создать тему
Опции темы

Текущее время: 07:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru