Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Комплексное число / 14 сообщений из 14, страница 1 из 1
05.03.2009, 14:02
    #35853289
allbertt
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Комплексное число
Подскажите,как записать комплексное число в visual basic, что бы в Excel результат выдал тоже комплексным числом?Т.е есть решение кубического уравнения,а в решении комплексные корни,их нужно просто записать в visual basic так ,что бы в Excel выдал ответ тоже комплексным числом.Можно такое провернуть?
...
Рейтинг: 0 / 0
05.03.2009, 17:52
    #35854138
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Комплексное число
да и нет.
Да: в Экселе есть специальная функция complex(r,i). Например =complex(3,4) выдаст "3+4i"
Нет: Вычисления на основе результатов этой функции невозможны. Она по существу выдает текст а не число.

Раскладывай действительную и мнимую часть по двум ячейкам и самостоятельно считай все что нужно. А результат потом отформатируешь через complex().
...
Рейтинг: 0 / 0
05.03.2009, 19:05
    #35854306
Бенедикт
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Комплексное число
White OwlНет: Вычисления на основе результатов этой функции невозможны. Она по существу выдает текст а не число.Неверно (иначе зачем она была бы нужна?). Функции листа семейства IMxxx (МНИМ.xxx в русской локализации) как раз реализуют такие вычисления.
...
Рейтинг: 0 / 0
05.03.2009, 19:59
    #35854374
Бенедикт
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Комплексное число
allbertt,
надо подключить в диалоге надстроек надстройку "Analysis ToolPak - VBA", затем в редакторе VBA сделать ссылку (меню Tools\References...) на atpvbaen.xls. Затем можно нажать F2, выбрать в первом выпадающем списке atpvbaen.xls, в окне Classes модуль "VBA Functions and Subs", и посмотреть функции Complex() и семейство Im...()
...
Рейтинг: 0 / 0
05.03.2009, 21:48
    #35854544
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Комплексное число
БенедиктWhite OwlНет: Вычисления на основе результатов этой функции невозможны. Она по существу выдает текст а не число.Неверно (иначе зачем она была бы нужна?).Верно-верно. Пиши в A1 =complex(1,2), а B1 =cell("type",a1). Что показывает B1? Вооот!

БенедиктФункции листа семейства IMxxx (МНИМ.xxx в русской локализации) как раз реализуют такие вычисления.Ы. Действительно. Про них то я и забыл.
...
Рейтинг: 0 / 0
05.03.2009, 23:12
    #35854679
allbertt
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Комплексное число
Function p(a, b, c)
дана функция 3x^3+2x+1=0

p = (3 * a * c - b ^ 2) / (3 * a ^ 2)
End Function

Function q(a, b, c, d)
q = (2 * b ^ 2 - 9 * a * b * c + 27 * a ^ 2 * d) / (27 * a ^ 3)
End Function

Function x(p, q, b, a)
x = (-q / 2 + (q ^ 2 / 4 + p ^ 3 / 27) ^ 0.5) ^ (1 / 3) - (q / 2 + (q ^ 2 / 4 + p ^ 3 / 27) ^ 0.5) ^ (1 / 3) - b / 3 * a
End Function

Function y(q, p, b, a, j)
y = -1 / 2 * ((-q / 2 + (q ^ 2 / 4 + p ^ 3 / 27) ^ 0.5) ^ (1 / 3) + (-q / 2 - (q ^ 2 / 4 + p ^ 3 / 27) ^ 0.5) ^ (1 / 3)) - b / 3 * a + j(3 ^ (1 / 3) / 2) * ((-q / 2 + (q ^ 2 / 4 + p ^ 3 / 27) ^ 0.5) ^ (1 / 3) + (-q / 2 - (q ^ 2 / 4 + p ^ 3 / 27) ^ 0.5) ^ (1 / 3))
End Function


после некоторых исчислений получилось то что выше,х-первый корень,не комплексный
у и z-второй и третий,они похожи и комплексные
...
Рейтинг: 0 / 0
05.03.2009, 23:17
    #35854689
allbertt
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Комплексное число
...
Рейтинг: 0 / 0
05.03.2009, 23:19
    #35854691
allbertt
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Комплексное число
...
Рейтинг: 0 / 0
05.03.2009, 23:21
    #35854695
allbertt
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Комплексное число
...
Рейтинг: 0 / 0
05.03.2009, 23:22
    #35854696
allbertt
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Комплексное число
...
Рейтинг: 0 / 0
05.03.2009, 23:24
    #35854701
allbertt
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Комплексное число
смотреть в таком порядке 7,4,6,5
объясните пожалуйста на понятном языке,я в этом совсем не бум-бум
...
Рейтинг: 0 / 0
06.03.2009, 13:45
    #35855883
Бенедикт
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Комплексное число
White Owl,
"Неверно" я сказал на вывод "Нет: Вычисления на основе результатов этой функции невозможны." Слишком много процитировал.

allbertt,
перепиши там, где надо перейти к комплексным числам (для вычисления p и q этого явно не нужно), свои выражения из инфиксной формы (x f y) со встроенными операторами (f = "+" | "-" | "*" | "/" | "^") в префиксную форму (f(x, y)) с операторами-функциями (f = "ImSum" | "ImSub" | "ImProduct" | "ImDiv" | "ImPower"). Для квадратного корня функция называется ImSqrt(), для сопряжённого комплексного - ImConjugate().

То есть, если было, условно,
Код: plaintext
1.
2.
3.
4.
5.
'Dim a, b, c, d ' - плохой стиль и потеря производительности
Dim a As Double, b as Double, c as Double, d As Double
a = ...
b = ...
c = ...
d = a + b / c
, то преобразовать этот код надо в
Код: plaintext
1.
2.
3.
4.
Dim сa As String, cb As String, cc As String, cd As String
ca = Complex(..., ...)
cb = Complex(..., ...)
cc = Complex(..., ...)
cd = ImSum(ca, ImDiv(cb, cc))
...
Рейтинг: 0 / 0
06.03.2009, 14:13
    #35855977
allbertt
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Комплексное число
Бенедикт, спасибо большое за объяснение,если не трудно напиши пример как это записывается:

Function y(q, p, b, a)
y = -1 / 2 * ((-q / 2 + (q ^ 2 / 4 + p ^ 3 / 27) ^ 0.5) ^ (1 / 3) + (-q / 2 - (q ^ 2 / 4 + p ^ 3 / 27) ^ 0.5) ^ (1 / 3)) - b / 3 * a + j(3 ^ (1 / 3) / 2) * ((-q / 2 + (q ^ 2 / 4 + p ^ 3 / 27) ^ 0.5) ^ (1 / 3) + (-q / 2 - (q ^ 2 / 4 + p ^ 3 / 27) ^ 0.5) ^ (1 / 3))

ещё раз спасибо!
...
Рейтинг: 0 / 0
06.03.2009, 15:43
    #35856230
Бенедикт
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Комплексное число
allbertt,
Пожалуйста. Извини, но я принципиально не буду этого делать. Это непедагогично, а вдруг я препод?

Более того, делать это сейчас бесполезно и тебе самому, т. к. про формулу Кардано ты не до конца прочитал - как ты собираешься находить все корни?
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Комплексное число / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]