Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР2. 1.2. Определение абсолютной и относительной погрешностей приближенных чисел. Оценка погрешностей результата.docx
Скачиваний:
7
Добавлен:
19.06.2023
Размер:
62 Кб
Скачать
☆

Экспериментальные результаты.

Задание № 2

Найти абсолютную погрешность вычисления функции при заданных значениях аргументов функции .

1

2

3

3.8890.001

145.50.08

27.30.04

0.84540.0002

28.60.1

0.930.001

0.6430.0005

0.17360.00005

1.730.03

Обработка результатов эксперимента.

Задание 2

Номер 1

Δy = 0.0034210000000000004

Номер 2

Δy = 0.03046

Номер 3

Δy = 34.0

Вывод.

Была вычислена абсолютная погрешность функции при заданных аргументах, освоены навыки практически оценивать погрешности результата.

Приложение 1. Код программы

package j.softwareconstruction.lab1; public class Main { public static void main(String[] args) { task2(); } private static int exponent(double a) { if (a < 0) a = -a; int exponent = 0; for(; a < 1; exponent--) a *= 10; for(; a > 9; exponent++) a /= 10; return exponent; } private static void task2() { System.out.println("Задание 2"); double[] a = {3.889, 145.5, 27.3}; double[] Da = {0.001, 0.08, 0.04}; double[] l = {0.8454, 28.6, 0.93}; double[] Dl = {0.0002, 0.1, 0.001}; double[] phi = {0.643, 0.1736, 1.73}; double[] Dphi = {0.0005, 0.00005, 0.03}; for (int i = 0; i < 3; i++) { System.out.println("\tНомер " + (i + 1)); double y = a[i] * Math.tan(phi[i]) + l[i] * Math.sin(phi[i]); double Dy = Math.abs(Math.tan(phi[i])) * Da[i] + Math.abs(Math.sin(phi[i])) * Dl[i] + Math.abs(a[i] / Math.pow(Math.cos(phi[i]), 2) + l[i] * Math.cos(phi[i])) * Dphi[i]; double dy = Dy / Math.abs(y); int dyExp = exponent(dy); dy = Math.round((dy * Math.pow(10, -dyExp))) * Math.pow(10, dyExp); int exp = exponent(y) + dyExp; y = Math.round((y * Math.pow(10, -exp))) * Math.pow(10, exp); Dy = dy * Math.abs(y); System.out.println("\t\tΔy = " + Dy); } } }