Вычислить выражение
Вложений: 1
Файл 107315
как для данного действительного числа x вычислить это выражение? |
Это обычная рекурсия.
Код:
double f(x) |
Цитата:
что-то не так... |
Если я правильно помню мат.анализ, то выражение на картинке - это разложение в ряд резольвенты оператора sin(x).
Код:
R = (A - lambda I)^-1 = (- 1/lambda))(I + A/lambda + A^2/lambda^2 + ...) В нашем случая lambda=1. Но резольвента существует только если оператор отображает в круг радиусом до 1. Будем считать что |sin(x)| < 1. Тогда: Код:
y = -(I + A + A^2 + ....) --> -y = ((A - I)^-1) x ==> (A - I)(-y) = x Код:
-sin(y) + y = x http://alexandr4784.narod.ru/B13/b13_4_46.pdf, стр.188 |
Цитата:
|
Цитата:
mrcnn, в твоём способе от рекурсии можно избавиться, сделать в 1 цикл, если переиспользовать предыдущие вычисленные значения sin(sin(...)). Имхо возле единиц сходиться будет медленней чем решение обратного уравнения. |
|
p1ka4y777, делаем замену переменных:
Код:
1. sin(x) = t1 |
спасибо большое!
условие непонятное... не пойму, когда закончим то? можно например так сделать? Код:
for( i = 1; i <= 5; i++ ) |
можно, но при x=pi будет большая погрешность.
Цитата:
Хотя если сделать замену t = sin(x), получится то, что надо, Код:
y - sin(y) == sin(x) |
решение будет выглядеть как если если график http://fooplot.com/plot/hkeczk1te8 отразить вокруг оси y=x (поменять y и x местами)
|
Время: 20:01. |
Время: 20:01.
© OSzone.net 2001-