Консультация № 184138
03.10.2011, 22:15
94.45 руб.
04.10.2011, 13:35
0 12 1
Здравствуйте! У меня возникли сложности с таким вопросом:
Решение краевой задачи для ОДУ 2го порядка
(Метод прогонки)
Нужно решить Дифференциальное уравнение
y''-(6/x)*y'+(4+2x^2)*y=-2

Краевые условия
y(-2)=0;
y(-1)=-1


[a,b]
[-2,-1]

N
10

В приложенном файле есть некоторые формулы и само задание.Если можно,то подробнее для разбора-понимания
Заранее спасибо

Обсуждение

Неизвестный
03.10.2011, 22:16
общий
файл
Прикрепленные файлы:
d4236a00195616a8d266705180826def.doc
давно
Посетитель
7438
7205
04.10.2011, 10:59
общий
Для начала уточните, пожалуйста, интервал и краевые условия.
Полагаю, краевые условия должны задаваться на концах интервала [a, b],
у Вас же интервал один, а краевые условия заданы в других точках...
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
Неизвестный
04.10.2011, 11:52
общий
04.10.2011, 11:52
Адресаты:
Краевые верно написаны
А интервал можно выбрать по-своему усмотрению
давно
Профессионал
304622
583
04.10.2011, 13:09
общий
Согласно данным вами расчётным формулам краевый условия задаются в точках a и b:
[$945$]1*y(a) - [$945$]2*y'(a) = [$945$]
[$946$]1*y(b) + [$946$]2*y'(a) = [$946$]

А в постановке задачи написано:
y(-2)=0;
y(-1)=-1

Это значит, что
a = -2
b = -1

Ну, а из таблице получается, что
a = 0
b = [$960$]

Ещё одно: в общем виде уравнения производная стоит, как q(x)*y'(x). А в постановке задачи -- -6/y’. Делить, а не умножить.

Всё-таки это опечатки или что?
Неизвестный
04.10.2011, 13:27
общий
Адресаты:
Поглядел
Верная форма: y''-(6/x)*y'+(4+2x^2)*y=-2
а=-2,b=-1
давно
Профессионал
304622
583
04.10.2011, 14:55
общий
это ответ
Здравствуйте, life!

В этом задании всё очень детально расписано. Я, собственно, ничего не решал -- тупо вбил готовые формулы в Excel. Файл прикреплён.

Только пару моментов можно отметить:
а) в тексте пропущена формула tn=[$946$]/B0. Это, кстати, видно из того, никак задействовано [$946$] из второго граничного условия.
б) расчёт Si и ti идёт от 0 к n, поэтому формулы заносятся в таблицу (растягиваются) сверу вниз, а yi -- наоборот, от n к 0, поэтому растягиваются снизу вверх (от ячейки I16 до ячейки I7).

Кроме того, для ячеек с параметрами h, a, b и т.д. я задал имена. Справа проверочный расчёт: вычислены конечно-разностные аппроксимации для y'' и y', которые подставлены в исходное уравнение.

Что написать подробнее по самому решению, я не вижу. Но что-то непонятно в идее метода, что, откуда и почему взялось -- пишите в мини-форум.
Прикрепленные файлы:
Неизвестный
07.10.2011, 19:31
общий
Адресаты:
Спасибо! Хотелось бы еще какой-нибудь теории относительно метода,всех параметров-для чего они в расчёте.Если можете расскажите или подскажите ссылку
давно
Профессионал
304622
583
07.10.2011, 21:51
общий
Хорошо, напишу. Может быть немножко позже.
Неизвестный
12.10.2011, 14:45
общий
12.10.2011, 14:46
Адресаты:
Напишите пожалуйста
давно
Профессионал
304622
583
14.10.2011, 18:00
общий
14.10.2011, 18:02
Извините, что задержал с ответом. Занят был.

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

1) Для численного (приближенного) решения дифференциального уравнения дифференциальные операторы заменяют на заданной сетке yi приближенным алгебраическим аналогом, т.н. аппроксимацией. В вашем случае задано:
yi''[$8776$](yi+1 - 2*yi + yi-1)/h2
[$8658$]p(xi)*yi''[$8776$]yi+1*(pi/h2) - yi*(2*pi/h2) + yi-1*(pi/h2)
yi'[$8776$](yi+1 - yi-1)/2h
[$8658$]q(xi)*yi'[$8776$]yi+1*(qi/2h) - yi-1*(qi/2h)

В результате для каждого yi получают алгебраическое уравнение, которое в силу свойств данной задачи включает в себя слагаемые, содержащие только три неизвестных: yi+1, yi и yi-1. Коэффициенты при них сгруппированы в три числа, соответственно, Ai, Bi и Ci. В их формулах это хорошо видно. B0, C0, An и Bn вычисляются особо, потому что заданы в выражении для граничных точек. Там аппроксимируются дифференциальные выражения граничных условий. При чём для прозводной используется не центральня аппроксимация (показанная выше), а левая и правая.

После этого получается система алгебраических уравнений -- по одному в каждой точке сетки. Матрица системы получается трёхдиагональной, т.е. ненулевые коэффициенты стоят только главной диагонали и рядом с ней. Для решения применён метод прогонки, который по сути идентичен известному методу Гаусса. Т.е. алгоритмически они полностью эквивалентны -- так же, как в Гауссе, делаются два прохода: а) прямой для обнуления (т.н. исключения) поддиагональных элементов и б) обратный для вычисления искомых значений.
В отличие от Гаусса в прогонке оптимизированны некоторые очевидные вещи. 1) В памяти хранится не вся матрица, а только три линейных массива A, B и С для нижней, главной и верхней диагоналей. 2) Формулы проходов сжаты выражения Si и ti.

Вот вроде все. Что ещё непонятно -- пишите.
Неизвестный
18.10.2011, 21:32
общий
Адресаты:
Большое спасибо! В теории более-менее становится ясно:) Первый пункт всё ясно.
Можете расписать как для пункта один и дальше на данном примере?
давно
Профессионал
304622
583
20.10.2011, 22:51
общий
20.10.2011, 22:53
По коэффициентам разностной схемы см. прикреплённый файл.

Относительно прогонки. В самой прогонке, собственно, понимать нечего: есть простые формулы -- в методичке они приведены. Сначала вычисляются величины S и t. При чём каждая следующая на основе предыдущей -- Si по Si-1, а ti по ti-1 и Si-1.
А потом вычисление самих y. Это уже обратным ходом -- сначала yn=tn, а потом каждое yi на основе yi+1.

Если же говорить, откуда такие выражения, то в первую очередь надо уяснить -- это модификация метода Гаусса. Задайте сначала себе вопрос, понимаете ли вы этот метод? (Кстати, то, как в школе решают системы из 2-х уравнений, это тоже метод Гаусса.)
Прикрепленные файлы:
690f365fecdfc67795f2349ff476661c.doc
Форма ответа