Формула Ньютона-Рафсона

Форум пользователей пакета Maple

Модератор: Admin

KateXX
Сообщения: 71
Зарегистрирован: Сб фев 20, 2010 12:00 pm

Формула Ньютона-Рафсона

Сообщение KateXX » Сб май 15, 2010 9:08 pm

Здравствуйте,

При решении есть довольно большие выражения, что приводит к тому, что Maple выдает "Kernel connection has been lost". Для упрощения пытаюсь использовать численный метод нахождения корня, а не sqrt. Как вариант, формула Ньютона-Рафсона. Но столкнулась со следующей проблемой. Небольшой фрагмент, позволяющий увидеть ее:

restart:
with(plots):
with(student):
with(linalg):
lambda := 1.0:
lx := 0.021:
ly := 0.021:
k := 2.0*Pi/lambda:
Ex[1] := 0.43500e-1*Pi*lx*exp(-I*k*sqrt((x-.104)^2+(y+.726)^2+(z-1.000)^2))*(1-(x-.104)^2/((x-.104)^2+(y+.726)^2+(z-1.000)^2))/(lambda*sqrt((x-.104)^2+(y+.726)^2+(z-1.000)^2)):
Ey[1] := 0.8460e-1*Pi*ly*exp(-I*k*sqrt((x-.726)^2+(y-0.21e-1)^2+(z-1.000)^2))*(1-(y-0.21e-1)^2/((x-.726)^2+(y-0.21e-1)^2+(z-1.000)^2))/(lambda*sqrt((x-.726)^2+(y-0.21e-1)^2+(z-1.000)^2)):
Ez[1] := -0.24120e-1*Pi*lx*exp(-I*k*sqrt((x+.167)^2+(y+.726)^2+(z-1.000)^2))*(x+.167)*(z-1.000)/(lambda*((x+.167)^2+(y+.726)^2+(z-1.000)^2)^(3/2)):
E_sum[1] := (Ex[1])^2 + (Ey[1])^2 + (Ez[1])^2:
E_sum[1] := subs(z = 2, y = 0, E_sum[1]):
# Для нахождения напряженности поля воспользуемся приближенным методом нахождения квадратного корня Ньютона-Рафсона
# Точность вычислений
eps := 0.01:
# Начальное приближение
Exyz[1] := E_sum[1]/2:
# Вычисление по формуле Ньютона-Рафсона
while (abs(Exyz[1] - (E_sum[1]/Exyz[1])) > eps) do
Exyz[1] := 0.5*(Exyz[1] + (E_sum[1]/Exyz[1]))
end do:
Exyz[1];

Проблема в том, что на данном этапе пока нужно иметь решение относительно координаты x, что не позволит (насколько я понимаю) использовать этот приближенный метод...