C/C++

Погрешности вычислений. Вычисление значений функций

Вычислить значение функции и, ее предельные абсолютную и относительную погрешности, если известны погрешности ее аргументов. Найти количество верных значащих цифр функции и (в широком и узком смысле). Параметры m и k заданы точно.
Погрешности:
 δ(x) = 0.02 / 4.11 = 0.0048
δ(mx) = δ(x)
mx = 28.77 ± 0.48% = 28.77 ± 0.14
Δ(mx) = 0.0048 ∙ δ(mx) = 0.14

δ(ky) = δ(y) = 0.04
ky = 2.65 ± 0.04% = 2.65 ± 0.11
Δ(ky) = 0.04 ∙ δ(ky) = 0.11

Δ(mx + ky) = Δ(mx) + Δ(ky) = 0.25
mx + ky = 31.42 ± 0.25 = 31.42 ± 0.8%

При умножениях и возведениях в степени используем относительную погрешность, при сложениях - абсолютную.

А дальше надо понять, косинус в лоб считать или сначала вычесть 10π ≈ 31.4159.
Если вычесть, то значение аргумента окажется в районе 0.004 при абсолютной погрешности 0.25. Погрешностью аргумента будет:
 t = mx + ky = 0.0 ± 0.25 
С двумя верными значащими цифрами.
Погрешности:
 Δ(t) = 0.25
δ(t) = 0.25 / 0.004 = 6.25 = 625%
Косинус этой штуки будет равен 1, а за погрешность, видимо, надо принять погрешность первого приближённого члена ряда (-t²/2), т.к. первый член (единица) погрешности не имеет, а следующие члены ряда имеют абсолютные погрешности низких порядков.
 δ(t² / 2) = 2δ(t) = 1250% = 12.5
Δ(t² / 2) = 0.004² ∙ δ(t² / 2) = 0.0002
δ(t⁴ / 24) = 4δ(t) = 2500% = 25
Δ(t⁴ / 24) = 0.004⁴ ∙ δ(t⁴ / 24) = 0.0000000064
Видим, что погрешности последующих членов ряда неважны.
Таким образом,
 Δ(cos(t)) = 0.0002
cos(t) = 1.000 ± 0.0002 = 1 ± 0.02%
δ(cos(t)) = 0.0002 = 0.02%
(правда, погрешность работает только "вниз", т.к. cos t <= 1).
Кол-во верных значащих цифр косинуса:
 в строгом (узком) смысле: 4
в нестрогом (широком) смысле: 4
(сомнительный разряд в конце не добавляется, т.к. погрешность превосходит единицу этого разряда)

А если не вычитать период, то ряд косинуса будет сходиться медленно и печально, накапливая при этом погрешность:
 δ(t² / 2) = 1.6%
t² / 2 = (987.2 ± 1.6%) / 2 = 493.6 ± 7.9
δ(t⁴ / 24) = 3.2%
t⁴ / 24 = (974596.22042896 ± 3.2%) / 24 = 40608.176 ± 1300
Видим, что абсолютная погрешность уже второго члена ряда обессмысливает дальнейшие вычисления, а абсолютные погрешности где-то до 35-го члена ряда будут только расти.
Семён Уваров
Семён Уваров
54 053
Лучший ответ
А Н Здравствуйте! Отличное решение, но почему δ(x) = 0.02 / 4.11 = 0.0048, а не 0.0049?
Андрей Михайлович здравствуйте, можете пожалуйста решить? можете написать как с вами связаться и договоримся :)