Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Чисельного інтегрування функцій методом Симпсона

Поиск

Мета роботи: Закріплення знань із застосування чисельного інтегрування функцій методом Симпсона, розробка відповідного алгоритму і програми на мові Pascal, застосування її для розв’язання індивідуального завдання.

Теоретичні відомості

Метод Симпсона - один із поширених методів чисельного інтегрування функцій. Аналогічно методу трапецій, інтегрування проводиться шляхом розбиття загального інтервалу інтегрування [ a,b ] на багато дрібних відрізків. Для обчислення площі над кожним із них, через три послідовні ординати розбиття проводиться квадратична парабола. Тобто крива f(x) на малому відрізку замінюється параболою L(x), яка проходить через 3 точки Mi(xi, yi); Mi+1 (xi+1, yi+1); Mi+2(xi+2, yi+2):

 

Припускаємо, що кількість відрізків n=2m - парне число.

Відомі yi=f(xi), i=0,1,2…,n – значення підінтегральної функції у рівновіддалених точках:

x0=a; x1=a+h; x2=a+2h;... xi=a+ih; …, xn=b,

 

де h - крок інтегрування:

Тоді загальну формулу Сімпсона можна записати:

.

Формула Симпсона дає похибку, яка дорівнює сумі площ заштрихованих фігур (з урахуванням знаків). При інтегруванні багаточленів до третього порядку включно, формула Симпсона дає точне значення інтеграла.

 

Приклад обчислення інтегралу за формулою Симпсона

Обчислюємо значення інтеграла , який розглянуто у Завданні № 7, при n=2m =10:

)

Отримане значення дорівнює точному значенню інтеграла.

Алгоритмічна та програмна реалізація формули Сімпсона

 

Var A,B,H,I,x,y:real;

I,n:integer;

Begin

<введення вихідних даних>

H:=(B-A)/n;

I:=sqrt(1+2*A) + sqrt(1+2*B);

X:=A;

For i:=1 to n/2 do

Begin

X:=x+H;

Y:=sqrt(1+2*x);

I:=I+4*y;

X:=x+H;

Y:=sqrt(1+2*x);

I:=I+2*x;

End;

I:=I*H/3;

<виведення результатів>

Примітки:

1. В програмі реалізоване обчислення інтегралу, що розглянутий у прикладі;

2. Якщо функція f(x) задана таблично, то треба організувати введення масиву з ординатами точок.

 

Порядок виконання роботи

 

Виконати завдання Заняття №7, застосувавши для чисельного інтегрування заданої функції формулу Сімпсона.


Заняття № 9

Розробка програми чисельного диференціювання функцій

Мета роботи: Закріплення знань із застосування методів чисельного диференціювання функцій і використання для цього інтерполяційного полінома Лагранжа, розробка відповідного алгоритму і програми на мові Pascal, застосування її для диференціювання заданої функції.

Теоретичні відомості

Чисельне (наближене) диференціювання функцій використовують у випадку, коли функція задана таблично (тобто у вигляді масива точок з координатами ), або якщо аналітичний вираз функції достатньо складний і безпосереднє диференціювання її викликає труднощі. При цьому функцію на інтервалі замінюють інтерполюючою функцією (зазвичай поліномом) і припускають, що:

Інтерполююча функція вибирається такою, щоб похідні від неї визначались аналітично з використанням відповідних простих формул.

Для обчислення значень інтерполюючого поліному і його похідних при заданому можна застосувати правило Горнера:

поліном подається у вигляді

Обчислення починаються із внутрішніх дужок:

 

Послідовно обчислюючи отримаємо значення поліному

Приклад обчислення похідних функцій

Виконати чисельне диференціювання функції , заданої таблично.

У Завданні № 6 розглянутий приклад, в якому для цієї функції сформований інтерполюючий поліном Лагранжа при :

Визначимо першу і другу похідні:

Обчислимо наближені значення першої похідної у вузлах інтерполяції і порівняємо їх з точними значеннями:

Вузли інтерполяції   0.25 0.5  
Задана функція   -2.2214 -3.1416  
Інтерполяційний поліном 0.2091 -2.2761 -3.1045 0.2091

