
Курсовая работа (Delphi) - КИ МГОУ / справка
.htmlсправка Курсовая работа
по дисциплине:
“Программирование и основы алгоритмизации ”
Данная программа предназначена для решения дифференциального уравнения и решения системы уравнений. Для их реализации использованы метод Эйлера и метод Гаусса. Далее рассмотрим эти методы подробнее.
Метод Гаусса
Метод Гаусса является прямым методом и заключается в приведении матрицы системы к треугольному виду.
Пусть дана система уравнений:
Исключаем Х1 из II и III уравнений.
Обратный ход начинаем с решения уравнения(3).
Так как в процессе преобразования используется деление на диагональные элементы, эти элементы не должны равняться нулю. Для того, чтобы в случае получения нуля можно было продолжить решение, меняем строки местами. Применяем поиск ведущего ненулевого элемента, если такой элемент найден, то меняем местами строку, содержащую диагональный элемент равный нулю, со строкой, содержащей найденный ненулевой элемент.
Ниже приведена блок-схема, отображающая алгоритм метода Гаусса (блок-схема оптимизированна, т.к. полученные нулевые коффициенты нижнего треугольника не участвуют в вычислениях в обратном коде, то их можно не вычислять)
Метод Эйлера с пересчетом
Метод основан на разложении функции y=y(x) в ряд Тейлора в окресности x0:
y(x0+h)=y(x0)+hy'(x0)+(1/2)h2 y''(x0)+...
Если h мало, то члены, содержащие h во второй и более высоких степенях, являются малыми и ими принебрегают. Тогда
y(x0+h)=y(x0)+hy'(x0)
Значение y'(x0) находим из дифференциального уравнения, подставив в него начальные условия. Таким образом можно получить приблеженное значение зависимой переменной при малом смешении h от номинальной точки. Этот процесс можно продолжать, использую соотношение
y(i+1)=y(i)+hf(x(i)y(i))? i:=1,2,3....
Для получения более точного значения используют метод Эйлера с пересчетом. Возьмем значение правой части f(х, у) уравнения равным среднему арифмитическому между f(x(i),y(i)) и f(x(i+1),y(i+1)), тогда получим
y(i+1)=y(i)+h/2(f(x(i), y(i))+f(x(i+1), y(i+1)), i=1,2,...
Имея начальное приближение y(i), то можно построить решение с использованием двух иттераций:
y*(i+1)=y(i)+hf(x(i), y(i))
y(i+1)=y(i)+h/2(f(x(i), y(i)+f(x(i+1), y*(i+1))
Погрешность метода Эйлера с пересчетом имеет локальную погрешность на каждом шаге О(h3), суммарная - имеет порядок h2
Для метода Эйлера с пересчетом рационально вводить автоматический выбор шага в кждом узле: если величина |y(i+1)-y*(i+1)|решение системы уравнений. Откроется следущее окно:
Введи коэффициенты уравнений при неизвестных либо введите значения тестового примера меню->ввести тестовый пример. Для решения: меню->решить систему.
Для решения дифференциального уравнения на управляюшей форме выберете меню->решение дифференциального уравнения. Откроется следущее окно:
Введите начальные условия, шаг, точность и конечное значение Х либо введите значения тестового примера меню->ввести тестовый примерю Для решения: меню->вычислить значение функции. Результ представлен в виде таблицы значений х и соответствующих у: