Учебное пособие_Численные методы -26 -дек_2014 (97-2003)
.pdf}
void trap(){
double integral=0, t; for(t=a+h; t<=b-h; t=t+h){
integral=integral+f(t);
}
integral=h*((f(a)+f(b))/2.0+integral); cout<<"integral trap="<<integral<<endl;
}
void simps(){
double s1=0,s2=0,integral,t; for(t=a+h; t<=b-h; t=t+2.0*h)
s1=s1+f(t);
for(t=a+2.0*h; t<=b-2.0*h; t=t+2.0*h) s2=s2+f(t);
integral=h/3.0*(f(a)+f(b)+4.0*s1+2.0*s2); cout<<"integral simps="<<integral<<endl;
}
void centr(){
double integral=0,tc; for(tc=a+h/2.0; tc<b; tc=tc+h){
integral=integral+f(tc);
}
integral=integral*h;
cout<<"integral centr="<<integral<<endl;
}
void main(){ prav(); lev(); trap(); simps(); centr();
}
Результат выполнения программы представлен на рис. 6.11.
Рис. 6.11. Результат выполнения программы
Пример 6.8
Производство оборудования некоторого вида характеризуется
темпом роста его выпуска K y 1 , где y - прирост выпуска этого
t y
оборудования за промежуток времени t , а y – уровень его производства за единицу времени на момент времени t. Найти общее количество оборудования, произведенного за 10 лет, полагая, что К – известная постоянная величина, единицей времени является год, а начальный момент времени t=0.
191
Решение в Microsoft Visual Studio
Код программы С++ взят из предыдущего примера.
Результаты выполнения программ при различных n представлен на рис. 6.16рис. 6.19.
Рис. 6.16. Результат выполнения программы при n=10
Рис. 6.17. Результат выполнения программы при n=100
Рис. 6.18. Результат выполнения программы при n=1000
Рис. 6.19. Результат выполнения программы при n=10000
194
Контрольные вопросы
1.Какую формулу называют квадратурной?
2.Как определяется остаточный член квадратурной формулы?
3.Какой вид имеет квадратурная формула Ньютона – Котеса?
4.Какой вид имеет интерполяционный многочлен Лагранжа n-й степени?
5.В чём заключается метод прямоугольников?
6.В чём отличие метода левых, правых и центральных прямоугольников?
7.Как вычисляется интеграл по методу центральных прямоугольников?
8.Как вычисляется интеграл по методу трапеций?
9.В чём заключается метод Монте–Карло?
10.Чем отличается метод Монте–Карло с заданной точностью?
195
11.
7. Решение однородных дифференциальных уравнений
Приближённые методы решения дифференциального уравнения – это методы получения аналитических выражений, либо численных значений,
|
приближающих |
искомое |
частное решение |
||
|
дифференциального уравнения. |
||||
|
Для получения приближённого решения в |
||||
|
виде аналитического |
выражения используют |
|||
|
метод Эйлера (метод ломаных),основанный на |
||||
|
приближённом вычислении квадратуры. Этот |
||||
|
метод был предложен в 1768 г. Метод Эйлера |
||||
|
относится к семейству методов Рунге-Кутты: |
||||
|
это одношаговый метод численного решения |
||||
Леонард Эйлер |
задачи |
Коши |
для |
системы обыкновенных |
|
(1707 – 1783) |
дифференциальных уравнений. |
||||
|
|||||
Основная идея |
метода |
применительно |
к |
дифференциальным |
уравнениям первого порядка была предложена Карлом Рунге, немецким
|
физиком и математиком, в |
|
||
|
1885 г. |
|
|
|
|
Дальнейшее |
развитие |
|
|
|
этот метод получил в работах |
|
||
|
Вильгельма Кутта в 1901 г. |
|
||
|
Французский математик |
|
||
|
Эмиль |
Пикар |
развил |
|
|
ещё один метод после- |
|
||
|
довательных приближений, |
|
||
Вильгельм Кутта |
который был назван в его |
Эмиль Пикар |
||
честь. |
|
|
(1856 – 1941) |
|
(1867 – 1944) |
|
|
||
|
|
|
|
Общие замечания
Обыкновенными дифференциальными уравнениями называются уравнения с одной независимой переменной. Обыкновенное дифференциальное уравнение любого порядка при помощи замены переменных может быть сведено к системе уравнений первого порядка.
В общем виде преобразование выглядит следующим образом: дифференциальное уравнение n-го порядка
196
заменой переменных v(k)=vk сводятся к системе n уравнений первого порядка
v |
v |
k 1 |
, |
0 k n 2, |
k |
|
|
|
где обозначено v0≡v.
В соответствии с изложенным, далее будут рассматриваться системы уравнений первого порядка:
Решение системы n-го порядка зависит от n параметров c1 , c2 ,..., cn .
Единственное решение получается при использовании дополнительных условий для искомой функции. В зависимости от того, каким образом ставятся данные условия, различают три типа задач для обыкновенных дифференциальных уравнений: задача Коши, краевая задача и задача на собственные значения. В задаче Коши все дополнительные условия ставятся в одной точке: vk(x0)=vk,0, 1≤k≤n. Решение отыскивается в некотором интервале x0≤x≤xl.
Если правые части φk |
уравнений |
непрерывны в некоторой |
окрестности начальной точки |
x0 , v1,0 , v2,0 ,..., vn,0 |
, и удовлетворяют условию |
Липшица по переменным vk, то решение задачи Коши существует, единственно и непрерывно зависит от координат начальной точки, т.е. задача является корректной. φ
Условие Липшица формулируется следующим образом:
для любых точек x, v1,l , v2,l ,..., vn,l , x, v1,m , v2,m ,..., vn,m .
Методы решения
Можно выделить три типа методов решения обыкновенных дифференциальных уравнений: точные, приближенные и численные. Точные методы предусматривают получение решения в виде комбинации элементарных функций или в виде квадратур от последних. Возможности точных методов ограничены. Приближенные методы сводятся к построению последовательности функций wn(x), имеющих пределом искомую функцию vn(x). Обрывая эту последовательность на каком-то k, получают приближенное решение. Наиболее универсальными методами решения являются численные. Их основной недостаток – возможность получения только частного решения. Следует иметь в виду следующее обстоятельство. Успех от применения численного метода сильно зависит от обусловленности задачи, т.е. задача должна быть хорошо обусловлена,
197
При решении дифференциальных уравнений приближенным методом основным является вопрос о сходимости. Применительно к разностным
методам традиционно более |
употребительно понятие сходимости при |
||
h 0. Обозначим значения |
сеточной функции |
yi |
значения точного |
решения дифференциального уравнения (7.1) |
в узле i v(xi ) ( yi являются |
||
приближенными значениями |
v(xi ) ). Сходимость при h→0 означает |
||
следующее. Фиксируем точку x и строим совокупность сеток |
таким |
||
образом, что h→0 и |
(при этом |
). Тогда считают, что |
|
численный метод сходится в точке x, если |
yi v(xi ) 0 при |
h 0 xi x . |
Метод сходится на отрезке a, b , если он сходится в каждой точке |
x a,b . |
Говорят, что метод имеет p-й порядок точности, если можно найти такое |
|||
число p 0 , что |
yi v(xi ) O h |
p |
при h 0. |
|
|
|
Введем далее понятие невязки, или погрешности аппроксимации разностного уравнения, заменяющего заданное дифференциальное уравнение, на решении исходного уравнения, т.е. невязка представляет
собой результат подстановки точного решения уравнения (7.1) |
v(x) |
в |
разностное уравнение. Например, (7.1) можно заменить простейшим разностным уравнением
|
|
. |
Тогда невязка определится выражением |
. |
|
Приближенное решение не совпадает, вообще говоря, c Ui, поэтому |
||
невязка |
в i-й точке не равна нулю. |
Вводят следующее определение: |
численный метод аппроксимирует исходное дифференциальное
уравнение, если |
при h 0, и имеет p-й порядок точности, если |
. |
|
Доказывается, |
что порядок точности численного метода решения |
дифференциального уравнения совпадает с порядком аппроксимации при достаточно общих предположениях.
Теперь перейдем к анализу схем Рунге-Кутта. Сначала обратимся к схемам второго порядка точности.
Используя формулу Тейлора, решение дифференциального уравнения (7.1) можно представить в виде
|
|
v |
|
v |
|
h v |
|
1 |
h2 v ... |
|
|
|
||
|
|
n 1 |
|
|
|
|
|
|||||||
где обозначено vn |
v(xn ), |
|
|
n |
n |
n |
|
2 n |
n |
, |
|
(7.6) |
||
vn v (xn ), |
hn |
xn 1 |
xn . |
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Отметим, |
что |
согласно |
|
|
уравнению |
(7.1) |
, |
|||||||
|
. |
|
|
|
|
|
|
|
|
|
|
|
|
|
Далее удерживаем только выписанные члены ряда. Представим вторую производную следующим образом:
200