Обчислюємо значення другої похідної у вузлах інтерполяції:

Вузли інтерполяції   0.25 0.5  
Задана функція -9.8696 -6.9789   9.8696
Інтерполяційний поліном -13.2544 -6.6273   13.2542

Обчислимо точні і наближені значення похідних при значеннях , що не співпадають з вузлами інтерполяції ():

x 0.1 0.2 0.3 0.35 0.4 0.55 0.6 0.7 0.85 0.9
-0.9708 -1.8466 -2.5416 -2.7992 -2.9878 -3.1029 -2.9878 -2.5416 -1.4263 -0.9708
-0.9838 -1.9116 -2.5743 -2.8063 -2.9720 -3.0714 -2.9720 -2.5744 -1.4809 -0.9839
1.34 3.52 1.29 0.26 -0.53 -1.02 -0.53 1.29 3.83 1.35
-9.3866 -7.9847 -5.8012 -4.4807 -3.0499 1.5439 3.0499 5.8012 8.7939 9.3866
-10.6035 -7.9527 -5.3018 -3.9764 -2.651 1.3253 2.6508 5.3016 9.2779 10.6033
12.96 -0.4 -8.61 -11.25 -13.08 -14.16 -13.09 -8.61 5.5 12.96

Наближене диференціювання функцій дає результат з більшою похибкою, ніж інтерполяція.

Алгоритмічна та програмна реалізація чисельного

Диференціювання функцій

Функція задана в табличній формі. Для неї сформований інтерполюючий поліном і визначені похідні від нього .

Обчислити наближені значення похідних функції у точці .

Var P1,P2,XP: real;

A1,A2: array [0...10] of real;

n1, n2: integer;

begin

<введення вихідних даних>

P1:=0;

for i:=n1 downto 0 do

P1:= A1[i]+XP*P1;

P2:=0;

for i:=n2 downto o do

P2:=A2[i]+XP*P2;

<виведення результатів>

Примітки:

1. Масиви А1 і А2 містять коефіцієнти поліномів ;

n1, n2 - порядок цих поліномів;

2. Для обчислення значень поліномів при реалізується формула Горнера;

3. Результати обчислень - значення похідних при містяться у змінних P1 i P2.

Порядок виконання роботи

1. Ознайомитись з теоретичним матеріалом з питань чисельного диференціювання функцій, використанням для цього інтерполюючи поліномів Ньютона, Лагранжа;

2. Для виконання завдання використати інтерполюючий поліном Лагранжа , який сформований відповідно до індивідуального завдання на Занятті № 6;

3. Визначити першу і другу похідні від цього поліному ;

4. Обчислити точні і наближені значення похідних при трьох вибраних значеннях , які розташовані відповідно, на початку, в середині і в кінці інтервалу ;

5. Скласти докладний алгоритм обчислення наближених значень похідних. Для обчислення значень поліномів використати правило Горнера;

6. Скласти і відлагодити програму на мові програмування Pascal, яка реалізує введення вихідних даних, обчислення наближених значень похідних при довільному значенні , виведення результатів у зручній формі на екран і в файл.

Основні фрагменти програми реалізувати як процедури і функції;

7. Описати алгоритм і програму (змінні, масиви, процедури і функції, особливості реалізації тощо);

8. З використанням розробленої програми повторити п.4, порівняти результати.

9. Обчислити точні значення похідних і їх наближені значення (з використанням розробленої програми) у десяти точках . Визначити похибку .

Результати оформити у вигляді таблиці;

10. Сформулювати висновки по роботі.

 

Результати виконання кожного пункту завдання докладно описати у звіті по роботі.

Використання без змін в розробленій програмі фрагменту, наведеного у п. 9.2., заслуговує на мінімальну оцінку. Для отримання підвищеної оцінки необхідно розробити власний варіант програми.


 

Заняття № 10

Розробка програми



Поделиться:


Последнее изменение этой страницы: 2016-08-12; просмотров: 377; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.219.18.238 (0.009 с.)