- •Чисельні методи
- •5 Методи розв'язку інтегральних рівнянь
- •1 Пакет pde Tools решения задач для уравнений в частных производных
- •1.2. Выполнение расчетов в пакете matlab
- •1.3 Задачи для самостоятельного решения
- •2 Метод сіток розв'яЗання еліптичних рівнянь
- •2.1 Метод сіток – постановка задачі
- •2.2 Побудова сітки й апроксимація рівняння
- •2.4 Погрішність вирішення й збіжність
- •2.5 Задача для самостійного вирішення на практиці
- •2.6. Завдання до лабораторної роботи
- •3 Метод сіток
- •3.1 Постановка задачі
- •3.2 Явна різницева схема
- •3.3 Неявна різницева схема
- •3.4 Різницеві схеми підвищеної точності. Схема Кранка-Нікольсона
- •3.5 Задачі для самостійного розв'язку на практиці
- •Завдання до лабораторної роботи
- •3.7 Контрольні питання
- •4 Метод сіток розв'язку крайових задач для хвильових рівнянь
- •4.1 Постановка задачі
- •Явна схема
- •4.3 Неявна схема
- •4.4 Задача для самостійного розв'язку на практиці
- •Завдання до лабораторної роботи
- •4.6 Контрольні питання
- •5 Методи розв'язку інтегральних рівнянь
- •5.1 Загальні відомості про інтегральні рівняння
- •5.2 Метод послідовних наближень розв'язку інтегральних рівнянь Фредгольма
- •5.3 Квадратурний метод розв'язку інтегральних рівнянь Фредгольма
- •5.4 Загальні відомості про інтегральні рівняння Вольтерра
- •5.5 Метод послідовних наближень розв'язку інтегральних рівнянь Вольтерра
- •5.6 Квадратурний метод розв'язку інтегральних рівнянь Вольтерра
- •5.7 Завдання до лабораторної роботи
- •5.8 Контрольні питання
- •6 Література
5.3 Квадратурний метод розв'язку інтегральних рівнянь Фредгольма
Як відомо, визначений інтеграл може бути замінений його наближеним значенням, що обчислюються за допомогою квадратурної формули:
(5.7)
де – номера вузлів сітки по змінній, – коефіцієнти квадратурної формули.
Приведемо значення коефіцієнтів для різних квадратурних формул. Нехай , .
Формула лівих прямокутників:
.
Формула трапецій
Формула Симпсона ( ):
.
Підставивши праву частину наближеного рівності (5.7) із замість інтеграла в інтегральне рівняння (5.5), одержимо:
(5.8)
Вираження (5.8) задає функцію, що описує наближений розв'язок інтегрального рівняння (5.5). Введемо на відрізку дискретну часову сітку , вузли якої збігаються з вузлами сітки . Для кожного моменту часу виконується рівність:
, . (5.9)
Введемо позначення , , і запишемо (5.9) у вигляді системи лінійних алгебраїчних рівнянь із невідомими:
(5.10)
Маэмо такий алгоритм знаходження розв'язку рівняння Фредгольма другого роду.
Задати часову сітку .
Обчислити значення функції у вузлах часової сітки.
Обчислити елементи матриці, складеної з коефіцієнтів системи лінійних алгебраїчних рівнянь (7.10).
Розв'язати СЛАУ.
Точність чисельного розв'язку інтегрального рівняння залежить від:
- застосовуваної квадратурної формули;
– числа вузлів часової сітки;
– властивостей функції .
Для оцінки максимальної апостеріорної погрішності чисельного розв'язку використовують принцип Рунге. Даний принцип полягає в порівнянні чисельних розв'язків, отриманих на часових сітках із кроком і в тих самих вузлах часової сітки. Абсолютне значення різниці цих розв'язків характеризує величину погрішності чисельного розв'язку. Недолік підходу: при даному способі контролю доводиться обмежуватися квадратурними формулами, придатними тільки для сіток з рівномірним кроком.
Приклад 5.3. Розв'язати інтегральне рівняння , використовуючи квадратурну формулу Симпсона.
Виконаємо спочатку розрахунки вручну, вибравши на відрізку тільки 3 точки х = [ 0, 0.5, 1].
Замінимо інтеграл квадратурною сумою за методом Симпсона:
**
Підставляємо останній вираз для інтеграла в рівняння для кожного значення на обраній сітці й одержуємо таку систему лінійних алгебраїчних рівнянь:
Візьмемо значення і отримаємо систему
Рішенням системи є значення .
Перевіремо це рішення програмно в системі MATLAB.
a=0; b=1; n=3; h=0.5;lambda=1/2;
x=a:h:b; b=f1(x);
for i=1:n
for j=1:n
% задаємо коефіцієнти квадратурної формули
if (rem(j,2)==1) c=2*h/3; else c=4*h/3; end;
if (j==1 || j==n) c=h/3; end;
k(i,j)=K1(x(i),x(j));
% обчислюємо коефіцієнті системи рівнянь
if (i==j)
a(i,j)=1-lambda*c*k(i,j);
else
a(i,j)=-lambda*c*k(i,j);
end;
end;
end;
% розв’язуємо систему і будуємо графік рішення
y=a\b'
plot(x,y); grid on;
Функції
function z=K1(x,t)
z=x*t;
function y=f1(x)
y=5/6*x;
Точний розв'язок рівняння . Збільшення кількості точок на інтервалі не поліпшує якість наближення (це тільки для цього прикладу!).