Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
20071022_Chumac_MU.doc
Скачиваний:
2
Добавлен:
09.11.2019
Размер:
4.54 Mб
Скачать

1.Лабораторна робота EvalExpr на тему "Знаходження похибок обчислень"

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

Хід виконання. Для вказаного числового виразу :

1) Побудувати на рис.1 граф обчислень числового виразу .

2) Скласти та заповнити таблицю 1 обчислень значення виразу при значеннях аргументів і за окремими діями з урахуванням абсолютної та відносної похибок кожної дії. При цьому значення і знаходити за формулами , із заокругленням до трьох знаків після коми (відповідні нулі дописуються). Тут - номер групи, номер студента за списком групи.

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

Зауваження. Таблицю заповнювати за рядками з використаним вбудованого калькулятора, зі зберіганням не менш ніж 4-х знаків "після коми" при запису результатів у нормальному вигляді.

3). Записати результат обчислення за діями у вигляді "плюс-мінус", інтервальної оцінки і у вигляді окремого числа, яке містить тільки вірні цифри.

4). Написати на мові Turbo Pascal програму, яка, створює таблицю 1. Виведення елементів цієї таблиці здійснювати без вказівки формату виведення.

5). Порівняти одержані таблиці як без так і з ЕОМ та записати відповідні висновки.

6). Оформити звіт та захистити лабораторну роботу.

Теоретичні питання.

  1. Правила заокруглення чисел (заокруглення з недостачею, заокруглення з перевищенням, заокруглення за доповненням, правило парної цифри).

  2. Абсолютна та гранична абсолютна похибки, їх властивості.

  3. Відносна та гранична відносна похибки, їх властивості.

  4. Зв'язок між абсолютною та відносною похибками.

  5. Непевні та вірні цифри. Значущі цифри.

  6. Як за числом, що містить тільки вірні цифри, знайти його абсолютну похибку?

  7. Як за абсолютною похибкою числа знайти його вірні цифри?

  8. Головні правила обчислення граничних абсолютних та відносних похибок.

  9. Похибки суми, різниці, добутку, дробу, степеня, кореня.

  10. Похибки показникової функції, логарифму, тригонометричних функцій та обернених до тригонометричних функцій.

  11. Похибка множення на точне число, додавання точного числа.

  12. Похибка функції від одного та декількох аргументів.

  13. Формула типу формули першого диференціалу.

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

Лабораторна робота EvalExpr на тему: "Знаходження похибок обчислень".

Варіант 33. Виконала студентка групи БІТ3-05, Яблонська Олена. Дата виконання: 05.10.2005.

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

Знаходження параметрів. Так як , , то

, .

Знаходження абсолютної та відносної похибок з урахуванням похибок кожної дії. Складаємо і заповнюємо розрахункову таблицю 1, яка містить наступні графи (стовпці) і рядки.

Зауваження. Перша графа цієї таблиці містить так звану схему обчислень, тобто правило, як рахувати наступний рядок з використанням відповідних чисел з попередніх рядків або з поточного рядка. Наприклад, у першій графі рядка 6 вказано, що потрібно (запис: [2] це значення з рядка 2) вибрати значення стовпця з рядка 2, обчислити з цього числа корінь кубічний і записати значення цього кореня як значення стовпця поточного рядка 6. Заповнення стовпців і здійснюється за "правилом маятника": заповнюємо будь-яку графу або з використанням однієї з стандартних формул знаходження похибок, а потім заповнюємо іншу графу за формулою або за формулою . Наприклад, для рядка 6 потрібно спочатку знайти рядка 6 (відносна похибка кореня) з використанням рядка 2, а потім знайти рядка 6 з використанням і цього рядка .

Таблиця 1

Розрахункова таблиця обчислень виразу з урахуванням абсолютних і відносних похибок кожної дії.

N/N

Дія

Значення

Абс.п.

Відн.п.

1

Стала

2

А

3

Стала

4

B

5

Стала

6

7

8

9

10

11

12

13

Отже, , ,

Запис знайденої похибки. Записуємо відповідь у трьох формах:

а) Оцінка типу "плюс-мінус":

б) Інтервальна оцінка:

в) Оцінка з вірними цифрами: тому що

Програма на мові Turbo Pascal.

Зауваження. Імена вхідного та вихідного файлів (без розширення) зручно складати таким чином:

