
C/C++
Погрешности вычислений. Вычисление значений функций
Вычислить значение функции и, ее предельные абсолютную и относительную погрешности, если известны погрешности ее аргументов. Найти количество верных значащих цифр функции и (в широком и узком смысле). Параметры m и k заданы точно. 

Погрешности:
При умножениях и возведениях в степени используем относительную погрешность, при сложениях - абсолютную.
А дальше надо понять, косинус в лоб считать или сначала вычесть 10π ≈ 31.4159.
Если вычесть, то значение аргумента окажется в районе 0.004 при абсолютной погрешности 0.25. Погрешностью аргумента будет:
Погрешности:
Таким образом,
Кол-во верных значащих цифр косинуса:
А если не вычитать период, то ряд косинуса будет сходиться медленно и печально, накапливая при этом погрешность:
δ(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-го члена ряда будут только расти.
А Н
Здравствуйте! Отличное решение, но почему δ(x) = 0.02 / 4.11 = 0.0048, а не 0.0049?
Андрей Михайлович
здравствуйте, можете пожалуйста решить? можете написать как с вами связаться и договоримся :)

Похожие вопросы
- Составить программу для вычисления значения выражения. C++
- Написать программу, которая по введенному значению аргумента вычисляет значение функции, заданной в виде
- Вычислить значение функции F(x), разложенной в ряд и сходящейся в указанной области. Написать программу на языке C++
- Помогите пожалуйста построить таблицу значений функции y = f(x) для x ∈ [a, b] с шагом h (с помощью условного оператора)
- Писать код функции S(x) вычисления сумму ряда с заданной точностей
- Помогите составить алгоритм вычисления функции:
- Составьте алгоритм и напишите программу вычисления суммы n членов ряда согласно условию задачи
- С++ вычисление последовательностей
- Почему данная программа после всех вычислений в консоли выдает в итоге "о"?
- Вычисление суммы знакопеременного ряда