Учебное пособие 1842
.pdfпоэтому на практике используют менее строгий метод контроля точности численного решения — принцип Рунге. Данный принцип заключается в сравнении численных решений, полученных на временных сетках с шагом 2h и h, в одних и тех же узлах временной сетки. Абсолютное значение разности этих решений характеризует величину погрешности численного решения. Недостаток настоящего подхода состоит в том, что при данном способе контроля приходится ограничиваться квадратурными формулами, пригодными только для сеток с равномерным шагом.
Рис. X.2. Численное решение интегрального
2 |
x(s)ds |
|
|
|
|
уравнения x(t) |
|
|
|
t 1 |
t 4 t. |
t s |
2 |
||||
1 |
|
|
|
|
Важно понимать, что необходимо согласовывать выбор конкретной квадратурной формулы (порядок ее точности) со степенью гладкости ядра интегрального уравнения. Если ядро и свободный член оказываются недостаточно гладкими, то для вычисления интеграла не следует применять высокоточные
квадратуры, а лучше ограничится такими формулами, как формулы трапеций и прямоугольников.
Это замечание иллюстрирует рис. X.3, на котором представлено решение уравнения из примера X.1, полученное при использовании квадратурной формулы Симпсона. Далее приведен листинг файла Solve2_g11.m (листинг X.4), содержащего описание соответствующей функции.
Листинг X.4. Файл Solve2_g11.m function [X,Y]=solve2_g11(x1,x2,N,Lambda) % задание временной сетки h=(x2-x1)/(N-1);
i=1:N; t(i)=x1+h*(i-1); s=t;
% задание коэффициентов квадратурной формулы метода Симпсона
A(1)=1/3;
A(N)=1/3;
k=0;
for i=2:N-1 if k==0
A(i)=4/3;
k=1; else
A(i)=2/3;
k=0;
end;
end;
%вычисление значений функции Q(t,s) в узлах сетки for i=1:N
for j=1:N q(i,j)=Q11(t(i),s(j));
end;
end;
%вычисление значений функции f(t) в узлах временной сетки
F=f11(t);
for i=1:N for j=1:N
if i==j
237 |
238 |
M(i,j)=1-Lambda*A(i)*q(i,j)*h; else
M(i,j)=-Lambda*A(i)*q(i,j)*h; end;
end;
end;
X=t;
Y=M^-1*F'; % нахождение решения интегрального уравнения
Для получения численного решения интегрального уравнения следует создать файлы q11.m, f11.m, Solve1_g11 и затем выполнить следующую последовательность команд:
>>x1=1; % левая граница отрезка поиска решения
>>x2=2; % правая граница отрезка поиска решения
>>Lambda=1;
>>N=300; % число узлов разбиения отрезка
>>[X,Y]=solve2_g11(x1,x2,N,Lambda);
>>plot(X,Y) % визуализация решения интегрального уравнения
%(рис. X.3)
Рис. X.3. Численное решение интегрального уравнения
2 |
x(s)ds |
|
|
t 4 t при использовании формулы |
|
x(t) |
|
|
|
t 1 |
|
t s |
2 |
||||
1 |
|
|
|
|
Симпсона
10.3. Квадратурный метод решения интегральных уравнений Вольтера
Так как линейные интегральные уравнения Вольтерра в отличие от уравнения Фредгольма имеют единственное непрерывное решение при любых значениях параметра λ, при нахождении численного решения уравнения
t |
|
x(t) Q(t, s)x(s)ds f (t), |
(X.19) |
a
где t [а, b], можно положить λ = 1.
Учитывая, что уравнение Вольтерра формально можно считать уравнением Фредгольма вида
t |
|
|
x(t) Q(t, s)x(s)ds f (t) |
|
(X.20) |
a |
|
|
с ядром |
|
|
Q(t, s) при a s t b |
(X.21) |
|
K(t, s) |
, |
|
0 при a t s b |
|
|
для нахождения решения рассматриваемого уравнения воспользуемся результатами предыдущего раздела.
Введем в рассмотрение временную сетку s j [a, b] , состоящую
из п узлов, и выберем конкретную квадратурную формулу с весами Аj, тогда приближенное решение интегрального уравнения принимает вид (X.17). Составим систему линейных алгебраических уравнений, аналогичную системе (X.18), которая в силу свойств ядра интегрального уравнения (X.21) вырождается в треугольную:
|
|
|
|
|
(1 A1Q11 )x1 f1 |
|
|
|
|
|
|
|
||||
|
|
|
A1Q21 x1 |
(1 A2Q22 )x2 f2 |
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
(X.22) |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A Q |
n1 |
x |
1 |
A Q |
n2 |
x |
2 |
(1 |
A Q |
nn |
)x |
n |
f |
n |
. |
|
|
1 |
|
2 |
|
|
n |
|
|
|
239 |
240 |
|
Из (X.22) видно, что искомые значения x1, x2,…,хп находятся последовательными вычислениями по следующим формулам:
x1 f1 , (X.23) 1 A Q
1 11
i 1
fi Aj Qij x j
xi |
|
j 1 |
, |
(X.24) |
|
1 |
Ai Qii |
||||
|
|
|
Пример X.2. Решение в пакете МАТLАВ интегрального уравнения
x(t) t cos2 (ts3 )x(s)ds t 2 |
|
1 |
tg(t 4 ). |
|
|||
3 |
|
3 |
|
(Точное решение уравнения х = t2.) |
|
|
|
1.Создайте файл q11_2.m (листингX.5), содержащий описание функции, возвращающей значения подынтегральной функции. Листинг X.5. Файл q11_2.m
function z=Q11_2(t,s) z=t*cos(t*s.^3).^2;
2.Создайте файл F11_2.m (листинг X.6), содержащий описание функции, возвращающей значения функции f(t).
Листинг X.6. Файл F11_2.m function z=f11_2(t) z=t.^2-1/3*tan(t.^4);
3.Создайте файл Solve3_g11.m (листинг X.7), содержащий описание функции, возвращающей решение интегрального уравнения.
Листинг X.7. Файл Solve3_g11.m function [T,Y]=Solve3_g11(t1,t2,N) % задание временной сетки h=(t2-t1)/(N-1);
i=1:N; t(i)=t1+h*(i-1);
241
s=t;
% задание коэффициентов квадратурной формулы метода трапеций
A(1)=0.5; m=2:N-1; A(m)=1; A(N)=0.5;
%вычисление значений функции Q(t,s) в узлах сетки for i=1:N
for j=1:N Q(i,j)=Q11_2(t(i),s(j));
end;
end;
%вычисление значений функции f(t) в узлах временной сетки
F=f11_2(t);
%вычисление решения интегрального уравнения
x(1)=F(1)./(1-A(1)*Q(1,1)); for m=2:N
S=0;
for j=1:m-1 S=S+h.*A(j).*Q(m,j).*x(j);
end; x(m)=(F(m)+S)./(1-h.*A(m).*Q(m,m));
end;
T=t;
Y=x;
4. Выполните следующую последовательность команд:
>>t1=0; % левая граница отрезка поиска решения
>>t2=0.5; % правая граница отрезка поиска решения
>>N=300; % число узлов разбиения отрезка
>>[X,Y]=solve3_g11(x1,x2,N,Lambda);
>>plot(X,Y) % визуализация решения интегрального уравнения
%(рис. X.4)
242
Рис. X.4. Численное решение интегрального уравнения
t |
|
1 |
|
|
x(t) t cos2 (ts3 )x(s)ds t 2 |
|
tg(t 4 ). |
||
3 |
||||
0 |
|
|
||
|
|
|
%оценка параметров решения интегрального уравнения
%методом наименьших квадратов
>>Z=[ones(size(X'))X'X'.^2];
>>a=Z\Y'
a=
-0.0000 -0.0000 1.0003
>>format long
>>a
a=
1.0е+002*
-0.00000187595514 -0.00000470664690 1.00030838604155
243
Получим расчетные формулы для решения уравнения Вольтерра первого рода (X.5) при использовании метода средних прямоугольников. Решения уравнения будем находить в узлах временной сетки
t1 a h, t2 t1 h, , ti |
ti 1 |
h. |
(X.25) |
Подставляя (X.25) в (X.4), получаем равенства |
|
|
|
ti |
|
|
|
Q(TI , s)x(s)ds f (ti ). |
|
|
(X.26) |
a
Рис. X.5. Пространственно-временная сетка, используемая для решения уравнения Вольтерра
Из (X.26) видно, что в данном случае условие совпадения узлов квадратур si с узлами временной сетки ti не является обязательным, поэтому их можно выбрать посередине элементарных промежутков интегрирования [ti-1, ti] (рис. X.5). Выбор данной сетки означает, что
x1 x(s1 ), x2 |
x(s2 ), , xn x(sn ). |
(X.27) |
Учитывая выбор квадратурной формулы и условия (X.27), запишем (X.26) в следующем виде:
hQ(t1 , s1 )x1 f (t1 ),
hQ(t2 , s1 )x1 hQ(t2 , s2 )x2 f (t2 ),
244
ОГЛАВЛЕНИЕ |
|
4.4. Метод Ньютона …………………………………. |
93 |
|
|
4.5. Решение систем нелинейных уравнений |
103 |
Введение ………………………………………………….. |
3 |
средствами пакета MATLAB ………………….. |
|
I. Теория погрешностей …………………………………. |
5 |
V. Интерполирование функций ………………………… |
108 |
1.1.Общие сведения об источниках погрешностей, |
|
5.1. Постановка задачи ……………………………… |
108 |
их классификация…………………………………… |
5 |
5.2. Интерполяционный полином Лагранжа ………. |
113 |
1.2. Виды погрешностей …………………………….. |
5 |
5.3. Интерполяционный полином Ньютона |
116 |
1.3. Абсолютнаяи относительная погрешности, |
|
для равноотстоящих узлов ……………………… |
|
формы записи данных …………………………… |
7 |
5.3.1 . Конечныеразности…………………………….. |
116 |
1.4. Вычислительная погрешность ………………….. |
9 |
5.3.2. ПерваяинтерполяционнаяформулаНьютона |
116 |
1.5. Понятия о погрешности машинных вычислений |
11 |
5.3.3. ВтораяинтерполяционнаяформулаНьютона |
121 |
II. Решение уравнений с одной переменной ………….. |
16 |
5.4. Погрешность интерполяции ……………………. |
124 |
2.1. Общие сведенья и основные определения …… |
16 |
5.5. Сплайн-интерполяция …………………………… 125 |
|
2.2. Отделение корней ………………………………. |
17 |
VI. Численное дифференцирование и интегрирование … 134 |
|
2.3. Метод половинного деления …………………… |
17 |
6.1. Численное дифференцирование функций, |
134 |
2.4. Метод простой итерации ……………………….. |
22 |
заданных аналитически ………………………… |
|
2.5. Преобразование уравнения к |
|
6.2. Особенности задачи численного |
138 |
итерационному виду …………………………… |
26 |
дифференцирования функций, заданных таблицей |
|
III. Методы решения систем линейных алгебраических |
|
6.3. Интегрирование функций, заданных |
138 |
уравнений …………………………………………….. |
37 |
аналитически ………………………………… |
|
3.1. Общие сведения и основные определения ………… |
6.4. Погрешность численного интегрирования………. |
147 |
|
3.2. МетодГауссаиегореализациявпакетеMATLAB |
37 |
6.5. Вычисление интегралов методом Монте-Карло.. 150 |
|
38 |
|||
3.3. Вычисление определителей ……………………. |
42 |
VII. Методы обработки экспериментальных данных …. |
154 |
3.4. Решение систем линейных уравнений методом |
|
7.1. Метод наименьших квадратов …………………. |
154 |
простой итерации ………………………………. |
46 |
7.2. Нахождение приближающей функции в виде |
158 |
3.5. Метод Зейделя ………………………………… |
53 |
линейной функции и квадратичного трехчлена.. |
|
3.6. Решение систем линейных уравнений |
|
7.3. Аппроксимация функцией произвольного вида.. |
167 |
средствами пакета MATLAB ………………….. |
58 |
VIII. Численные методы решения |
171 |
IV. Методы решения систем нелинейных уравнений …. |
60 |
обыкновенных дифференциальных уравнений …. |
|
4.1. Векторная запись нелинейных систем. Метод |
|
8.1. Общие сведения и определения ……………….. |
171 |
простых итераций ………………………………. |
60 |
8.2. Метод Пикара …………………………………… |
174 |
4.2. Метод Ньютона решения систем нелинейных |
|
8.3. Метод Эйлера …………………………………… |
176 |
уравнений ……………………………………….. |
64 |
8.4. Метод Рунге-Кутта ……………………………… |
183 |
4.3. Решение нелинейных систем методами спуска … 69 |
|
|
253 |
254 |
|