Міністерство освіти і науки України
Національний університет «Львівська політехніка»
Кафедра автоматизованих систем управління
Звіт
до лабораторної роботи № 1
з курсу «Чисельні методи в інформатиці»
на тему «Абсолютна та відносна похибка»
Мета роботи: вивчити і засвоїти поняття абсолютної й відносної похибки та методи їх оцінювання.
Короткі теоретичні відомості
Зв'язок між кількістю точних десяткових знаків і відносною похибкою наближеного числа дається у наведеній далі теоремі.
Теорема. Якщо додатне наближене число а має п точних десяткових знаків, то відносна похибка δ цього числа задовольняє умову
δ ≤ ,
де ат – перша значуща цифра числа а .
Наслідок 1. За граничну відносну похибку наближеного додатного числа а з п точними десятковими знаками можна прийняти
δa =
де аm - перша значуща цифра числа а .
Наслідок 2. За граничну відносну похибку наближеного додатного числа а з п точними десятковими знаками при п ≥ 2 практично можна прийняти
δa = .
Означення. Вважатимемо, що n перших значущих цифр (десяткових знаків) наближеного числа а є точними,, якщо абсолютна похибка цього числа не перевищує половини одиниці розряду, котрий виражається його n-ною значущою цифрою (рахуючи зліва направо), тобто
Для визначення кількості точних знаків наближеного числа а, якщо відома його відносна похибка δ, можемо скористатися наближеною формулою
δ =
де ∆ - абсолютна похибка наближеного числа а . Із цієї формули одержуємо, що ∆ = δ |a|. Маючи ∆, на підставі означення легко знайти кількість точних десяткових знаків наближеного числа а .
1. Похибки суми.
Теорема 1. Абсолютна похибка алгебраїчної суми декількох наближених чисел не перевищує суми абсолютних похибок цих чисел.
|∆и| ≤ |∆х1| + |∆х2| + ... +|∆хп|
Наслідок. За граничну абсолютну похибку алгебраїчної суми декількох наближених чисел можна прийняти суму граничних абсолютних похибок цих чисел, тобто
∆и = ∆х1 +∆ х2 + ... +∆ хп .
Теорема 2. Гранична відносна похибка суми декількох наближених чисел одного й того ж знака не перевищує найбільшу з граничних відносних похибок цих чисел.
max = .
2. Похибки різниці. Розглянемо різницю двох наближених чисел х1 та х2:
и = х1-х2 .
Тоді, на підставі наслідку з теореми 1,
∆и = ∆х1 +∆ х2 , δu=, (6)
де А – точне значення різниці х1-х2. 3 останньої формули випливає, що для близьких чисел х1 та х2 гранична відносна похибка буде досить велика. Тому в обчислювальних алгоритмах бажано уникати віднімання близьких чисел.
3. Похибки добутку.
| ∆u | = | А – u | ≤ x2x3 … xn | ∆x1| + х1 х3… xn| ∆x2| +…+
+ x1 x2 … хn-1 + ∆хп .
За граничну абсолютну похибку добутку можна взяти ∆u = x2x3 … xn ∆x1+ х1 х3… xn ∆x2 +…+ x1 x2 … хn-1 + ∆хп .
Тоді за граничну відносну похибку добутку можемо прийняти
.
4. Похибки частки. Нехай A1 = х1 + ∆ х1, A2 = х2 + ∆ х2 , де для простоти будемо вважати, що x1 > 0, x2 > 0,, . Тоді ,
За граничну відносну похибку частки можна прийняти
.
5. Похибки степеня. Нехай А = (х + ∆ х)т , и = хт , де т – натуральне число, х > 0. Використовуючи похибки добутку, одержуємо
|∆u| < mxm - 1|∆x|, δ ≤ mδ1,
де δ – відносна похибка степеня; δ1 – відносна похибка аргументу х. Тому за граничні абсолютну та відносну похибки степеня можемо прийняти
∆u= mxm - 1∆x, δu= mδx
Із наведених похибок арифметичних операцій випливає, що операції додавання та віднімання (при великій різниці між числами) не погіршують точності результату порівняно з точністю алгебраїчних доданків, а операції множення, ділення і піднесення до степеня суттєво погіршують точність результату.
Варіант 17
Оцінити абсолютну та відносну похибку при обчисленні величини F за умов:
a) заданих точних значеннях величин аргументів x1 , x2 , x3;
B) заданих значеннях величин аргументів x1 , x2 , x3 з похибкою (= N*10-3, де N – номер варіантy
F = 5x12 + 3x22 + 2x32 - 4x2x3 - 2x1 – cos(x2 * x3 );
Текст програми:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, jpeg, ExtCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Button1: TButton;
Button2: TButton;
Label7: TLabel;
Image1: TImage;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var x:array [1..3] of real;
F, ab_p, vid_p,dx: real;
begin
dx:=0.002;
x[1]:=StrtoFloat(Edit1.Text);
x[2]:=StrtoFloat(Edit2.Text);
x[3]:=StrtoFloat(Edit3.Text);
F:=5*sqr(x[1])+3*sqr(x[2])+2*sqr(x[3])-4*x[2]*x[3]-2*x[1]-cos(x[2]*x[3]);
Edit4.Text:=FloattoStrF(F,ffFixed,7,3);
ab_p:=abs(5*2*x[1]*dx)+abs(3*2*x[2]*dx)+abs(2*2*x[3]*dx)+
+abs(4*(x[2]+x[3])*dx)+abs(2*x[1]*dx)+abs(sin(x[2]+x[3])*dx);
Edit5.Text:=FloatToStrF(ab_p,ffFixed,6,3);
vid_p:=abs(ab_p/F)*100;
Edit6.Text:=FloatToStrF(vid_p,ffFixed,5,2)+'%';
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Edit1.Text:='';
Edit2.Text:='';
Edit3.Text:='';
Edit4.Text:='';
Edit5.Text:='';
Edit6.Text:='';
end;
end..
Результат виконання програми:
Висновок: На цій лабораторній роботі я вивчив і засвоїв поняття абсолютної та відносної похибки і методи їх оцінювання.