- •В.В.Бурляев численные методы в примерах на excel
- •1. Решение нелинейного уравнения с одним неизвестным.
- •1.1 Отделение корней.
- •1.2 Уточнение корней: метод итераций.
- •1.3 Уточнение корней: метод Ньютона.
- •1.4. Уточнение корней: метод бисекции ( деления отрезка пополам ).
- •1.5 Уточнение коней: подпрограмма excel “Подбор параметра”.
- •2. Системы линейных алгебраических уравнений.
- •2.1. Матричный метод.
- •2.2. Метод приближенных вычислений.
- •2.3. Метод Гаусса – Зайделя.
- •3. Решение систем нелинейных уравнений.
- •3.1. Выбор начальных приближений.
- •3.2 Метод Ньютона.
- •3.3. Метод итераций.
- •4. Численные методы одномерной оптимизации.
- •4.1. Метод дихотомии.
- •4.2. Метод золотого сечения.
- •4.3. Встроенная подпрограмма excel “Поиск решения”.
- •5. Многомерные задачи оптимизации.
- •5.1. Безусловная оптимизация: метод покоординатного спуска.
- •5.2. Безусловная оптимизация: метод наискорейшего спуска.
- •5.3. Безусловная оптимизация: подпрограмма excel “Поиск решения”.
- •5.4. Условная оптимизация: метод штрафных функций.
- •5.5. Условная оптимизация: подпрограмма excel “Поиск решения”.
- •5.6. Условная оптимизация: линейное программирование.
- •6. Метод наименьших квадратов.
- •7. Вычисление определенных интегралов.
- •8. Численное решение обыкновенного дифференциального уравнения
- •8.1. Метод Эйлера.
- •8.2. Метод Рунге-Кутта четвертого порядка.
- •8.3. Метод прогноза и коррекции: метод Адамса.
- •9. Решение систем обыкновенных дифференциальных уравнений.
- •9.1. Задача Коши.
- •9.2. Краевая задача: метод стрельбы.
- •9.3. Краевая задача: метод прогонки.
- •10. Численное решение уравнений с частными производными
9.3. Краевая задача: метод прогонки.
Рассмотрим метод прогонки на примере решения уравнения второго порядка вида
Y”+p(X)Y’+q(X)Y=f(X)
на отрезке [Х0, Хn] с заданными граничными условиями Y(Х0)=Y0=А и Y(Хn)=Yn=В. Смысл решения заключается в расчете таблицы приближенных значений искомой функции Y(Х) в узлах Хi= Х0+ih, где h=(Хn - Х0)/n и i=1,2,...,n-1.
Заменим приближенно в каждом внутреннем узле производные Y” и Y’ конечными центрально-разностными отношениями
Yi“=( Yi+1 -2Yi + Yi-1)/h2 и Yi‘=( Yi+1 - Yi-1)/(2h).
Обозначим pi=p(Хi), qi=q(Хi), fi=f(Хi).
Используя эти формулы, приближенно заменим исходное дифференциальное уравнение второго порядка на систему линейных алгебраических уравнений
( Yi+1 -2Yi + Yi-1)/h2 + pi ( Yi+1 - Yi-1)/(2h) + qiYi = fi,
где i=1,2,...,n-1 , Y0=А и Yn=В. Решив эту систему, получим таблицу приближенных значений искомой функции. При большом n непосредственное решение такой системы, например, методом Гаусса становится громоздким. Учитывая специфический вид полученной системы алгебраических уравнений, а именно- что матрица коэффициентов ее трехдиагональна, применим специальный метод решения, называемый методом прогонки.
Запишем систему в виде
ai Yi-1+bi Yi +ci Yi+1 =di ,
где ai =1-hpi /2, bi = h2qi -2, ci =1+hpi /2, di = h2fi.
Введем дополнительные переменные
vi = - ci /( bi + ai vi-1) и ui = (di - ai ui-1)/(bi + ai vi-1).
Чтобы сделать схему вычислений однородной, положим a0=0 и cn=0. Тогда vn=0 и Yn=un. Кроме того, v0 = - c0/b0 и u0 = d0/b0.
Тогда решение системы определяется формулой
Yi = ui + vi Yi+1 .
Пример 9.3.
Решим задачу примера 9.1 с граничными условиями Y(1)=0,77 и Y(1,5)=0,49281, выбрав шаг 0,1 с погрешностью 0,001.
Как видно из условий задачи, h = 0,1, q=1, f=0, d=0, p=1/X для всех Х.
Откроем новый рабочий лист и выделим блок А4:А9 под значения Х от 1 до 1,5. В блок В5:В8 занесем значения 1/X, отведем столбцы С,D,E для текущих значений ai, bi, ci, столбцы F и G - для значений vi и ui , а столбец Н - для значений Y.
Занесем числа: в ячейку F4 - ноль, в ячейки G4 и H4 - число 0,77. Соответственно, в ячейку F9 - тоже ноль, в ячейки G9 и H9 - число 0,49281.
Формулы ячеек в строке 5 представлены в таблице.
-
ячейка
формула
B5
=1/A5
C5
=1-B5*$B$2/2
D5
=$B$2^2-2
E5
=1+B5*$B$2/2
F5
=-E5/(D5+C5*F4)
G5
=-C5*G4/(D5+C5*F4)
H5
=G5+F5*H6
Формулы в строках 6,7,8 должны быть скопированы из строки 5. Результаты вычислений приведены ниже. Можно сравнить их с результатами расчетов в примере 10.2, чтобы оценить полученную погрешность.
10. Численное решение уравнений с частными производными
Метод сеток или метод конечных разностей является одним из самых распространенных в настоящее время методов численного решения уравнений с частными производными. В его основе лежит идея замены производных конечно-разностными отношениями. Мы ограничимся случаем двух независимых переменных.
Рассмотрим в качестве примера смешанную задачу для уравнения теплопроводности: найти значения функции U(X,T) , удовлетворяющие уравнению
dU/dT = Dd2U/dX2
с начальными условиями (т.е. при Т=0) U(X,0) = f(X) и
краевыми условиями первого рода U(0,T) = g1(T) и U(L,T) = g2(T).
Таким образом может быть описана задача о распространении тепла в однородном стержне длины L , на концах которого поддерживается заданный температурный режим. Соответствующей заменой переменных эту задачу можно свести к каноническому уравнению при D=1 и L=1
dU/dT = d2U/dX2
Заметим, что начальные и граничные условия должны быть согласованы, т.е. U(0,0) = f(0)= g1(0) и U(1,0)=f(1)= g2(0).
Построим на плоскости X0T равномерную прямоугольную сетку с шагом h в направлении Х и шагом l - в направлении Т:
Х= ih ( i= 0,1,2,...,n) и T=jk (j=0,1,2,...).
Обозначим Xi= ih и Tj= jk, а также U(Xi, Tj)=Ui,j. Любой узел этой сетки, номер которого (i,j), определяется координатами(Xi,Tj). Узлы сетки, лежащие на границе полуполосы Т>=0 и 0<=X<=1, называются граничными, все остальные узлы - внутренними. Начальные и краевые условия считаются заданными в граничных узлах сетки. Приближенно заменим в каждом внутреннем узле вторую частную производную по пространственной координате Х конечно-разностным отношением
(d2U/dX2)i,j =( Ui,j-1 -2Ui,j + Ui,j+1)/h2,
а первую частную производную по временной координате - конечно-разностным отношением
(dU/dT)i,j =( Ui,j+1 - Ui,j)/k.
Тогда вместо исходного дифференциального уравнения, получаем алгебраическое уравнение вида
( Ui,j+1 - Ui,j)/k = ( Ui-1,j -2Ui,j + Ui+1,j)/h2.
Обозначив q=k/h2 , приведем это уравнение к виду
Ui,j+1 =(1-2q)Ui,j + q(Ui-1,j+Ui+1,j).
Задавая i=0,1,2,..,n и j=0, увидим, что все слагаемые в правой части этого уравнения могут быть вычислены из граничных условий. Поэтому таким образом можно вычислить все значения U на первом временном слое при j=1. Далее, задавая j=1, можно вычислить по этой формуле значения функции U во всех узлах второго временного слоя при j=2 и т.д. Такая схема вычислений называется явной. Доказано, что вычисления по этой схеме будут устойчивы, если 0<q<= 0,5. Задавая q=0,5, получим алгебраическое уравнение
Ui,j+1 =(Ui-1,j+Ui+1,j)/2.
Таким образом, используя это уравнение, можно вычислить значения функции U на каждом временном слое через значения на предыдущем слое.
Пример 10.1.
Hайти значения функции U(X,T) , удовлетворяющие уравнению
dU/dT = Dd2U/dX2
с начальными условиями (т.е. при Т=0) U(X,0) = Sin(X) и 0<X<=1,
краевыми условиями первого рода U(0,T) = 0 и U(1,T) = 0.
Выберем по аргументу Х шаг h=0,1, т.е. n=10. Так как q=0,5, то по аргументу Т получаем шаг k=h2/2=0,005.
Откроем новый рабочий лист EXCEL. Отведем столбец А под номера временных слоев от 0 до, например, 25. Заполним блок А3:А28 числами от 0 до 25. Во второй строке в ячейки В2:L2 занесем значения пространственной координаты Х от 0 до 1. В блок В3:В28 и в блок L3:L28 занесем нули - значения краевых условий. В ячейку С3 занесем формулу =SIN(3,1415*C2) и скопируем ее в блок D3:K3. Тем самым введем в нулевой временной слой начальные условия. Далее в ячейку С4 введем основную расчетную формулу, полученную из алгебраического конечно-разностного уравнения =(B3+D3)/2. Эту формулу надо скопировать в блок С4:L28.
Результаты вычислений представлены в таблице для первых 19 слоев.
Бурляев Валерий Викторович
Под редакцией Корнюшко В.Ф.
Численные методы в примерах на EXCEL.
Методическое пособие по дисциплине “Программирование и численные методы”.
Рецензент - д.т.н. профессор Бахвалов Л.А.
Подписано в печать
Печать офсетн., бум. офсетн., формат 60х90/16, тираж 100 экз., заказ
117571, Москва, пр. Вернадского, 86
издательско-полиграфический центр МИТХТ