Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 28, средняя оценка - 4.71
Bloodykeeper
This party getting crazy!
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
#1

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

31.03.2010, 14:21. Просмотров 3625. Ответов 7
Метки нет (Все метки)

Написать и протестировать функцию, которая по натуральному k и вещественным x > 0, 0 < ε ≤ 10-6 вычисляет значение , используя следующую итерационную формулу:

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

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

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

Вычисление корня n-ой степени - C++
Сам обучаюсь C#, но дали решить С++ не понимаю помогите пожалуйста!!!

Извлечение корня n-степени - C++
Написал программу для вычисления корня n-cтепени #include&lt;iostream&gt; #include&lt;math.h&gt; using namespace std; int main() ...

Рекурсия: вычисление корня n-ой степени - C++
Вот условие А вот то, что я набросал... Прошу исправить... Зарание спасибо: #pragma argsused #include &lt;stdio.h&gt; #include &lt;conio.h&gt;...

Вычисление корня заданной степени - C++
Всем привет. Как сделать корень по основанию? Например:

Рекурсивное вычисление корня k-й степени - C++
Описать рекурсивную функцию RootK(X, K, N) вещественного типа, находящую приближенное значение корня K-й степени из числа X по формуле: ...

Извлечение корня н-ной степени из числа - C++
Здравствуйте!!! Тут задачка такая: нужно извлечь корень н-ной степени из числа методом деления отрезка пополам. Я реализовал такой код: ...

7
Bloodykeeper
This party getting crazy!
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
01.04.2010, 08:26  [ТС] #2
Помощь всё ещё требуется.

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

Добавлено через 10 часов 25 минут
ПОжалуйста, помогите решить, очень нужно! Блин, я такх функций ещё не встречал
0
Maxim Prishchepa
Эксперт С++
1923 / 1035 / 74
Регистрация: 29.03.2010
Сообщений: 3,167
01.04.2010, 10:12 #3
прошу простить, а что тут сложного то? условия вхождения и выхождения из цикла даны, формула то-же дана, берите да пешите.... я может бы и написал бы код, но иннет лимитирован и картинки смотреть - к сожалению не позволительная роскошь.
0
kazak
3048 / 2369 / 160
Регистрация: 11.03.2009
Сообщений: 5,436
Завершенные тесты: 1
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;
}
1
Bloodykeeper
This party getting crazy!
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 минут
Народ, так как можно исправить, подскажите плиз.
0
kazak
3048 / 2369 / 160
Регистрация: 11.03.2009
Сообщений: 5,436
Завершенные тесты: 1
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;
0
kazak
3048 / 2369 / 160
Регистрация: 11.03.2009
Сообщений: 5,436
Завершенные тесты: 1
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-ой степени
0
Изображения
 
Fatosha
1 / 1 / 2
Регистрация: 12.10.2013
Сообщений: 162
30.11.2013, 23:13 #8
Вышеупомянутый код не будет работать для значение 2е-30 при n == 2
0
30.11.2013, 23:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.11.2013, 23:13
Привет! Вот еще темы с ответами:

Рекурсия: приближенное значение корня k-й степени из числа - C++
Приветствую всех. Прошу кого нибудь, если не трудно, помочь немного с задачей на рекурсию, я её просто не понимаю, не пойму, как надо...

Приближенное вычисление корня n-ой степени, в чем ошибка? - C++
#include &lt;cmath&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt; main() { float x,x1,e,y,y1,p;y1=1; cout &lt;&lt; &quot;Введите степень точности...

Нахождения корня р степени из а используя реккурентное выражение - C++
Здравствуйте. На лабораторной попался такой вариант: http://savepic.su/1642399m.png Вот собственно набросал код: #include...

Вычисление корня n степени оформить в виде функции - C++
Вычислить z=x\sqrt{y}+\frac{\sqrt{y}}{ctgx}+tx(x+y) при x=2.12, y=5 Вычисление корня n степени оформить в виде функции


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru