![]() |
![]() |
||||
![]() | |||||
![]() |
![]() АЛГОРИТМЫ Новости Рассылка новостей Форум AlgoPascal Редактор блок-схем Статьи О сайте Контакты |
![]() |
![]() Вычисление криволинейного интеграла в комплексной областиПроцедура вычисляет значение криволинейного интеграла для комплексной переменной z. с помощью конечной суммы Римана-Стильтьеса. Процедура использует функции F1(x,y) и F2(x,y) как действительную и мнимую часть функции F(z), где x, y - действительная и мнимая часть аргумента, а функции Z1(x,y) и Z2(x,y) как действительную и мнимую часть функции z(t) определяющей контур по которому происходит интегрирование. И на выходе получаем значения s1, s2 - действительную и мнимую часть значения интеграла. Если нашли ошибку в алгоритме - сообщите! Реализации алгоритма на различных языках:![]() ![]() ![]() Блоксхемы:![]() ![]() Реализация алгоритма на AlgoPascal:unit IntegralComplexUnit; declaration (* Интеграл от функции F(Z) по кривой Z(t), t на [a,b]. ReF = Re F(x+iy) ImF = Im F(x+iy) ReZ = Re Z(t) ImZ = Im Z(t) *) function ReF(X:Real; Y:Real):Real; function ImF(X:Real; Y:Real):Real; function ReZ(T:Real):Real; function ImZ(T:Real):Real; interface IntegralComplex; implementation (* Вычисление криволинейного интеграла в комплексной области. Интеграл от функции F(Z) по кривой Z(t), t на [a,b]. procedure IntegralComplex(a,b:real;n:integer;var s1,s2:real); Интегрирование проводится с шагом h=(b-a)/n. На выходе получаем значения s1,s2 - действительную и мнимую часть значения интеграла. *) procedure IntegralComplex( const a : Real; const b : Real; const n : Integer; out s1 : Real; out s2 : Real); var d : Real; d1 : Real; d2 : Real; f1 : Real; f2 : Real; t : Real; x : Real; y : Real; z1 : Real; z2 : Real; z3 : Real; z4 : Real; begin s1:=0; s2:=0; d:=(b-a)/n; t:=a; z3:=ReZ(t); z4:=ImZ(t); t:=t+d; repeat z1:=ReZ(t); z2:=ImZ(t); d1:=z1-z3; d2:=z2-z4; x:=z3+d1/2; y:=z4+d2/2; f1:=ReF(x,y); f2:=ImF(x,y); s1:=s1+f1*d1-f2*d2; s2:=s2+f1*d2+f2*d1; z3:=z1; z4:=z2; t:=t+d; until not(t<b); end; end. |
![]() |
|
|
![]() |