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

Как выразить в С корень n-степени. - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 219, средняя оценка - 4.60
Al21
0 / 0 / 0
Регистрация: 03.09.2010
Сообщений: 4
03.09.2010, 23:14     Как выразить в С корень n-степени. #1
Как выразить в С корень n-степени.
Подскажите.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
04.09.2010, 15:47     Как выразить в С корень n-степени. #21
rik_nel, первое число - это число, корень которого мы хотим посчитать, второе - степень корня: http://www.cyberforum.ru/cgi-bin/latex.cgi?\sqrt[n]{x}. В данном случае - квадратный корень из двух. Так что все правильно
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
bambino
 Аватар для bambino
193 / 19 / 4
Регистрация: 05.08.2010
Сообщений: 229
04.09.2010, 15:52     Как выразить в С корень n-степени. #22
Значит pow() ето аналог sqrt() ?
Nameless One
Эксперт С++
 Аватар для Nameless One
5753 / 3402 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
04.09.2010, 15:58     Как выразить в С корень n-степени. #23
Цитата Сообщение от rik_nel Посмотреть сообщение
Значит pow() ето аналог sqrt() ?
pow - это числа возведение в произвольную степень. sqrt - это подсчет квадратного корня. Так что твое предположение неверно.
Если тебе не понятно, как из возведения в степень мы получили корень n-ной степени, напомню тебе такое математическое тождество:
http://www.cyberforum.ru/cgi-bin/latex.cgi?\sqrt[n]{x} \equiv {x}^{\frac{1}{n}},
т.е. корень n-ной степени из x эквивалентен x в степени http://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{1}{n}. pow(x, n) возводить x в степень n, pow(x, 1/n) возводит x в степень http://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{1}{n}, т.е. считает корень n-ной степени от x.
bambino
 Аватар для bambino
193 / 19 / 4
Регистрация: 05.08.2010
Сообщений: 229
04.09.2010, 16:18     Как выразить в С корень n-степени. #24
Nameless One
Спасибо,доступно обяснил!
P.S. Я не зразу поня,потомучто ми еще в школи не учили такое тождество.
Antikuba
0 / 0 / 0
Регистрация: 25.08.2013
Сообщений: 9
01.05.2014, 20:28     Как выразить в С корень n-степени. #25
Подниму старую тему. Не могу вычислить кубический корень из логарифма. Код как в 14м посте темы.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <cmath>
#include <cstdlib>
 
using namespace std;
 
int main()
{
    double x,n;
 
    cout << "Input x: ";
    cin >> x;
    cout << "Input n: ";
    cin >> n;
    x=log10(x);
    x = pow(x, 1.0 / n);
 
    cout << "Result: " << x << endl;
    system("pause");
 
    return 0;
}
Выдает значение nan. Хотел бы понять причину.
IrineK
Заблокирован
01.05.2014, 20:34     Как выразить в С корень n-степени. #26
Цитата Сообщение от Antikuba Посмотреть сообщение
Хотел бы понять причину.
Что вводите в качестве х?
Antikuba
0 / 0 / 0
Регистрация: 25.08.2013
Сообщений: 9
01.05.2014, 20:41     Как выразить в С корень n-степени. #27
Дробное число меньше единицы. В частности 0.95.
Судя по всему ошибка не из-за степени возникает,а в функции логарифма.
IrineK
Заблокирован
01.05.2014, 20:46     Как выразить в С корень n-степени. #28
Читаем pow

If the base is finite negative and the exponent is finite but not an integer value, it causes a domain error.
Добавлено через 1 минуту
Вам нужен кубический корень именно из отрицательного числа?
Antikuba
0 / 0 / 0
Регистрация: 25.08.2013
Сообщений: 9
01.05.2014, 20:50     Как выразить в С корень n-степени. #29
Ну то что ошибка в функции возникает я понял. А как быть то?
После матлаба все так странно...
IrineK
Заблокирован
01.05.2014, 20:55     Как выразить в С корень n-степени. #30
Повторяю:
Цитата Сообщение от IrineK Посмотреть сообщение
Вам нужен кубический корень именно из отрицательного числа?
Какие еще корни из отрицательных чисел вы собираетесь извлекать?
Четный корень из отрицательного числа - это комплексное число, не действительное.
Действительный нечетный корень - возможен.

Цитата Сообщение от Antikuba Посмотреть сообщение
После матлаба
ОДЗ для извлечения корней везде одинаковое: положительная база.
Antikuba
0 / 0 / 0
Регистрация: 25.08.2013
Сообщений: 9
01.05.2014, 21:03     Как выразить в С корень n-степени. #31
Ну в данном случае корень как раз и был кубический.
Не могу понять,почему число 0.95,которое является положительным,вызывает ошибку. И каким образом тогда работать с числами,меньше единицы.
IrineK
Заблокирован
01.05.2014, 21:04     Как выразить в С корень n-степени. #32
Цитата Сообщение от Antikuba Посмотреть сообщение
число 0.95,которое является положительным
логарифм от этого числа отрицательный.
Antikuba
0 / 0 / 0
Регистрация: 25.08.2013
Сообщений: 9
01.05.2014, 21:09     Как выразить в С корень n-степени. #33
Ну,в данном случае корень как раз и был кубическим.
Не могу понять, почему число 0.95, которе является положительным,вызывает подобную ошибку. И каким образом тогда работать с числами,из интервала (0,1).
IrineK
Заблокирован
01.05.2014, 21:12     Как выразить в С корень n-степени. #34
Antikuba,
похоже мне придется все повторять по два раза (может быть и больше?).

Логарифм от 0,95 - число отрицательное.
Вы берет корень от логарифма, который является числом отрицательным.
Antikuba
0 / 0 / 0
Регистрация: 25.08.2013
Сообщений: 9
01.05.2014, 21:16     Как выразить в С корень n-степени. #35
Логарифм 0.95, вычисленный через функцию log10 также имеет значение nan.
А логарифм действительно отрицательный,как-то я упустил из виду. Каким образом тогда вычислять корни нечетной степени из отрицательных чисел? Искать другие библиотеки?
IrineK
Заблокирован
01.05.2014, 21:17     Как выразить в С корень n-степени. #36
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <cmath>
using namespace std;
 
 
int main()
{   double x,n;
 
    cout << "Input x: ";
    cin >> x;
    cout << "Input n: ";
    cin >> n;
    x = log10(x);
    if (x > 0)
        x = pow(x, 1.0 / n);
    else
        x = -pow (fabs(x), 1./n);
        
    cout << "Result: " << x << endl;
    system("pause");
 
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.05.2014, 21:21     Как выразить в С корень n-степени.
Еще ссылки по теме:

Как записать корень в степени C++
Корень n-й степени C++
C++ Взять корень из степени большого числа

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

Или воспользуйтесь поиском по форуму:
Antikuba
0 / 0 / 0
Регистрация: 25.08.2013
Сообщений: 9
01.05.2014, 21:21     Как выразить в С корень n-степени. #37
Премного благодарен, буду вникать.
Нда, когда решение на виду, стыдно становится за собственную глупость.
Yandex
Объявления
01.05.2014, 21:21     Как выразить в С корень n-степени.
Ответ Создать тему
Опции темы

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