2014 dxdy logo

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

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




На страницу 1, 2  След.
 
 как правильнее организовать метод последовательных приближен
Сообщение23.07.2009, 10:37 
Аватара пользователя
Решая одну практическую задачу, пришел к следующей системе уравнений относительно $x_0$ и $x_1$:

$$
A x_0 + B x_1 = C x_0^{\beta+1}\eqno(1)
$$
$$
D x_0 + E x_1 = F x_1^{\gamma+1}\eqno(2)
$$

(все остальные буквы - известные константы, все положительные).

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

(A): найти из (1) $x_1$, затем найти из (2) $x_0$, затем снова из (1) $x_1$ и так далее. Причем здесь вопрос - уже на втором шаге в (2) подставлять новое значение $x_1$ или старое? То есть искать иксы последовательно или строить следующее приближение сразу для пары $(x_0,x_1)$?

(B): наоборот подставить в левые части уравнений значения предыдущих приближений, в результате из (1) будет найдено $x_0$, а из (2) - $x_1$. Здесь также можно либо находить их последовательно, либо одновременно находить пару.

(C): использовать метод Ньютона.

Может ли кто-то подсказать общие соображения, какой из способов правильнее использовать, или же это в общем-то без разницы? На самом деле мне здесь сейчас время решения не критично.

 
 
 
 Re: как правильнее организовать метод последовательных приближен
Сообщение23.07.2009, 10:49 
Аватара пользователя
Короче, надо посчитать производную и понять, как будут вести себя малые отклонения. "Не читал, но" скорее всего из первых двух вариантов один сходится, а другой с такой же скоростью расходится.

 
 
 
 Re: как правильнее организовать метод последовательных приближен
Сообщение23.07.2009, 10:55 
Не уверен, что можно сказать что-то определённое, не зная ничего о матрице в левой части системы. Например, Ваш пункт (B) в последнем варианте сводится к стандартной итерационной процедуре для уравнения вида $(T\vec x)^{\vec\alpha}=\vec x.$ Отображение в левой части вовсе не обязано быть сжимающим -- соответственно, и метод не обязан сходиться.

 
 
 
 Re: как правильнее организовать метод последовательных приближен
Сообщение23.07.2009, 11:01 
Аватара пользователя
Минимизируйте сумму квадратов невязок.

 
 
 
 Re: как правильнее организовать метод последовательных приближен
Сообщение23.07.2009, 11:08 
Аватара пользователя
ewert в сообщении #230734 писал(а):
Не уверен, что можно сказать что-то определённое, не зная ничего о матрице в левой части системы. Например, Ваш пункт (B) в последнем варианте сводится к стандартной итерационной процедуре для уравнения вида $(T\vec x)^{\vec\alpha}=\vec x.$ Отображение в левой части вовсе не обязано быть сжимающим -- соответственно, и метод не обязан сходиться.


К сожалению, система у меня такая не одна. Решение этой системы возникает во внутреннем цикле для решения некоторой другой задачи, так что будет вызываться на одну задачу многократно, и самих задач такого вида у меня будет порядка тысячи. Так что нужно решение в общем виде либо же критерий, который мог бы в зависимости от коэффициентов выбирать подходящий метод.

-- Чт июл 23, 2009 12:09:48 --

мат-ламер в сообщении #230735 писал(а):
Минимизируйте сумму квадратов невязок.


Не очень понятно. Разве решая такую минимизационную задачу я не приду к системе такого же вида?

-- Чт июл 23, 2009 12:12:16 --

А вообще что больше влияет на сходимость метода - степени $\beta$ и $\gamma$, или коэффициенты в левой части?

 
 
 
 Re: как правильнее организовать метод последовательных приближен
Сообщение23.07.2009, 11:15 
Сведение к одному уравнению относительно $u=\dfrac{x_0}{x_1}$ не облегчит задачу? С неотъемлемым правом на ошибку у меня получилось что-то вроде
$$u^{\gamma(\beta+1)}\right=\frac{(Au+B)^\gamma F^\beta}{(Du+E)^\beta  C^\gamma}.$$

 
 
 
 Re: как правильнее организовать метод последовательных приближен
