Форум: "Прочее";
Текущий архив: 2007.11.04;
Скачать: [xml.tar.bz2];
ВнизКомплексные числа Найти похожие ветки
← →
Beginner3 © (2007-10-04 12:45) [0]Кто посоветует как в Дельфях решать систему линейных уравнений в комплексных числах. Для электрики.
← →
Игорь Шевченко © (2007-10-04 12:50) [1]так же, как в ТОЭ ? Я угадал ?
← →
homm © (2007-10-04 12:50) [2]> [0] Beginner3 © (04.10.07 12:45)
> Для электрики.
Это одногруппину так зовут? Благородно с твоей стороны взятся ей помочь.
← →
Однокамушкин (2007-10-04 12:52) [3]Элементарно: два комплексных числа равны тогда и только тогда, когда равны по отдельности их целые и мнимые части, поэтому система из N линейных уравнений c N неизвестными в комплексных числах легко сводится к системе из 2N линейных уравнений с 2N неизвестными в действительных числах, которая затем решается стандартными методами
← →
tesseract © (2007-10-04 12:54) [4]В MatchCAD всё делали - отлично решалось :-)
← →
Думкин © (2007-10-04 13:23) [5]> Однокамушкин (04.10.07 12:52) [3]
Больно ты шустрый. Кто сказал, что неизвестные некомплексные числа?
← →
Думкин © (2007-10-04 13:24) [6]> Однокамушкин (04.10.07 12:52) [3]
Хотя сводится. :)
← →
Инс © (2007-10-04 13:27) [7]
> Кто сказал, что неизвестные некомплексные числа?
Насколько я понял - речь действительно о задаче по ТОЭ, а там неизвестные - либо напряжения узлов (в комплексном виде), либо токи в ветвях (в комплексном виде), либо (комплексные) сопротивления ;-)
← →
Думкин © (2007-10-04 13:29) [8]> Инс © (04.10.07 13:27) [7]
Дело в другом. Она своидится к вдвое большей размерности. Я в ответе однокаменного не увидел сразу 2. Вот и поспешил. :(
← →
Инс © (2007-10-04 13:32) [9]
> Думкин © (04.10.07 13:29) [8]
А, сорри, теперь я неправильно прочел. Приставку "не" в слове "некомплексные" не заметил. А вообще да, суть не в этом...
← →
Mystic © (2007-10-04 14:08) [10]Для того, чтобы решить систему линейных уравнений в любом поле необходимо реализовать операции сложения, умножения и взятия обратного элемента в этом поле, а потом реализовать любой метод решения СЛАУ основываясь на этих операциях.
← →
Azize © (2007-10-04 16:33) [11]
TComplex=class
a:Double;
b:Double;
constructor Create(a,b:Double);
Procedure Add(Compl:TComplex);
...
end;
...
Procedure TComlex.Add(Compl:TComplex);
Begin
a:=a+Compl.a;
b:=b+Compl.b;
End;
...
далее реализуешь алгоритм решения уравнения, я бы даже класс "уравнение" создал, и всё
← →
Azize © (2007-10-04 16:34) [12]
> Azize © (04.10.07 16:33) [11]
да и класс "система уравнений"
← →
Azize © (2007-10-04 16:41) [13]если есть принцип решения за небольшую плату готов написать прогу))
← →
Думкин © (2007-10-05 05:46) [14]> Azize © (04.10.07 16:33) [11]
> TComplex=class
Лучше создать родительский класс с виртуальными методами. А от него уже порождать специальные - действительные числа, комплексные и т.д. Метод решения СЛАУ будет однофигственен, и работать будет с родительским.
← →
shlst (2007-10-05 08:05) [15]тут такие знатоки все, подскажите образ этого комплексного числа.
например электрон можно представить в виде пучка синусоид, котоые взаимно складываются и дают ноль во всех местах кроме одного, которое и изображает электрон :)
← →
Ping (2007-10-05 08:36) [16]Лучше создать родительский класс с виртуальными методами.
Лучше уж тогда record с методами класса и перегруженными операторами.
← →
Думкин © (2007-10-05 08:57) [17]> Ping (05.10.07 08:36) [16]
Для этого должны быть доступны рекорды с методами класса и перегружаемостью оператора.
← →
Ping (2007-10-05 09:00) [18]Думкин © (05.10.07 08:57) [17]
Их спрятали в Гималаях? :-)
← →
Думкин © (2007-10-05 09:04) [19]> Ping (05.10.07 09:00) [18]
Безусловно. Или сия дичь безусловная принадлежность любой версии Дельфи?
← →
Думкин © (2007-10-05 09:07) [20]Да и причем тут рекорд? Сколько полей будет использоваться заранее не известно родителю - 1, 2, 4, ...
← →
Ping (2007-10-05 09:19) [21]Или сия дичь безусловная принадлежность любой версии Дельфи?
Я как-то указания версии в вопросе не встретил. Так что могу предполагать любую версию, которую захочу...
Да и причем тут рекорд?
Удобнее.
Cколько полей будет использоваться заранее не известно родителю - 1, 2, 4, ...
И что тогда это будут за виртуальные методы "Лучше создать родительский класс с виртуальными методами"? Пример виртуального метода, и что они будут делать?
← →
Думкин © (2007-10-05 09:21) [22]> Ping (05.10.07 09:19) [21]
> Или сия дичь безусловная принадлежность любой версии Дельфи?
>
>
> Я как-то указания версии в вопросе не встретил. Так что
> могу предполагать любую версию, которую захочу...
Вот и покажите чем это удобнее в 7-й версии.
> Да и причем тут рекорд?
>
> Удобнее.
Чем удобнее? Чем грузин?
> И что тогда это будут за виртуальные методы "Лучше создать
> родительский класс с виртуальными методами"? Пример виртуального
> метода, и что они будут делать?
Не виртуальный хотел изначально - абстрактный(но он ведь виртуальный?). А конкретизировать что он делает - в потомке.
← →
Думкин © (2007-10-05 09:23) [23]Хотя, что он будет делать - вопрос. :(
← →
Ping (2007-10-05 09:40) [24]Чем удобнее? Чем грузин?
Использование record - не нужно создавать/удалять экземпляры классов.
Перегруженные операторы - интуитивно понятные операции с числами: "+", "-", вместо методов "Add()", "Sub()". При чем, можно перегрузить операторы для любых типов данных - целых, с плавающей запятой, комплексных... да хоть строчных представлений чисел.
абстрактный(но он ведь виртуальный?)
Методы, в общем случае, могут принимать параметры и могут возвращать результат. Какого типа будут параметры и результат? Экземпляры родительского класса? Ну тогда придется явно приводить типы, что несколько усложняет использование. Если результат - экземпляр класса, то кто будет отвечать за его удаление? Можно, конечно, для автоматического удаления, сделать и подсчет ссылок, но тогда нужно будет использовать интерфейсы. То есть, не все так просто...
← →
Думкин © (2007-10-05 09:48) [25]> Ping (05.10.07 09:40) [24]
1. Да, я для Д7 ориентировался.
2. Да, тут также. Уже сталкивался в одной задаче с таким. С шаблонами бы вышло, а с тем что есть все одно также. Но класс я хотел, как абстрактный описатель других классов потомков и потому написал, что лучше. Причем применить все равно можно также, так что лучшесть только с 2006-го в создании, удалении.
← →
Ping (2007-10-05 10:05) [26]
TBaseClass = class
public
procedure Add(With: TBaseClass): TBaseClass; virtual; abstract;
end;
TIntegerClass = class(TBaseClass)
private
FValue: integer;
public
procedure Add(With: TBaseClass): TBaseClass; override;
property Value: integer read FValue write FValue;
end;
procedure TIntegerClass.Add(With: TBaseClass); TBaseClass;
begin
// Создаем результат. Удалит ли его потом тот, кто будет пользоваться классом?
Result := TIntegerClass.Create;
// Тут приходится приводить типы
// Причем контроль того, что With - именно TIntegerClass - только на этапе выполения, что чревато...
TIntegerClass(Result).FValue := FValue + (With as TIntegerClass).FValue;
end;
И использование:var
Int1: TIntegerClass;
Int2: TIntegerClass;
Int3: TIntegerClass;
begin
Int1 := TIntegerClass.Create;
try
Int1.Value := 2;
Int2 := TIntegerClass.Create;
try
Int2.Value := 2;
Int3 := TIntegerClass(Int1.Add(Int2)); // опять приводим типы
try
ShowMessage("Result: " + IntToStr(Int3.Value));
finally
Int3.Free; // А где же конструктор?
end;
finally
Int2.Free;
end;
finally
Int1.Free;
end;
// И это все для того, чтобы просто 2 + 2 = 4
end;
То есть, я все же за record. Ну да, в Delphi 7 ими не воспользуешься. Но и на дворе уже не 2002 год.
P.S. А у меня Delphi 6... :-)
← →
Ping (2007-10-05 10:08) [27]P.P.S. Ой, function Add(). :-)
← →
Думкин © (2007-10-05 10:16) [28]> Ping (05.10.07 10:05) [26]
Да, все так. Я когда дружественные числа искал с этим сталкивался. Забыл уже. Каюсь.
← →
Инс © (2007-10-05 10:22) [29]А зачем возиться с комплексными числами, если в [3] сказано, что система сводится к действительным числам. Просто по отдельности расписываем равенство для вещественных и мнимых частей.
PS: А для комплексных в D7 есть VarCmplx
← →
Думкин © (2007-10-05 10:27) [30]> Инс © (05.10.07 10:22) [29]
СЛАУ бывают и для других множеств.
← →
euru © (2007-10-05 10:36) [31]
> Ping (05.10.07 10:05) [26]
> То есть, я все же за record. Ну да, в Delphi 7 ими не воспользуешься.
> Но и на дворе уже не 2002 год.
В D7 и раньше есть object.
← →
Ping (2007-10-05 10:46) [32]В D7 и раньше есть object.
Там нет перегрузки операторов.
← →
KSergey © (2007-10-05 10:59) [33]> shlst (05.10.07 08:05) [15]
> тут такие знатоки все, подскажите образ этого комплексного
> числа.
Ветер.
Он дует в определенном направлении с определенной силой.
Правда - на сколько я понимаю - на воздужных потоках не просто показать сложение комплексных чисел, даже в дальней зоне... Хотя и не знаю, может ошибаюсь.
PS
А может вообще в этом всем сильно ошибаюсь :)
← →
Romkin © (2007-10-05 11:21) [34]
> Ping (05.10.07 10:46) [32]
> В D7 и раньше есть object.Там нет перегрузки операторов.
>
Она есть в Delphi 6 и выше, правда, в несколько необычном виде, через custom variants. Модуль с примером уже упомянули, VarCmplx.
А в Delphi 2006 для win32 есть и перегрузка операторов, причем именно для записей.
← →
7BE1A792 (2007-10-07 22:12) [35]Этот специфический эротизм сочетался с неизвестной на Земле обязательностью одежды.
Никто не смел появиться в общественных местах или находиться дома в присутствии других
людей иначе, как полностью прикрыв свое тело.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2007.11.04;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.055 c