[ім'я_файла]:=[G+група] + [V+варіант]+[L+вомер_лаб_роботи].

Наприклад, у наведеному прикладі файл з текстом програми і файл результатів можуть мати імена G3V33L1.pas і G3V33L1.out (тут G3-група 3, V33-варіант 33 і L1-лабораторна робота 1).

Текст програми

Program G3V33L1; {: G3V33L1.inp - вихідний текстовий файл

з рядком з трьох чисел через прогалини:

a b e,

де а, b - значення аргументiв, е - точність підрахунків.

G3V33L1.out --- текстовий файл з результатами}

const Ngraf=13; {загальне число рядкiв таблицi}

var all,dec,i: integer; {номер рядка таблицi}

a,b, {значення аргументів х, y}

e, {гранична абсолютна похибка аргументiв}

fplus,fminus, {iнтервал накриття точного значення}

a3: real; {корiнь кубiчнiй з числа а}

Z,AP,VP {поточнi значення виразiв, абсолютних та вiдносних похибок}

: array[1..Ngraf] of real;

finp,fout: Text; {вихідний файл та файл з результатами}

begin {G3V33L}

Assign(fout,'G3V33L1.out'); rewrite(fout); write(fout,'Start G3V33L1');

writeln(fout);write(fout,'Groop БIТ-3-09', ' Yablonska Olena');

writeln(fout);write(fout,'Variant 33 05.09.2009 ');

Assign(finp,'G3V33L1.inp'); reset(finp); readln(finp,a,b,e); Close(finp);

{ form input table}

i:=1; Z[i]:=3; AP[i]:=0; VP[i] :=AP[i]/abs(Z[i] ) ;

i:=2; Z[i] := a; AP[i] := e; VP[i] := AP[i]/abs(Z[i]) ;

i:=3; Z[i] := 2; AP[i]:= 0; VP[i] := AP[i]/abs(Z[i]);

i:=4; Z[i] := b; AP[i] := e; VP[i] := AP[i]/abs(Z[i] );

i:=5; Z[i] := 5; AP[i]:= 0; VP[i] := AP[i]/abs(Z[i] );

i:=6; if Z[2]>0 then Z[i] := exp(ln(Z[2])/3) else if Z[2]=0 then Z[i]:=0

else Z[i] := -exp(ln(-Z[2] )/3) ; VP[i]:=VP[2]/3; AP[i] := VP[i]*abs(Z [i]);

i:=7; Z[i] := sqr(Z[4]); VP[i] := 2*VP [4]; AP[i] := VP[i]*abs(Z[i]);

i:=8; Z[i] := sin(Z[4]); AP[i] := abs(cos(Z[4]))*AP[4] ; VP[i]:= AP[i]/abs(Z[i]);

i:=9; Z[i] := Z[6] *Z [3] ; VP[i] := VP[6]+VP [3] ; AP[i]:= VP[i]*abs(Z[i]);

i:=10; Z[i] := Z[5]-Z[8]; AP[i] := AP[5]+AP[8] ; VP[i]:= AP[i]/abs(Z[i]);

i:=11; Z[i] := Z[9]*Z[7] ;VP[i] := VP[9]+VP[7] ; AP[i] := VP[i]*abs(Z[i]);

i:=12; Z[i] := Z[1]+Z[11]; AP[i] := AP[i]+AP[11]; VP[i]:=AP[i]/abs(Z[i]);

if Z[10]=0

then begin {Z[10]=0} writeln(fout);

write(fout,'i=',i:3,' ERROR: ZERODIVIDE');

end {Z[10]=0}

else begin {Z[10]<>0}

i:=13; Z[i] := Z[12]/Z[10]; VP[i] := VP[12]+VP[10] ; AP[i]:=VP[i]*abs(Z[i]);

{ out table }

for i:=1 to Ngraf do begin

writeln(fout);write(fout,i:3,' ',Z[i],' ',AP[i],' ',VP[i]); end;

{ form "plus-minus"}

writeln(fout);write(fout,'f =',Z[Ngraf],' p/m ',AP[Ngraf]);

{ interval }

fminus := Z[Ngraf]-AP[Ngraf]; fplus := Z[Ngraf]+AP[Ngraf] ;

writeln(fout); write(fout,'f in [',fminus,',',fplus,']');

{ true digits}

a3 := 2*AP[Ngraf]; writeln(fout); write(fout,' 2 Delta =',a3);

end; {Z[10]<>0}

writeln(fout);write(fout,'Finish G3V33L1'); Close(fout);

end.{G3V33L1}

Вихідний файл

33.333 3.003 0.5e-3

Файл результатів

Start G3V33L1

Groop БIТ-3-09 Yablonska Olena

Variant 33 05.09.2009

1 3.0000000000E+00 0.0000000000E+00 0.0000000000E+00

2 3.3333000000E+01 5.0000000000E-04 1.5000150002E-05

3 2.0000000000E+00 0.0000000000E+00 0.0000000000E+00

4 3.0030000000E+00 5.0000000000E-04 1.6650016650E-04

5 5.0000000000E+00 0.0000000000E+00 0.0000000000E+00

6 3.2182872210E+00 1.6091597021E-05 5.0000500005E-06

7 9.0180090000E+00 3.0030000000E-03 3.3300033300E-04

8 1.3814939998E-01 4.9520570051E-04 3.5845664228E-03

9 6.4365744420E+00 3.2183194042E-05 5.0000500005E-06

10 4.8618506000E+00 4.9520570051E-04 1.0185539237E-04

11 5.8045086247E+01 1.9619261383E-02 3.3800038300E-04

12 6.1045086247E+01 1.9619261383E-02 3.2138969062E-04

13 1.2555936262E+01 5.3142382850E-03 4.2324508299E-04

f = 1.2555936262E+01 p/m 5.3142382850E-03

f in [ 1.2550622023E+01, 1.2561250500E+01]

2 Delta = 1.0628476570E-02

Finish G3V33L1

Висновки до лабораторної роботи. Аналізуючи одержані у лабораторній роботі результати бачимо, що

1) підрахунки з використанням похибки кожної дії та результати роботи програми співпадають з точністю до одного процента;

2) значення виразу може мати будь-який знак але відповідні абсолютні та відносні похибки знаходження значення функції завжди невід'ємні;

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]