Автор работы: Пользователь скрыл имя, 07 Мая 2013 в 22:30, курсовая работа
Об’єктом досліджень є друга інтерполяційна формула Ньютона для знаходження першої похідної функції. Розроблено ефективний алгоритм та програму мовою програмування Турбо Паскаль 7,0 обчислення другої похідної функції за допомогою другої інтерполяційної формули Ньютона. Алгоритм, що розроблений, є оптимальним за розміром пам’яті, необхідної для збереження даних, котрі обчислюються в ході виконання алгоритму та за кількістю арифметичних операцій для обчислення за основною формулою.
ВСТУП ..............................................................................................................................5
АНОТАЦІЯ………………………………………………………………………………..4
1 АНАЛІЗ ТЕОРЕТИЧНОЇ БАЗИ ЧИСЕЛЬНОГО ДИФЕРЕНЦІЮВАННЯ
ФУНКЦІЇ ……………………………………………………………………………….....6
2 РОЗРОБКА АЛГОРИТМІВ ТА ВИБІР ОПТИМАЛЬНОГО АЛГОРИТМУ............11
3 ПРИКЛАД ПРОГРАМИ ОБЧИСЛЕННЯ ДРУГОЇ ПОХІДНОЇ функції за
допомогою ДРУГОю інтерполяційною формулою НЬЮТОНА.........15
3.1 Інструкція користувача ...................................................................................15
3.2 Лістинг програми.............................................................................................. 16
3.3 Опис програми………………………………………………………………...17
3.4 Тестування програми ......................................................................................18
ВИСНОВКИ ....................................................................................................................20
ПЕРЕЛІК ПОСИЛАНЬ
3.1 Інструкція користувача
Після виклику TURBO PASCAL із середовища Windows на екрані з'являється командне вікно середовища TURBO PASCAL.
Це вікно є основним у TURBO PASCAL. У ньому відображаються символи команд, що набираються користувачем на клавіатурі, результати виконання цих команд, текст програми, що виконується, а також інформація про помилки виконання програми, яка розпізнана системою.
Ознакою того, що програма TURBO PASCAL готова до сприйняття і виконання чергової команди, є наявність в останньому рядку текстового поля вікна знака запрошення (»), після якого стоїть миготлива вертикальна риска.
У верхній частині командного вікна (безпосередньо під заголовком TURBO PASCAL Command Window) розташований рядок меню, що складається з чотирьох меню – File, Edit, Window і Help. Під головним меню розміщена панель інструментів з піктограмами, що дозволяють виконувати деякі найбільше часто використовувані операції.
1. Відкриття меню здійснюється натисненням миші. Щоб вибрати будь-яку команду меню, досить установити курсор на імені команди і натиснути ліву кнопку миші.
2. Текст програми міститься в одному файлі: файл основної програми з іменем Nyton. Для відкриття його необхідно вибрати у меню File команду Open (Відкрити).
3. Вибір необхідного файлу з
цього списку і наступне
4. В результаті запуску програми
з’явиться командне вікно, в
якому необхідно ввести
3.2 Лістинг програми
Program newton_2pohid_1formula;
uses crt;
Type masyv = array[1..20] Of real;
Var i,j,n: integer;
h,t,x,potr_znach,pohid,x1,
min_plus: -1..1;
argum,ans: masyv;
rizn: array[1..20,1..20] Of real;
Function faktorial(h:integer): longint;
Var k: integer;
dob: longint;
Begin
dob := 1;
For k:=1 To h Do
Begin
dob := k*dob;
End;
faktorial := dob;
End;
Function sum(i:integer): real;
Var m: integer;
tt: real;
Begin
tt := n;
For m:=1 To i Do
Begin
tt := tt*(n-i);
End;
tt := tt/faktorial(i);
sum := tt;
End;
Begin
i := 0;
j := 0;
h := 0.1;
{vedennja}
writeln('Програма
обчислення другої похiдної
writeln('за першою iнтерполяцiйною формулою Ньютона');
writeln('y=1/(x*sqrt(2*x^2+1)) ');
writeln('Введiть точку знаходження похiдної,');
writeln('крiм х=0');
readln(x1);
writeln('Введiть
кiлькiсть вузлiв заданої
readln(n);
{Обрахунок значень функцiї в вузлах}
x := x1;
For i:= 1 To n Do
Begin
ans[i] := 1/(x*sqrt(2*x*x+1)); {nasha funkcija}
argum[i] := x;
x := x+h;
End;
{Обрахунок таблицi рiзниць}
For i:= 1 To n-1 Do
Begin
For j:=1 To n-i Do
Begin
If i=1 Then rizn[i,j] := ans[j+1]-ans[j];
rizn[i,j] := rizn[i-1,j+1]-rizn[i-1,j];
End;
End;
t := (x-x1)/2;
{Виведення значень фукнцii в точках}
writeln(' X[i] Y[i]');
For i:= 1 To n Do
Begin
writeln(argum[i]:6:6,' ',ans[i]:6:6);
End;
writeln('=====================
{Знаходження похiдної}
min_plus := 1;
pohid := 0;
pohid := rizn[2,1]-rizn[3,1]+11/12*
pohid := (1/(h*h))*pohid;
For i:=6 To n Do
Begin
pohid := pohid+sum(i)*rizn[i,1];
End;
writeln('Друга похiдна функцii у точцi ',x1:3:2,' дорiвнюе:');
writeln(pohid:8:8);
readln;
End.
3.3 Опис програми
В даному підрозділі описані всі змінні та присвоєні їм певні значення, які необхідні для чисельного диференціювання функції. З метою ефективного використання пам’яті для збереження початкових значень системи, вони зберігаються в динамічній пам’яті ЕОМ. Це дозволяє відводити під них місце динамічного розміру в залежності від кількості заданих даних.
Файл V.pas містить описи структури методу та функції, що використовуються основною програмою, та описи внутрішніх операторів. Нижче наведено список загальних операторів, їх призначення та основні властивості.
Команда Program оголошує назву програми.
Команда var відкриває опис даних програми.
Команда begin оголошує початок програми та її підпрограм.
Оператори read та readln використовуються для введення даних з клавіатури. Параметри цих даних яких можуть бути змінні цілого, дійсного та символьного типів. Оператор readln може бути без параметрів.
Оператори write та writeln використовуються для виведення інформації на екран монітора. Параметри цих даних можуть бути вирази цілого, дійсного символьного та булевського типів, а також рядки символів. Оператор writeln може бути без параметрів [10].
Оператор циклу for з параметром викликає повторюване виконання оператора поки керуючій змінній присвоюється зростаюча послідовність значень.
Оператор умови if забезпечує вихід у виразі результату, що має стандартний булевський тип. Якщо результатом виразу є значення (True), то виконується оператор, що слідує за ключовим словом then.
Якщо результатом виразу є значення False і є присутнім ключове слово else, то виконується оператор, що слідує за ключовим словом else. Якщо ключове слово else відсутнє, то ніякий оператор не виконується.
Оператор циклу з передумовою while містить у собі вираз, що керує повторним виконанням оператора.
Вираз, за допомогою якого здійснюється керування повторенням оператора, повинен мати булевський тип. Обчислення його відбувається до того, як внутрішній оператор буде виконаний. Внутрішній оператор виконується повторно доти, поки вираз приймає значення Тruе. Якщо вираз із самого початку приймає значення False, то оператор, що міститься усередині оператора циклу з передумовою, не виконується [12].
3.4 Результити роботи програми:
Обрахунок в систему Maple:
ВИСНОВКИ
1. Проведено теоретичний аналіз методу знаходження другої похідної за допомогою першої інтерполяційної формули Ньютона та її порівняння з іншими методами, яке показало, що цей метод є досить простим і економним у часі, а також на відміну від інших методів досить ефективний для обчислення значень в кінці таблиці.
2. Опираючись на теоретичну базу
було створенно ефективний
3. Реалізованно програму, написану на мові програмування Турбо Паскаль 7.0, що має зручний та наочний інтерфейс і максимально спрощує роботу.
4. Здійснено тестування програми, яке підтвердило її правильну та коректну роботу.
ПЕРЕЛІК ПОСИЛАНЬ