Вычисление A-iB, где i - комплексное число

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
ФАНТОМНЫЙ ЮЗЕР
Обычный пользователь
Обычный пользователь
 
Сообщения: 50
Зарегистрирован: 27.12.2007 (Чт) 20:08
Откуда: phpbb_users

Вычисление A-iB, где i - комплексное число

Сообщение ФАНТОМНЫЙ ЮЗЕР » 19.11.2004 (Пт) 1:38

Подскажите пожалуйста, как осуществить подпрограмму на Visual Basic вычисления выражения типа
Код: Выделить всё
12.1-0.05i

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 19.11.2004 (Пт) 3:53

А усё, это конечный ответ :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 19.11.2004 (Пт) 4:03

Вообще то все выражение A+iB называется комплексным числом, AFAIR.
А считать... Формула есть? Значит есть и алгоритм. Или тебе распарсить ещё надо?
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 19.11.2004 (Пт) 4:07

Нельзя никак его сосчитать. Мнимую часть нельзя прибавить к действительной. Приведённое выражение есть конечное комплексное число, больше с ним ничего сделать нельзя :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

FaKk2
El rebelde gurú
El rebelde gurú
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 19.11.2004 (Пт) 4:18

Естественно корень из -2 в натуральных числах не получим. Но может автор имел ввиду реализацию 4 базовых операций...
Последний раз редактировалось FaKk2 19.11.2004 (Пт) 8:28, всего редактировалось 1 раз.
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

Ronin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 635
Зарегистрирован: 13.02.2002 (Ср) 14:16
Откуда: Россия, Москва

Сообщение Ronin » 19.11.2004 (Пт) 4:32

Доброго времени суток!

Может имелось ввиду:
A, B - действительные числа
i - Комплексное число

тогда так:
Result = New ComplexNumber(A - i.Real * B, i.Imaginary * B)
ComplexNumber - класс комплексного числа

Наверное так.
С уважением,
Игорь Шувалов aka Ronin

Ennor
Конструктивный критик
Конструктивный критик
 
Сообщения: 2504
Зарегистрирован: 18.12.2001 (Вт) 3:58
Откуда: Калуга -> Москва

Сообщение Ennor » 19.11.2004 (Пт) 11:38

В том же С++ есть отдельные классы для работы с комплексными числами. Видимо, уважаемому афтару имеет смысл либо написать такой самому, либо поискать готовый...

ФАНТОМНЫЙ ЮЗЕР
Обычный пользователь
Обычный пользователь
 
Сообщения: 50
Зарегистрирован: 27.12.2007 (Чт) 20:08
Откуда: phpbb_users

Сообщение ФАНТОМНЫЙ ЮЗЕР » 19.11.2004 (Пт) 15:07

Ronin писал(а):Доброго времени суток!

Может имелось ввиду:
A, B - действительные числа
i - Комплексное число

тогда так:
Result = New ComplexNumber(A - i.Real * B, i.Imaginary * B)
ComplexNumber - класс комплексного числа

Наверное так.


Да, действительно так
Но в VB переменная i не определена, она равна корню из -1.
Откуда брать i.Real и i.Imaginary ???

Подпрограмма, как мне кажется, должна быть следующего вида:
Код: Выделить всё
Private Function ABi(ByVal inA As Double, ByVal inB as Double, ByRef outA as Double, ByRef outB as Double)
' Вычисление A-Bi, i - комплексное число.
' ????
End Function

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 19.11.2004 (Пт) 15:15

oal, что вычислить-то надо? Что у тебя функция ABi должна вернуть?
Изображение

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 19.11.2004 (Пт) 17:46

Фраза "вычислить A-iB" звучит так же бессмысленно, как и фраза "вычислить 5", что тебе пытались объяснить уже три человека. Максимум, что ты можешь взять с этого выражения - определить скаляр (модуль).
Lasciate ogni speranza, voi ch'entrate.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 19.11.2004 (Пт) 17:50

alibek, может надо что-то навроде этого?
Код: Выделить всё
Private Function A (ByVal inA As Double, ByRef outA As Double)
'Вычисление A, где A - действительное число
   outA = inA
End Function

:lol:
Изображение

Ronin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 635
Зарегистрирован: 13.02.2002 (Ср) 14:16
Откуда: Россия, Москва

Сообщение Ronin » 19.11.2004 (Пт) 18:06

Доброго времени суток!

Тебе должно быть дано i-комплексное чисто комплексное число состоит из вещественной и мнимой части - записывается так:
(R + iM) где R - Вещественное число, а M - мнимое.
Например (5 + i8) или (9 - i2). Тоесть если у нас есть класс комплексного числа, то первый пример выглядел бы так:

