|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Вычислить выражение |
|
|
C/C++ - Вычислить выражение
|
Новый участник Сообщения: 12 |
Профиль | Отправить PM | Цитировать
2013-11-27 20_33_23-IntelligentTouchpadWindow.png
как для данного действительного числа x вычислить это выражение? |
|
Отправлено: 22:41, 27-11-2013 |
Ветеран Сообщения: 1404
|
Профиль | Отправить PM | Цитировать |
------- Отправлено: 00:48, 28-11-2013 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать Цитата mrcnn:
что-то не так... |
|
Отправлено: 02:09, 28-11-2013 | #3 |
Ветеран Сообщения: 1180
|
Профиль | Отправить PM | Цитировать Если я правильно помню мат.анализ, то выражение на картинке - это разложение в ряд резольвенты оператора sin(x).
степень - это применение оператора к самому себе. Отрицательная - обратный оператор В нашем случая lambda=1. Но резольвента существует только если оператор отображает в круг радиусом до 1. Будем считать что |sin(x)| < 1. Тогда: y = -(I + A + A^2 + ....) --> -y = ((A - I)^-1) x ==> (A - I)(-y) = x где A(x) = sin(x), I(x) = x т.е. для заданного x нужно решить уравнение x==y-sin(y), в интервале {-1,+1} (не включая границы, иначе определитель оператора A превысит 1). А это уже можно сделать, например, методом Ньютона. http://alexandr4784.narod.ru/B13/b13_4_46.pdf, стр.188 |
Отправлено: 11:08, 28-11-2013 | #4 |
Ветеран Сообщения: 1404
|
Профиль | Отправить PM | Цитировать Цитата p1ka4y777:
|
||
------- Отправлено: 16:26, 28-11-2013 | #5 |
Ветеран Сообщения: 1180
|
Профиль | Отправить PM | Цитировать Цитата mrcnn:
mrcnn, в твоём способе от рекурсии можно избавиться, сделать в 1 цикл, если переиспользовать предыдущие вычисленные значения sin(sin(...)). Имхо возле единиц сходиться будет медленней чем решение обратного уравнения. |
|
Отправлено: 18:03, 28-11-2013 | #6 |
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать |
Отправлено: 18:38, 28-11-2013 | #7 |
Ветеран Сообщения: 1180
|
Профиль | Отправить PM | Цитировать p1ka4y777, делаем замену переменных:
короче чтобы одна переменная всегда содержала вычисленный в прошлый раз sin(...), тогда синус от неё даст следующий вычисленный синус. Принципиально пишу идею, а не код, ибо код элементарно прост. |
Отправлено: 22:55, 28-11-2013 | #8 |
Новый участник Сообщения: 12
|
Профиль | Отправить PM | Цитировать |
Последний раз редактировалось p1ka4y777, 28-11-2013 в 23:41. Отправлено: 23:01, 28-11-2013 | #9 |
Ветеран Сообщения: 1180
|
Профиль | Отправить PM | Цитировать можно, но при x=pi будет большая погрешность.
Цитата pva:
Хотя если сделать замену t = sin(x), получится то, что надо, |
|
Отправлено: 08:55, 29-11-2013 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
.NET - Регулярное выражение | LilLoco | Программирование и базы данных | 19 | 04-05-2016 09:36 | |
Debian/Ubuntu - grep регулярное выражение | Forpost | Общий по Linux | 3 | 25-05-2012 00:50 | |
Регулярное выражение | venuko | Вебмастеру | 11 | 02-08-2010 18:18 | |
.NET - Вычислить строку в C# | SmallGod | Программирование и базы данных | 1 | 26-02-2010 01:19 | |
Регулярное выражение | benya | Вебмастеру | 27 | 26-08-2005 14:34 |
|