выделить действительное число в комплексном числе в Java - PullRequest
0 голосов
/ 08 июня 2011

Есть формула, которую мне нужно использовать для моего приложения: здесь

часть Sqrt (5-25) может быть положительной или отрицательной, и, конечно, когда отрицательная, мы получили мнимую часть, которую не может обработать Java.

Я искал сложный класс, чтобы справиться с этим, но нашел только базовую операцию (+ - * /).

как я могу решить это в Java, зная, что мне нужно только получить реальную часть? (Мнимые не имеют значения)

Я точно, что я развиваю на платформе Android

(я пишу в стеке, потому что это касается приложения в Java, но если оно принадлежит math.se, скажите мне)

Ответы [ 5 ]

2 голосов
/ 08 июня 2011

Вы можете просто вычислить что-либо раньше:

сюжет 25-20 + ((2Pi0.3²) / (Pi10²) Sqrt [2 * 980 (1+ (Pi10²) / (Pi10²))] t)² от 0 до 38

или

участок 25-20 + ((2 * 0,3²) / (10²) Sqrt [2 * 980 (1 + 1)] т) ² от 0до 38

или

25 - 20 + 4 * 0,0000081 *3920* t ^ 2 от 0 до 38 (у меня есть какой-то неверный коэффициент, но вы поняли)

просто примените основную математику к константам и удалите среднюю (мнимую часть) после применения 2-й биномиальной формулы.

Нет ничего общего с комплексными числами.

2 голосов
/ 08 июня 2011

Взятие квадратного корня из общего комплексного числа можно выполнить с помощью основных арифметических операций над действительными числами (плюс взятие квадратного корня из вещественных чисел): http://www.mathpropress.com/stan/bibliography/complexSquareRoot.pdf (один метод заключается в использовании теоремы Де Мойвра: любой комплексчисло a + bi может быть записано как r(cos θ + i sin θ), где

r = sqrt(a^2 + b^2),  cos θ = a/r, sin θ = b/r

Обновление : формула r(cos θ + i sin θ) изначально принадлежит Эйлеру, тогда как теорема Де Мойвра равна

(a + ib)ⁿ = rⁿ(cos nθ + i sin nθ)
0 голосов
/ 08 июня 2011

Неправильно говорить, что «Java не может с этим справиться».Ни один язык, который возвращает двойное от квадратного корня, не может с этим справиться, но если у вас есть класс Complex, это не проблема.Python имеет один встроенный;это легко написать на Java.

0 голосов
/ 08 июня 2011

Квадратный корень из целого числа будет целым или комплексным числом, чья действительная часть равна нулю.Действительная часть квадратного корня из отрицательного целого числа равна нулю.Всегда.

Итак ...

public double realPartOfSquareRoot(int i) {
    return (i > 0) Math.sqrt(i) : 0;
}

Но как мне это решить?Если я заменю квадратный корень на 0, я не получу хорошего результата.Полагаю ли я, что воображаемая часть делает что-то по-настоящему с остальной формулой?

Я ожидаю, что это так!(Идея отбросить мнимую часть не имела для меня особого смысла ... но я предположил, что у вас была веская причина для этого.)

Реальный ответ - найти библиотеку Java, которая будеткомплексная арифметика.Мне никогда не нужно было его использовать, но первым, что нужно изучить, должна быть библиотека Apache Commons Maths .

0 голосов
/ 08 июня 2011

Вы запутались в математике.Квадратный корень из -25 - это квадратный корень из 25 * (- 1), то есть квадратный корень из 25 * квадратный корень из -1, то есть 5i.Действительная часть этого числа равна 0.

Если вы хотите 5, просто проверьте, чтобы знак числа был «укоренен» и измените его, если он отрицательный.

...