Dim Cmplx As New RCmplx.ComplexNum(5, 8)
MsgBox (Cmplx.Real)
MsgBox (Cmplx.Imaginary)

Сообщения бы показали:
5
8

До сих пор понятно?
Да и не знаю, равна ли i корню из -1, знаю лишь только то, что i^2 = -1
А если тебе не дана переменная i (тоесть не переменная а обьект) то по умолчанию она равна, насколько я помню (0 + i0)
В итоге у тебя должен получиться ответ: (нужно привести вещественные числа в комплексный вид)
(12.1 + i0) - (0.05 + i0) * (0 + i0) = (12.1 + i0)

А вообще открой книжку по математическому анализу и разберись...
Удачи
С уважением,
Игорь Шувалов aka Ronin

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 19.11.2004 (Пт) 18:12

1. При чём здесь мат. анализ? Это как раз алгебра.
2. Сколько я видел, комплексные числа пишут в виде (R + Mi), а не как в сабже и у тебя. Хотя вряд ли это принципиально.
3. i - это (0 + 1i), и это главное значение √-1 (другое значение - -i = (0 - 1i)).
Изображение

Ronin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 635
Зарегистрирован: 13.02.2002 (Ср) 14:16
Откуда: Россия, Москва

Сообщение Ronin » 19.11.2004 (Пт) 18:42

Доброго времени суток!

Да по 3 пункту признаю ошибку. Не (0 + 0i) a (0 + i)
С уважением,
Игорь Шувалов aka Ronin

ФАНТОМНЫЙ ЮЗЕР
Обычный пользователь
Обычный пользователь
 
Сообщения: 50
Зарегистрирован: 27.12.2007 (Чт) 20:08
Откуда: phpbb_users

Сообщение ФАНТОМНЫЙ ЮЗЕР » 19.11.2004 (Пт) 19:29

Имеется два массива inA() As Double и inB() as Double, соответствующие действительной и мнимой чати комплексного числа.
Нужно вычислить его сопряженный комплекс по выражению
Код: Выделить всё
CONJ(X) = REAL(X) - i*IMAG(X)
Чьё это было сообщение?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 20.11.2004 (Сб) 11:32

Теорема Пифагора?
Lasciate ogni speranza, voi ch'entrate.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 20.11.2004 (Сб) 12:27

alibek писал(а):Теорема Пифагора?
Нет, просто сопряжённые числа...
К 5+2i сопряжённое - 5-2i, и т.д.
Изображение

Ronin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 635
Зарегистрирован: 13.02.2002 (Ср) 14:16
Откуда: Россия, Москва

Сообщение Ronin » 22.11.2004 (Пн) 4:18

Доброго времени суток!

oal писал(а):Имеется два массива inA() As Double и inB() as Double, соответствующие действительной и мнимой чати комплексного числа.
Нужно вычислить его сопряженный комплекс по выражению
Код: Выделить всё
CONJ(X) = REAL(X) - i*IMAG(X)


Из этого я понял следущее:
REAL - это действительная часть комплексного числа
IMAG - мнимая часть
CONJ - спряженное комплексного числа, тоесть и является комплексным числом (я имею ввиду тип данных)
Но тогда это не верно.
Если тебе извесно, что у тебя комплексное число, и оно представлено двумя переменными (Real и Imag), тоесть коплексное число ты получаешь такого вида (преобразование в строку):
"(" & str(Real) & ", " & str(Imag) & "i)"
Тогда, что-бы получить сопряженное число, то тебе просто надо изменить знак у мнимой части комплексного числа (тоесть у Imag), это значит:
"(" & str(Real) & ", " & str(-Imag) & "i)"
Я это понимаю так. Может я ошибаюсь... Но правда, мне до сих пор практически ничего не понятно...
С уважением,
Игорь Шувалов aka Ronin

ФАНТОМНЫЙ ЮЗЕР
Обычный пользователь
Обычный пользователь
 
Сообщения: 50
Зарегистрирован: 27.12.2007 (Чт) 20:08
Откуда: phpbb_users

Сообщение ФАНТОМНЫЙ ЮЗЕР » 23.11.2004 (Вт) 1:54

Я нашел решение при помощи следующего найденного в интернете файла:
Вложения
modZdat0100.zip
Файл для выполнения вычислений над комплексными числами
(2.28 Кб) Скачиваний: 26


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: PetalBot и гости: 17

    TopList