Метод прогонки и диф. уравнение.

Сообщение №7239 от KIT 12 марта 2003 г. 14:45
Тема: Метод прогонки и диф. уравнение.

Матем. моделирование. От уравнения теплопроводности, через разностную схему перехожу к уравнению типа A(i)*y(i-1)-C(i)*y(i)+B(i)*y(i+1)=F(i) (i=1..N) и собираюсь решать его методом прогонки. Собственно вопрос: Как задавать прогоночные коэффициенты a(1) и b(1) в прямом ходе прогонки и y[N] в обратном ходе?


Отклики на это сообщение:

> Матем. моделирование. От уравнения теплопроводности, через разностную схему перехожу к уравнению типа A(i)*y(i-1)-C(i)*y(i)+B(i)*y(i+1)=F(i) (i=1..N) и собираюсь решать его методом прогонки. Собственно вопрос: Как задавать прогоночные коэффициенты a(1) и b(1) в прямом ходе прогонки и y[N] в обратном ходе?

Например Калиткин Численные методы


Вы решаете краевую задачу, значит, у вас есть граничные условия: у(0) = A, y(xI)=B (i=0..I) - вот они и дают требуемые условия: у0 = 0*y(1)+A, далее подставляем в первое уравнение -> a(1)*y(2)+b(1)*y(1)+c(1)*y(0)=d(1) ->
y(1) выражем через y(2), далее продолжая, получаем y(i) = alpha(i)*y(i+1)+beta(i) -> через кон. условия... ТУ-ТУ-ТУ делаем прямой, затем обратный ход
ВСЁ ЛЕГКО!


Таким образом, для расчёта следующего шага по времени мне необходимо знать "крайние" значения y(0) и y(N) на этом (следующем) шаге, так?


правильно, смотря правда для чего метод этот используется - если для численного решения краевой задачи, то так; если для общего решения, то тогда берём y(0)=1,y(N)=0 (1 задача) и y(0)=0, y(N)=1 (2 задача), тогда общее решение будет комбинацией двух данных.


правильно, смотря правда для чего метод этот используется - если для численного решения краевой задачи, то так; если для общего решения, то тогда берём y(0)=1,y(N)=0 (1 задача) и y(0)=0, y(N)=1 (2 задача), тогда общее решение будет комбинацией двух данных.


это в случае однородного диффура, в случае неоднородного добавляется ещё одна задача - неоднородная задача с нулевыми краевыми условиями, т.е.
y = C1*y1 + C2*y2 + yCh, где первые две - решение однородной задачи с ненулевыми кр. условиями, при этом - это лин. незав. решения


Что значит общее рещение?
Я взял коэф. прогонки alpha(1)=1, beta(1)=dy(0), правильно ли это?
Хотел бы ещё посоветоваться по поводу реализации мат. модели.
Я рассматриваю падающую струю жидкого металла. Рассматриваю распределение температуры в зависимости от радиуса. При этом совмещаю перемешение по вертикали с шагом по времени. Примерно вот так: Берём небольшой слой этой самой струи. В начальный момент времени он имеет некоторую температуру. В следующий момент времени, рассматриваем этот же слой, но переместившийся под действием силы тяжести вниз и расчитываем в нём распределение температур по радиусу, с учетом что часть теплоты уходит в окружающую среду. И т.д. Считаем что обмена теплотой между соседними слоями нет. Как думаете, можно ли решать подобным образом эту задачу?



> это в случае однородного диффура, в случае неоднородного добавляется ещё одна задача - неоднородная задача с нулевыми краевыми условиями, т.е.
> y = C1*y1 + C2*y2 + yCh, где первые две - решение однородной задачи с ненулевыми кр. условиями, при этом - это лин. незав. решения

Вот это мне не понятно. Это нужно для общего решения?


Если рассматриваем краевую задачу, то всё правильно - нам нужны два кр. условия.
Вообще м-д прогонки - это сведение трёхдиагональной матрицы к двухдиагональной, отсюда становится видна его разрешимость. Необходимым условием метода прогонки являет диагональное преобладание матрицы.
(Я просто не знал для чего вы его применяете, поэтому потом написал метод общего решения дифф.ура второго порядка)
На счёт вашей задачи, она должна быть линейна, т.к. м-д прогонки применим, по-моему, только в таких случаях. Во-вторых, здесь мы имеем периодическое условие (т.е. y(xl)=y(xl+xL)), в этом случае алгоритм строится несколько иначе.
Я приведу пример решиния в данном случае, т.к. думаю, будет более понятно:
пусть дано ур-е: y'' - p^2(x)*y = f(x), 0<=x<=1, p^2(x)>0, f(x) = f(x+1);
у нас поставлена след. разностная схема:
(y(n+1)-2*y(n)+y(n-1))/h^2 - (p(n))^2*y(n) = f(n), n=1..N-1;
(y(1)-2*y(0)+y(N-1))/h^2 - (p(0))^2*y(0) = f(0);
Мы делаем модификацию метода прогонки:
ищем y(n) = C1*y0(n)+y1(n), где y0 - решение одн. задачи, y1 - решение неоднородной, т.е.
I. (y0(n+1)-2*y0(n)+y0(n-1))/h^2 - (p(n))^2*y0(n) = 0, n=1..N-1,
y0(0)=y0(N)=1;
II. (y1(n+1)-2*y1(n)+y1(n-1))/h^2 - (p(n))^2*y1(n) = f(n), n=1..N-1;
y0(0)=y0(N)=0;
Тогда:
C1*((y0(1)-2*y0(0)+y0(N-1))/h^2-(p(0))^2*y(0)) + ((y1(1)-2*y1(0)+y1(N-1))/h^2-(p(0))^2*y1(0)) = f(0) -> подставляя y0(0)=1, y1(0)=0, находим C1.
Вот так вот. Удачи.


Спасибо, попробую разобраться на досуге.
Хотелось бы почитать какую-нибудь книжку по мат. моделированию, ур. мат. физики, решению диф. уравнений численными методами, с примерами применения и чтоб понятная была. (Хочется много и сразу :))
Все таки хотелось бы уточнить, насколько правильная модель описана в моём предыдущем посте? Т.е. можно ли получить решение на её основе или есть ошибки? Я сомневаюсь в ней, вот и спрашиваю.


Я думаю, что всё сразу не получится, могу сказать лишь о университетских книжках по данным разделам: по дифф.урам - Романко, по числ. методам - Бахвалов, по мат.моделированию есть хорошие книжки Самарского А.А., правда здесь я уже не разбираюсь, по ур.матам - Уроев В.М. (это те по которым у нас в институте построены курсы, мне они весьма понравились).


Большое человеческое спасибо


Физика в анимациях - Купить диск - Тесты по физике - Графики on-line

Реклама: гостиничные чеки Санкт- Петербург, вс
Rambler's Top100