2014 dxdy logo

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

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


Правила форума


В этом разделе нельзя создавать новые темы.

Если Вы хотите задать новый вопрос, то не дописывайте его в существующую тему, а создайте новую в корневом разделе "Помогите решить/разобраться (М)".

Если Вы зададите новый вопрос в существующей теме, то в случае нарушения оформления или других правил форума Ваше сообщение и все ответы на него могут быть удалены без предупреждения.

Не ищите на этом форуме халяву, правила запрещают участникам публиковать готовые решения стандартных учебных задач. Автор вопроса обязан привести свои попытки решения и указать конкретные затруднения.

Обязательно просмотрите тему Правила данного раздела, иначе Ваша тема может быть удалена или перемещена в Карантин, а Вы так и не узнаете, почему.



Начать новую тему Ответить на тему На страницу Пред.  1, 2
 
 Re: как правильнее организовать метод последовательных приближен
Сообщение23.07.2009, 11:47 
Заслуженный участник
Аватара пользователя


23/08/07
5420
Нов-ск
PAV в сообщении #230749 писал(а):
TOTAL в сообщении #230748 писал(а):
(в несколько раз увеличьте начальное приближение, которое имеется)


Зачем?

Чтобы сделать начальное приближение достаточно большим.

 Профиль  
                  
 
 Re: как правильнее организовать метод последовательных приближен
Сообщение23.07.2009, 11:54 
Заслуженный участник


11/05/08
32166
PAV в сообщении #230751 писал(а):
Теперь осталось понять, почему от этого задача облегчается. По крайней мере, выражения точно не упрощаются.

