2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Решение системы нелинейных уравнений особой формы
Сообщение15.07.2015, 05:32 
Доброе время суток. Столкнулся с проблемой, которая поставила передо мной несколько возможных решений.

Сразу прошу прощения за возможные (и, скорее, вероятные) ошибки ввиду того, что я химик.

Суть задачи - получение декартовых координат атомов в молекуле по матрице расстояний.

Допустим мы располагаем координатами трех точек $i j k$ в трехмерном пространстве (не важно как мы их получили). Нам нужно получить координаты $x y z$ для точки $a$, располагая матрицей расстояний $R$ между всеми четырьмя точками.

Очевидно, что искомые координаты связаны с расстояниями следующими соотношениями.

$$\left\{
\begin{array}{rcl}
 &R_{ai}^{2}=(x-x_i)^2 + (y-y_i)^2 + (z-z_i)^2& \\
 &R_{aj}^{2}=(x-x_j)^2 + (y-y_j)^2 + (z-z_j)^2& \\
 &R_{ak}^{2}=(x-x_k)^2 + (y-y_k)^2 + (z-z_k)^2& \\
\end{array}
\right.$$

На примере первого уравнения преобразуем все уравнения системы

$R_{ai}^{2}=x^2 + y^2 + z^2 + x_i^2+y_i^2+z_i^2 - 2xx_i - 2yy_i - 2zz_i$
и введем обозначение $\tilde{R}_i=R_{ai}^{2}-x_i^2-y_i^2-z_i^2$

таким образом

$\tilde{R}_i=x^2 + y^2 + z^2 - 2xx_i - 2yy_i - 2zz_i$

Пробовал решать эту проблему при помощи метода Ньютона. Но решение сильно зависит от начального приближения и особо ничего хорошего из этого не получилось. (возможно делал что-то неправильно, но если задавал хорошее начальное приближение, то все получалось)

Собственно моих незначительных познаний в матричной алгебре хватило (опять таки возможно неправильно) для того, чтобы записать систему в таком виде:

$xx^T-2Ax=b$

где $

x=\begin{pmatrix}
x\\
y\\
z
\end{pmatrix}

A=
\begin{pmatrix}
 x_i& y_i & z_i \\
 x_j& y_j & z_j \\
 x_k& y_k & z_k
\end{pmatrix}

b=\begin{pmatrix}
\tilde{R}_i\\
\tilde{R}_j\\
\tilde{R}_k
\end{pmatrix}

$

Может быть есть какой-то матричный способ решения этой задачи?

Заранее спасибо. Буду рад любой подсказке.

 
 
 
 Re: Решение системы нелинейных уравнений особой формы
Сообщение15.07.2015, 07:12 
Аватара пользователя
Вычитая уравнения друг из друга, можно получить два линейных уравнения, задающих 2 плоскости. Эти две плоскости пересекутся по прямой, которая пересечет сферу, задаваемую любым из заданных уравнений, в искомой точке (или в двух точках, одна из которых - искомая).

 
 
 
 Re: Решение системы нелинейных уравнений особой формы
Сообщение15.07.2015, 09:44 
Аватара пользователя
MuKeP в сообщении #1037267 писал(а):
Пробовал решать эту проблему при помощи метода Ньютона. Но решение сильно зависит от начального приближения и особо ничего хорошего из этого не получилось. (возможно делал что-то неправильно, но если задавал хорошее начальное приближение, то все получалось)

Попробуйте получить начальное приближение следующим образом. Из точки $(0,0,0)$ проведите прямую через центр первой сферы. Эта прямая проткнет первую сферу в двух точках, ближайшую из этих точек к $(0,0,0)$ возьмите за сделующее приближение $(x_1, y_1, z_1)$.

Затем из точки $(x_1, y_1, z_1)$ проведите прямую через центр второй сферы. Эта прямая проткнет вторую сферу в двух точках, ближайшую из этих точек к $(x_1, y_1, z_1)$ возьмите за сделующее приближение $(x_2, y_2, z_2)$.

Затем из точки $(x_2, y_2, z_2)$ проведите прямую через центр третьей сферы. Эта прямая проткнет третью сферу в двух точках, ближайшую из этих точек к $(x_2, y_2, z_2)$ возьмите за сделующее приближение $(x_3, y_3, z_3)$.

И так далее по кругу. То, что получится, когда приближения начнут мало отличаться друг от друга, примите за начальное приближение для метода Ньютона.

 
 
 [ Сообщений: 3 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group