Метод пятиточечной прогонки. Решение Дифференциальных уравнений. Разностные схемы

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

Постановка задачи:

Дифференциальная задача:

y''(x)=f(x,y(x));


f – заданная функция
K – число отрезков разбиения (узлов сетки), задается с клавиатуры.
[a,b] – рассматриваемый промежуток, задается с клавиатуры.
y(0) = φ, y(K)=ψ - краевые условия;

Используя заданную схему сеточной аппроксимации, решить систему сеточных уравнений методом пятиточечной прогонки.

Заданная схема сеточной аппроксимации:

Для внутренних точек

Узлы сетки разностной схемы

Разностная схемаа

Для первого уравнения (i=1) предлагается

Узлы сетки разностной схемы

Разностная схемаа



Для последнего уравнения (i=k-1) предлагается

Узлы сетки разностной схемы

Разностная схемаа

Решение:

Понятно, что пятиточечная прогонка несколько сложнее трехточечной, и ее использование целесообразно только в случаях, требующих повышенной точности результата.

Тестирование метода пятиточечной прогонки я решил продемонстрировать на примере 4 функций (разумеется, сначала брал решение, потом его дифференцировал и получал F(x))

F(x) = 2Sin(x) + 4xCos(x) – y(x);     //решением будет y= x2Sin(x) +C
F(x)= 6x*ln(x) + 5x;                    //решением будет y= x3ln(x)+C
F(x):= – Cos(x);                       //решением будет y= Cos(x)+C
F(x):= 0; (без кривизны)     //решением будет y= K*x + C

Поскольку я знаю формулы решения, то могу строить теоретически правильные графики для сравнения.

Задача, конечно, не тривиальна. Используются одновременно три разностных схемы.
Коэффициенты для каждой из них будут свои, и рассчитывать их надо аккуратно…

        разряженная матрица разностной схемы

Получилась такая разряженная матрица (в пустых клетках, конечно, нули).

Сначала в массив y[i] помещаем значения F(x,y,y’) как вектор свободных членов…

Далее, методом пятиточечной прогонки (преобразованиями Гаусса) приводим эту матрицу к единичной, и в результате в векторе-столбце F(x,y,y’) , а значит и в массиве y[i] получаем искомые у(х[i]) для каждого узла сетки.

Полученный массив остается вывести на график и в текстовое окно результата.

Ну, и сравнить с эталонной функцией…

Программа для тестирования метода пятиточечной прогонки

Вот как классно совпадает график рассчитанный с теоретическим (точным)…

Приобретайте код и тестируйте на своих функциях…
Или я могу ваши функции поместить в код…

Ехе-файл скачать бесплатно.




Другие примеры на тему «РЕШЕНИЕ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ»

Другие примеры на языке «Delphi»


Поделиться в соц сетях:




Если на этой странице не нашлось того, что Вы так искали...

         Не расстраивайтесь, не все потеряно... Смело щелкайте...

исходный код на заказ. orenstudent.ru Автоматизация документов MS Office. orenstudent.ru исходный код на заказ. orenstudent.ru Помогите найти и устранить ошибку в исходном коде программы. orenstudent.ru Skype-консультирование по программированию
Скайп-консультации

Акция !!!
исходный код комментарии цена минимальная


требуются
школьники!


и СТУДЕНТЫ!
Кому не плевать
на деньги!
Сайт помощи студентам по программированию и информатике

Program code