Экспериментальные результаты.
Задание № 2
Найти
абсолютную погрешность вычисления
функции при заданных значениях аргументов
функции
.
|
1 |
2 |
3 |
|
3.8890.001 |
145.50.08 |
27.30.04 |
|
0.84540.0002 |
28.60.1 |
0.930.001 |
|
0.6430.0005 |
0.17360.00005 |
1.730.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); } } }
