
- •Чисельні методи
- •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;
Точний
розв'язок рівняння
.
Збільшення кількості точок на інтервалі
не поліпшує якість наближення (це тільки
для цього прикладу!).