Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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.036 c
15-1191237113
Суслик
2007-10-01 15:11
2007.11.04
Покритикуйте описание системных требований моего продукта


3-1182841606
ambhtr
2007-06-26 11:06
2007.11.04
SELECT .... IN


3-1182619806
vegarulez
2007-06-23 21:30
2007.11.04
Ошибка при записи в БД (ругань на ; в конце строки)


2-1192294034
БатоноКидатель
2007-10-13 20:47
2007.11.04
Поиск в двух мерном массиве


2-1192393803
Ярослав
2007-10-15 00:30
2007.11.04
0,146 <> 0,146!!!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский