Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.02.25;
Скачать: CL | DM;

Вниз

комплексные числа   Найти похожие ветки 

 
Zerul   (2002-02-06 19:42) [0]

где мне можно достать инфу по работе в делфи с комплексными числами.


 
Юрий Зотов ©   (2002-02-06 19:53) [1]

Как ни странно, но легче всего - в школьном учебнике математики и в любой книжке по Паскалю.


 
Zerul   (2002-02-06 20:58) [2]

2Юрий Зотов
не видел. или плохо смотрел.

ладно, вы не могли бы привести кусок кода который реализовал бы эту проблему с дальнейшими операциямы над комплексными чис.:

z1:=sqrt(c*b-d*c-sqrt(d1)) // где d1<0
z2:=sqrt(c*b-d*c+sqrt(d1))
z3:=-5/(z1*z2);


 
Юрий Зотов ©   (2002-02-06 21:19) [3]

type
Complex = record
Re, Im: double
end;

Function RealToComplex(X: double): Complex;
begin
Result.Re := X;
Result.Im := 0
end;

Function CMul(X, Y: Complex): Complex;
begin
// Если не ошибаюсь (учебника под рукой нет), то:
Rezult.Re := X.Re * Y.Im;
Result.Im := X.Im * Y.Re
end;

Function CDiv(X, Y: Complex): Complex;
begin
// Если снова не ошибаюсь, то:
Rezult.Re := X.Im * Y.Re;
Result.Im := X.Re * Y.Im
end;


Тогда
z3:=-5/(z1*z2);
реализуется в виде
Z3 := CDiv(RealToComplex(-5), CMul(Z1, Z2));

Остальное аналогично. То есть, задача состоит в том, чтобы открыть учебник и, глядя в него, написать простейший модуль CMath, в который будет входить пара десятков простейших функций, каждая из которых реализует одну операцию по образцу тех, что я написал. Скорее всего, в коде самих функции я наврал (увы, слишком давно кончил школу), но исправить, надеюсь, не проблема.


 
Mbo ©   (2002-02-07 05:39) [4]

подправлю в тех же обозначениях
Function CMul(X, Y: Complex): Complex;
begin
Rezult.Re := X.Re * Y.Re - X.Im * Y.Im;
Result.Im := X.Im * Y.Re + X.Re * Y.Im;
end;

Function CAbs(X: Complex): Double;
begin
Rezult:= Sqrt(Sqr(X.Im)+Sqr(X.Re));//или Hypot
end;

Function CDiv(X, Y: Complex): Complex;
var Abs2:double;
begin
abs2:=Sqr(Y.Im)+Sqr(Y.Re);
Rezult.Re := (X.Re * Y.Re+X.Im*Y.Im)/Abs2;
Result.Im := (X.Im * Y.Re-X.Re*Y.Im)/Abs2;
end;




 
Mbo ©   (2002-02-07 05:49) [5]

вдогонку
корни вычислять сложнее - их несколько
sqrt1(-dl)=i*sqrt(dl) где dl>=0
sqrt2(-dl)=-i*sqrt(dl)
для понимания надо изучить геометрическую, тригонометрическую
и экспоненциальную форму представления к.ч.

Существуют готовые библиотеки.


 
Zerul   (2002-02-07 23:34) [6]

спасибо, всем!

2Mbo
я вполне понимаю что такое комплексные числа. (без ком.)

как насчёт готовых библиотек? (хотя, не так важно)


 
Фэ ©   (2002-02-07 23:48) [7]

http://www.sourceforge.net



Страницы: 1 вся ветка

Текущий архив: 2002.02.25;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.014 c
3-79260
Mitrofan
2002-01-30 19:17
2002.02.25
Минимальное количество библиотек из состава BDE


14-79425
Knight
2002-01-03 11:29
2002.02.25
Господа, вопрос на засыпку! Где качнуть НОРМАЛЬНО ЛинуксРедНат? Чтобы РеГет взял закачку в зубы!


14-79439
Alex!!!
2002-01-04 13:15
2002.02.25
Подскажите, какой язык программирования учить для заработка денег?


3-79267
Akhmadey
2002-01-30 17:04
2002.02.25
Новый компонент


14-79429
Ежик
2001-12-23 15:08
2002.02.25
Помогите плиииз установить библиотеку LMD50Se