2014 dxdy logo

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

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


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


Посмотреть правила форума



Начать новую тему Ответить на тему
 
 Численное решение СЛАУ методом верхней релаксации
Сообщение22.12.2022, 17:32 


23/10/21
19
Здравствуйте! Мне было дано задание численно решить данную СЛАУ:
$$\[-\gamma y_{i-1} + 2y_i + \gamma y_{i+1} = f_i, i=1,..., N-1\]
	    \[y_0 = f_0,y_N = f_N,\]
	    где $1 \leq \gamma \leq \frac{3}{2}$,\\
	    \begin{equation}
	        f_i = 
	        \begin{cases}
	            0, \hspace{2pt} i = 0,...,60 \\
	            0.1, \hspace{2pt} i = 61,...,70 \\
	            0, \hspace{2pt} i = 71,..., N
	        \end{cases}
	        N = 100, 1000
	    \end{equation}$$
то есть матрица системы имеет вид:
$$\[A = \begin{bmatrix}
            1 & 0 & 0 & \cdots & 0 & 0 & 0\\
            - \gamma & 2 & \gamma & \cdots & 0 & 0 & 0\\
            & & \cdots & \cdots & \cdots \\
            0 & 0 & 0 & \cdots & - \gamma & 2 & \gamma\\
            0 & 0 & 0 & \cdots & 0 & 0 & 1\\
        \end{bmatrix}\]$$
В качестве метода я выбрал метод верхней релаксации. Была написана программа, которая даже выдавала корректный результат (выбранный релаксационный параметр - $\omega = 0.7$, в качестве начального приближения - вектор правой части). Но вот в чем проблема: не выполнено достаточное условие сходимости данного метода: $A = A^*$ и, более того, с данными ограничениями на значение $\gamma$ у матрицы отсутствует диагональное преобладание. Поэтому у проверяющего вполне обоснованно возник вопрос о корректности применения данного метода и выбора релаксационного параметра. И у меня возникли трудности с обоснованием корректности применения метода с выбранным параметром. Можете, пожалуйста, дать подсказку, куда копать? И я правильно понимаю, что для метода прогонки для решения этой задачи тоже не выполнено достаточное условие корректности и устойчивости к ошибкам округления, так как $2 < 2\gamma$? Возможно ли здесь применение метода прогонки вместо метода верхней релаксации? Спасибо!

 Профиль  
                  
 
 Re: Численное решение СЛАУ методом верхней релаксации
Сообщение22.12.2022, 18:35 
Заслуженный участник
Аватара пользователя


23/08/07
5502
Нов-ск
ElRomcho в сообщении #1574730 писал(а):
Возможно ли здесь применение метода прогонки вместо метода верхней релаксации?
Возможно применение метода прогонки. Поищите про немонотонную прогонку.

 Профиль  
                  
 
 Re: Численное решение СЛАУ методом верхней релаксации
Сообщение22.12.2022, 22:54 
Заслуженный участник


12/07/07
4545
А зачем в данной задаче немонотонная прогонка? (Немонотонная прогонка более «тяжёлая» в отношении вычислений, т.к. имеет проверки и переходы.)

«Диагональное преобладание» является достаточным, но не необходимым условием ненакопления погрешности вычислений. Для ненакопления погрешности достаточно, чтобы $|\alpha_i| < 1$ (для всех $i$).

Выполнив прямой ход Гаусса для небольших значений $N$, видим, что искать решение удобно в виде $y_i = -\alpha_{i+1}y_{i+1} + \beta_{i+1}$.
Подставив это выражение в $y_{i-1} = -\alpha_i y_i + \beta_i$, получим $y_{i-1} = \alpha_i \alpha_{i+1} y_{i+1} - \alpha_i \beta_{i+1} + \beta_i$.
Затем подставив эти выражения для $y_i$ и $y_{i-1}$ в разностное уравнение и приравняв коэффициенты нулю, получим выражения для коэффициентов прогонки:
$\alpha_{i+1} = \frac {\gamma/2}{1+\frac {\gamma} 2 \alpha_i}$, $\beta_{i+1} = \frac {f_i +\gamma \beta_i} {2+\gamma \alpha_i }$, $i = 1,2,\ldots N-1$.
Из условия $y_0 = f_0$ вытекает $\alpha_1 = 0$, $\beta_1 = f_0$.

Т.к. $0<\gamma/2<1$, то $|\alpha_i| < 1$.

(Коэффициенты прогонки, конечно нужно проверить. Я к вечеру устал и мог ошибиться. Но в случае $\alpha_i$ вроде ошибки не нашёл.)

 Профиль  
                  
 
 Re: Численное решение СЛАУ методом верхней релаксации
Сообщение23.12.2022, 08:42 
Заслуженный участник
Аватара пользователя


23/08/07
5502
Нов-ск
GAA в сообщении #1574767 писал(а):
«Диагональное преобладание» является достаточным, но не необходимым условием ненакопления погрешности вычислений. Для ненакопления погрешности достаточно, чтобы $|\alpha_i| < 1$ (для всех $i$).
Действительно, это условие выполнится при обычной прогонке.

А ещё можно так:
$$A*t/\gamma=B*C,\;\; t=\dfrac{\gamma}{1+\sqrt{1+\gamma^2}}$$
В матрицах $B$ и $C$ на главной диагонали единицы, у $B$ стоит $t$ над диагональю, а у $C$ стоит $-t$ под диагональю. (В первых и последних строка чуть другое)

 Профиль  
                  
 
 Re: Численное решение СЛАУ методом верхней релаксации
Сообщение23.12.2022, 09:46 


23/10/21
19
Спасибо! Сегодня постараюсь реализовать метод прогонки.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

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



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

Сейчас этот форум просматривают: teleglaz


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

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