Ну как? У Вас получается одномерное уравнение вида
$$u={(au+b)^{\alpha_1}\over(cu+d)^{\alpha_2}.$$
Вид правой части -- довольно простой, слишком сильно она приплясывать не будет, остаётся только проанализировать её поведение в зависимости от соотношения показателей.

 Профиль  
                  
 
 Re: как правильнее организовать метод последовательных приближен
Сообщение23.07.2009, 12:08 


29/09/06
4552
PAV в сообщении #230751 писал(а):
Теперь осталось понять, почему от этого задача облегчается.
Ну, мне всегда казалось, что с одной переменной жить легче, чем с двумя. :lol: А теперь ещё кажется, что правая часть элементарно и явно исследуется на интервалы монотонности. (Это когда я перед дифференцированием догадался прологарифмировать). Ну, а ежели что-то дополнительно известно о константах...

 Профиль  
                  
 
 Re: как правильнее организовать метод последовательных приближен
Сообщение23.07.2009, 12:28 
Супермодератор
Аватара пользователя


29/07/05
8248
Москва
Так, все замечательно, всем большое спасибо, буду пробовать это реализовать и посмотрю, что получится.

-- Чт июл 23, 2009 13:32:11 --

На самом деле, хотя действительно здесь чуда никакого нет, но мне удивительно и неожиданно, что система так красиво свелась к одному уравнению.

 Профиль  
                  
 
 Re: как правильнее организовать метод последовательных приближен
Сообщение23.07.2009, 12:44 
Заслуженный участник
Аватара пользователя


23/08/07
5420
Нов-ск
$ x_0 = 2\left( \frac{A}{(1+\beta) C} \right)^{1/\beta}, \; x_1 = 2\left( \frac{D}{(1+\gamma) F} \right)^{1/\gamma} $ и дальше методом Ньютона

 Профиль  
                  
 
 Re: как правильнее организовать метод последовательных приближен
Сообщение23.07.2009, 13:32 
Заслуженный участник


11/05/08
32166
PAV в сообщении #230758 писал(а):
но мне удивительно и неожиданно, что система так красиво свелась к одному уравнению.

Ну это случайность. Хотя и приятная. А вообще множество столь приятных систем имеет меру нуль.

 Профиль  
                  
 
 Re: как правильнее организовать метод последовательных приближен
Сообщение23.07.2009, 13:41 
Супермодератор
Аватара пользователя


29/07/05
8248
Москва
TOTAL
что-то я не понял, откуда это получилось (и что означает).

 Профиль  
                  
 
 Re: как правильнее организовать метод последовательных приближен
Сообщение23.07.2009, 13:51 
Заслуженный участник
Аватара пользователя


23/08/07
5420
Нов-ск
Это начальное приближение для метода Ньютона.
Попробуйте, ведь легко проверить.

 Профиль  
                  
 
 Re: как правильнее организовать метод последовательных приближен
Сообщение23.07.2009, 13:53 
Супермодератор
Аватара пользователя


29/07/05
8248
Москва
Мне все равно не совсем понятно, зачем искусственно строить (или загрублять имеющееся) начальное приближение, если я предполагаю, что у меня уже есть, причем достаточно близкое к искомому решению.

 Профиль  
                  
 
 Re: как правильнее организовать метод последовательных приближен
Сообщение23.07.2009, 13:57 
Заслуженный участник
Аватара пользователя


23/08/07
5420
Нов-ск
PAV в сообщении #230773 писал(а):
у меня уже есть, причем достаточно близкое к искомому решению.

Что такое "достаточно близкое", непонятно. Нужно то, которое гарантирует сходимость.
Попробуйте начальное приближение, которое имеете, увеличить в 5 раз.

 Профиль  
                  
 
 Re: как правильнее организовать метод последовательных приближен
Сообщение23.07.2009, 13:58 
Супермодератор
Аватара пользователя


29/07/05
8248
Москва
Ваше гарантирует?

 Профиль  
                  
 
 Re: как правильнее организовать метод последовательных приближен
Сообщение23.07.2009, 14:05 
Заслуженный участник
Аватара пользователя


23/08/07
5420
Нов-ск
PAV в сообщении #230775 писал(а):
Ваше гарантирует?
Если после первой итерации обе компоненты останутся положительными, то дальше метод сойдется.

-- Чт июл 23, 2009 15:10:40 --

$ x_0 = \left( \frac{A+2B}{(1+\beta) C} \right)^{1/\beta}, \; x_1 = \left( \frac{D+2E}{(1+\gamma) F} \right)^{1/\gamma} $ - вот это гарантирует.

Код:
i=0
x=((A+2.*B)/((beta+1.)*C))**(1./beta)
y=((D+2.*E)/((gama+1.)*F))**(1./gama)

1 write(*,*) i,x,y; read *;  i=i+1
      xb=x**beta;  yg=y**gama
a11=A-(beta+1.)*C*xb
a12=B
a21=D
a22=E-(gama+1.)*F*yg
b1=-beta*C*x*xb
b2=-gama*F*y*yg

det=1./(a11*a22-a12*a21)
x=(b1*a22-b2*a12)*det;  y=(b2*a11-b1*a21)*det;  goto 1

 Профиль  
                  
 
 Re: как правильнее организовать метод последовательных приближен
Сообщение24.07.2009, 22:50 
Супермодератор
Аватара пользователя


29/07/05
8248
Москва
Возможно, участникам темы будет интересно узнать результаты моих экспериментов.

PAV в сообщении #230729 писал(а):
Решая одну практическую задачу, пришел к следующей системе уравнений относительно $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)
$$


Я каким-то образом реализовал все приведенные здесь идеи и сравнил результаты на решении 920 систем. Для оценки каждого шага итерации использовалась целевая функция, равная сумме модулей разностей левых и правых частей уравнений. Если значение функции уменьшалось, то шаг считался успешным, если увеличивалось - то неудачным. Решение целиком считалось успешным и останавливалось, когда целевая функция становилась меньше $0.000001$

Решение считалось неудачным, если десять итераций подряд были неудачными, или на некоторой итерации какая-то из переменных становилась отрицательной, или сумма переменных становилась меньше $0.001$ (чтобы не свалиться в тривиальное нулевое решение, которое мне не подходит).

Также для успешных решений считалось среднее число произведенных шагов (на одну задачу).

Прежде всего, первая гипотеза ИСН полностью подтвердилась.
ИСН в сообщении #230732 писал(а):
скорее всего из первых двух вариантов один сходится, а другой с такой же скоростью расходится.