Сообщение23.07.2009, 11:17 
PAV в сообщении #230737 писал(а):
Не очень понятно. Разве решая такую минимизационную задачу я не приду к системе такого же вида?

Смотря каким способом решать. Например, метод градиентного спуска абсолютно устойчив -- если мы, конечно, попали на выпуклый участок целевой функции. Что опять же заранее не факт.

 
 
 
 Re: как правильнее организовать метод последовательных приближен
Сообщение23.07.2009, 11:18 
Аватара пользователя
Алексей К.
по-моему этого быть не может. Исходная система ведь не инвариантна относительно одновременного умножения неизвестных на одну и ту же константу.

 
 
 
 Re: как правильнее организовать метод последовательных приближен
Сообщение23.07.2009, 11:22 
Алексей К. в сообщении #230740 писал(а):
Сведение к одному уравнению относительно $u=\dfrac{x_0}{x_1}$ не облегчит задачу? С неотъемлемым правом на ошибку у меня получилось что-то вроде
$$\left(u^{\beta\gamma}\right)^2=\frac{(Au+b)^\gamma F^\beta}{(Du+E)^\beta C^\gamma}.$$

Облегчит.

 
 
 
 Re: как правильнее организовать метод последовательных приближен
Сообщение23.07.2009, 11:23 
Аватара пользователя
Цитата:
Не очень понятно. Разве решая такую минимизационную задачу я не приду к системе такого же вида?
Не проверял, но думаю, что не перейдёте. Вероятно, Вы сами будете всё программировать? Тогда несколько шагов можно сделать методом наискорейшего спуска, а затем перейти к методу Ньютона. Так будет надёжней, чем методом последовательных приближений, который пока непонятно, будет ли у Вас сходиться для Ваших конкретных значений коэффициенов. Метод Ньютона тоже не для всяких начальных точек сходится. Если будете программировать в каком-то мат.пакете, то, например, в MATLABe есть стандартные функции для этого дела (вроде там реализован метод переменной метрики).

 
 
 
 Re: как правильнее организовать метод последовательных приближен
Сообщение23.07.2009, 11:27 
PAV в сообщении #230742 писал(а):
Алексей К.
по-моему этого быть не может. Исходная система ведь не инвариантна относительно одновременного умножения неизвестных на одну и ту же константу.

Ну а при чём тут инвариантность? Будь она в наличии -- просто количество решений было бы бесконечным.

 
 
 
 Re: как правильнее организовать метод последовательных приближен
Сообщение23.07.2009, 11:34 
Аватара пользователя
Метод Ньютона сойдется. Начинаем с достаточно больших $x_0, x_1$
(в несколько раз увеличьте начальное приближение, которое имеется)

 
 
 
 Re: как правильнее организовать метод последовательных приближен
Сообщение23.07.2009, 11:41 
Аватара пользователя
TOTAL в сообщении #230748 писал(а):
(в несколько раз увеличьте начальное приближение, которое имеется)


Зачем?

 
 
 
 Re: как правильнее организовать метод последовательных приближен
Сообщение23.07.2009, 11:41 
Ошибку исправил.
$$ \begin{array}{l}
  Au+B=C x_0^\beta u\\
  Du+E=F x_1^\gamma
\end{array} \Longrightarrow  x_0^\beta=\ldots,\quad x_1^\gamma=\ldots \quad
$$ Дальше понятно. (В инвариантностях, к сожалению разбираюсь слабо, потому попробовал... :D )

 
 
 
 Re: как правильнее организовать метод последовательных приближен
Сообщение23.07.2009, 11:44 
Аватара пользователя
ewert в сообщении #230744 писал(а):
Облегчит.


Честно говоря, не понял, ни как получено это уравнение (вре равно ведь еще одно откуда-то нужно взять?), ни почему это облегчает задачу. :oops:

-- Чт июл 23, 2009 12:46:31 --

PAV в сообщении #230751 писал(а):
Честно говоря, не понял, ни как получено это уравнение


Ага, как получается уравнение, я кажется понял. Теперь осталось понять, почему от этого задача облегчается. По крайней мере, выражения точно не упрощаются.

 
 
 [ Сообщений: 29 ]  На страницу 1, 2  След.


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