Несколько примеров использования этой программы
Then Begin
A:=(J+(B-F[I,J])/(F[I,J+1]-F[I,J]))/N;
Circle(Round;I/N*GetMaxX), Round((1-A)*GetMaxY), 1)
End;
For J := 0 To N Do
For I := 0 To N - 1 Do
If (F[I, J] - B) * (F[I + 1, J] - В) < 0 Then Begin
A:=(I+(B-F[I,J])/(F[I+1,J]-F[I,J]))/N;
Circle(Round(A*GetMaxX), Round((1-J/N)*GetMaxY), 1)
End
End;
SetColor(15); OutTextXY(10, 50, 'для продолжения нажмите любую клавишу');
Repeat Until KeyPressed; CloseGraph;
End.
Несколько примеров использования этой программы приведены на рис. 7.26, 7.27.
Рис. 7.26. Поле создано семью зарядами q1 = q2 = q3 = q4
= 1, q5
= q6
= q7 = -1,
имеющими соответственно координаты (0,2;0,2), (0,8;0,8), (0,2;0,8), (0,8;0,2), (0,2;0,5), (0,5;0,5), (0,8;0,5). Изолинии построены для потенциалов -4,
-3, -2, -1,0, 1, 2, 3,4
Рис. 7.27. Поле создано пятью зарядами q1 = 1, q2 = -2, q3 = 2, q4 = -3, q5 = 1, имеющими соответственно координаты (0,3; 0,75), (0,2; 0,5), (0,7; 0,2), (0,5; 0,9), (0,5; 0,5). Изолинии построены для потенциалов -4, -3, -2, -1,0, 1, 2, 3,4
Оставим технические вопросы на самостоятельное решение и обсудим некоторые принципиальные. Допустим, между двумя ближайшими узлами выполняется записанное выше неравенство - означает ли это, что между ними действительно лежит одна
точка, в которой Ф =
? Ответить нетрудно: да, если потенциал между этими узлами меняется монотонно. Если же узлы столь редки (т.е. hx
и (или) hy
слишком велики), что потенциал между соседними узлами меняется немонотонно, то числа, полученные по формулам (6.44), (6.45), не имеют практически никакого отношения к реальным точкам, в которых Ф =
; это утверждение проиллюстрировано рис. 7.28.
Очевидно, что для получения изолиний следует брать достаточно малые hx
и hy. Проверка достоверности (эмпирическая) состоит в том, что строится картина изолиний с некоторыми hx и hy (часто берут hx = hy), а затем с вдвое меньшими значениями; если картины близки, то построение на этом завершается.
Содержание Назад Вперед