Мой первый тривиальный вариант, основанный на формулах
$$
x_0=\frac{x_1(Fx_1^\gamma-E)}{D},\quad x_1=\frac{x_0(Cx_0^\beta-A)}{B}
$$
не сошелся ни разу, а второй, основанный на формулах
$$
x_0=\left(\frac{Ax_0+Bx_1}{C}\right)^{1/(\beta+1)},\quad x_1=\left(\frac{Dx_0+Ex_1}{F}\right)^{1/(\gamma+1)}
$$
сошелся во всех задачах; при этом среднее количество шагов на задачу составило 15.

Метод Ньютона с моими начальными условиями не сошелся 2 раза; в остальных случаях среднее число итераций равнялось 4.

Метод Ньютона с начальными условиями, которые предложил TOTAL сначала
TOTAL в сообщении #230761 писал(а):
$ x_0 = 2\left( \frac{A}{(1+\beta) C} \right)^{1/\beta}, \; x_1 = 2\left( \frac{D}{(1+\gamma) F} \right)^{1/\gamma} $ и дальше методом Ньютона

не сходился довольно часто - 126 раз (в остальных случаях среднее число итераций равнялось 6).

Зато с последними предложенными им начальными условиями метод сошелся во всех задачах и среднее число итераций равнялось 5. Похоже, что это самый лучший вариант; было бы интересно, каким образом были получены данные начальные условия и как обоснована сходимость во всех случаях :roll:

Метод перехода к одной переменной, который предложил Алексей К., я реализовал только в достаточно примитивном варианте: использовал уравнение $u=\cdots$ для метода последовательных приближений. Метод не сошелся 121 раз, среднее число итераций в случае успеха - 45. Возможно, какой-нибудь более разумный метод работал бы лучше, но реализовывать лень.

Наконец, метод, который предложил мат-ламер, основанный на минимизации функции
$$
(A x_0 + B x_1 - C x_0^{\beta+1})^2 + (D x_0 + E x_1 - F x_1^{\gamma+1})^2.
$$
Может быть, я что-то напортачил с реализацией, но результаты меня не очень порадовали. Метод дал ответ во всех случаях, кроме одного, однако работал очень медленно. Среднее число итераций составило 4181. Похоже, что было несколько очень долгих решений, когда программа задумывалась надолго, которые и дали такое большое среднее значение, но в среднем по "разумным" временам число итераций все равно порядка 200.

 Профиль  
                  
 
 Re: как правильнее организовать метод последовательных приближен
Сообщение27.07.2009, 07:18 
Заслуженный участник
Аватара пользователя


23/08/07
5420
Нов-ск
PAV в сообщении #231022 писал(а):
было бы интересно, каким образом были получены данные начальные условия и как обоснована сходимость во всех случаях


$$
y=\frac{1}{B}\left(-A x +  C x^{\beta+1}\right), \;\;
x=\frac{1}{E}\left(-D y +  F y^{\gamma+1}\right)
$$
Нарисуем приблизительно графики. У этих функций есть точка пересечения в первом квадранте, которую и отыскиваем. Правее и выше этой точки пересечения находится часть плоскости, с любой точки которой метод Ньютона сойдется (смотри на выпуклость функций).

На графике $y=\frac{1}{B}\left(-A x +  C x^{\beta+1}\right)$ найдем точку с наклоном $2,$ т.е. $\frac{1}{B}\left(-A  + (\beta+1) C x_0^{\beta}\right)=2.$
На графике $x=\frac{1}{E}\left(-D y +  F y^{\gamma+1}\right)$ найдем точку с наклоном $2,$ т.е. $\frac{1}{E}\left(-D + (\gamma+1) F y_0^{\gamma}\right)=2.$

В качестве начального приближения взяв эти $x_0, y_0,$ после первой итерации метода Ньютона обязательно попадем в вышеупомянутую часть плоскости, с которой метод сходится.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 29 ]  На страницу Пред.  1, 2

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group