На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! правила раздела Алгоритмы
1. Помните, что название темы должно хоть как-то отражать ее содержимое (не создавайте темы с заголовком ПОМОГИТЕ, HELP и т.д.). Злоупотребление заглавными буквами в заголовках тем ЗАПРЕЩЕНО.
2. При создании темы постарайтесь, как можно более точно описать проблему, а не ограничиваться общими понятиями и определениями.
3. Приводимые фрагменты исходного кода старайтесь выделять тегами code.../code
4. Помните, чем подробнее Вы опишете свою проблему, тем быстрее получите вразумительный совет
5. Запрещено поднимать неактуальные темы (ПРИМЕР: запрещено отвечать на вопрос из серии "срочно надо", заданный в 2003 году)
6. И не забывайте о кнопочках TRANSLIT и РУССКАЯ КЛАВИАТУРА, если не можете писать в русской раскладке :)
Модераторы: Akina, shadeofgray
Страницы: (3) 1 [2] 3  все  ( Перейти к последнему сообщению )  
> Нахождение производной
    Leprecon Спасибо за самый реальный подход из предложенных
    Только фвозникает вопрос как w'(x) будет Bыглядеть  для (Sin(x))^m
      Trurl Полностью согласен тем более что мне необходимо опериро?ть и бес того  мaлыми Bеличинaми
        ну ежели тебе надо вычислять производную только от (sin(x))^m, то тогда можно сделать ещё проще и в то же время точнее - продифференцировать её и подставлять значения в найденную производную.

          ((sin(x))^m)'=m*(sin(x))^(m-1)*cos(x)
          А ты попробуй найти производную n-й степени от sinn(x) ?
          Цитата wormball, 15.03.03, 19:13:59
          как я понимаю, спасибо мне 8).
          Я ведь так понял, что ты самый ...  8)

          Цитата True_Hart, 29.03.03, 11:21:08
          Leprecon Спасибо за самый реальный подход из предложенных
          Только фвозникает вопрос как w'(x) будет Bыглядеть  для (Sin(x))^m
          w'(x) - это не производная от w(x), это выражение, которое находится по формуле которую,я привел. Более того, если ты подставишь туда xk - то это будет просто константа. Не забудь пропустить (x-xk), как там написанно :)
          x0, x1, ... - это узлы сетки, на которую ты разобьешь отрезок [a,b], на котором тебе надо найти производную.
          Сообщение отредактировано: Leprecon -
            #14 Мысль правильная, но многочлен Лагранжа имеет слишком мало общего с самой функцией. Лучше использовать аппроксимацию на основе разложения в ряд. Проще всего посмотреть в каком-нибудь справочнике - там все коэффициенты уже посчитаны.
            Точнее всего сделать аналитически, но как я понимаю, задача по численным методам ;).
              Цитата
              Лучше использовать аппроксимацию на основе разложения в ряд.
              Пожалуй это действительно удобнее. Может для такой функции имеет смысл построить ряд Фурье?

              Цитата
              Точнее всего сделать аналитически, но как я понимаю, задача по численным методам
              Ряд и его производную наверно можно аналитически. А оставшиеся вычисления численно :)

              Численно ряд построить не так уж сложно. Но для ряда Тейлора, придется все равно вычислять n-ую производную, хоть и в одной точке. Численно лучше всего вычислять ряд Фурье, там производных не нужно.
              Сообщение отредактировано: Leprecon -
                На досуге почитай Кнута первый том (глава 2 - Структуры данных). Там как пример работы с деревом показано вычисление производной ЛЮБОЙ функции. Код для машины MIX конечно, разобрать можно, но и теоретические идеи очень хороши  8D
                  tserega
                  Обязательно почитаю...
                    Цитата Leprecon, 31.03.03, 14:48:24

                    Численно лучше всего вычислять ряд Фурье, там производных не нужно.

                    Извини за глупый вопрос "Что такое ряд Фурье?"
                      касаемо фурье см тут: http://pascal.sources.ru/cgi-bin/forum/YaBB.cgi?board=algorithm;action=display;num=1016036282

                      http://pascal.sources.ru/cgi-bin/forum/YaBB.cgi?board=algorithm;action=display;num=1037119227
                      но я думаю оно тут не поможет. ежели функцию раскладывать в ряд на каком-то промежутке, то получится не обязательно производная твоей функции, всё зависит от точности разложения. вплоть до того, что получится число, отличающееся на порядок.

                      тебе всё-таки надо найти аналитический вид производной - или маткадом, или самому помучаться (если умеешь....). если повезёт, она будет не такой уж и громоздкой 8D.

                      тут на меня снизошёл приступ альтруизма и я решил взять ея прямо тут.

                      ((sin(x))^m)' = m*(sin(x))^(m-1)*cos(x)
                      ((sin(x))^m)'' = m*(m-1)*(sin(x))^(m-2)*(cos(x))^2 - m*(sin(x))^m
                      ((sin(x))^m)''' = m*(m-1)*(m-2)*(sin(x))^(m-3)*(cos(x))^3 - 2*m*(m-1)*(sin(x))^(m-1)*cos(x) - m*m*(sin(x))^(m-1)*cos(x) = m*(m-1)*(m-2)*(sin(x))^(m-3)*(cos(x))^3 - m*(3*m-2)*(sin(x))^(m-1)*cos(x)

                      ....

                      дааааа..... не повезлоооо.......

                      тогда остаётся только численный метод
                      Сообщение отредактировано: wormball -
                        Цитата True_Hart, 01.04.03, 00:54:22
                        Извини за глупый вопрос "Что такое ряд Фурье?"


                        Рассматривается функция в интервале (-L, L)
                        Ряд Фурье, это ряд вида:
                        f(x) = a0/2 + Сумма(ancos(Пnx/L) + bnsin(Пnx/L))
                        Cумма по n от 1 до бесконечности.
                        П - это константа Пи.

                        Где
                        an = 1/L Инт(f(x)cos(Пnx/L))dx   - Интеграл от -L до L, n = 0,1,2,3,...
                        bn = 1/L Инт(f(x)sin(Пnx/L))dx   - Интеграл от -L до L, n = 1,2,3,...

                        Определенный интеграл вычислить несложно, можно применить простые методы: прямоугольников, трапеций или парабол. Скажи если нужно их описать.

                        Конечно до бесконечности ряд делать не стоит - скорее всего тебе нужно вручную, пробами, посмотреть до каких n нужно суммировать, чтобы получить нужную точность. А уж вычислить n-ую производную от этого ряда проще простого.
                        Сообщение отредактировано: Leprecon -
                          2Leprecon

                          вычислить производную ряда фурье, конечно, просто, но нет никакой гарантии, что она будет сколько-либо точно описывать производную нашей функции, и чем больше порядок производной (а здесь он, надо полагать, велик), тем меньше точность.

                          2True_Hart

                          для чего хоть ето тебе надо? может стоящую перед тобой задачу можно решить более гуманными способами?
                          Сообщение отредактировано: wormball -
                            Цитата wormball, 04.04.03, 17:06:13
                            вычислить производную ряда фурье, конечно, просто, но нет никакой гарантии, что она будет сколько-либо точно описывать производную нашей функции, и чем больше порядок производной (а здесь он, надо полагать, велик), тем меньше точность.
                            Я хотя бы решение предлагаю, вместо того, чтобы скептически обсуждать чужие ответы.  Почитай любой учебник по численным методам, там тебе сначало скажут, что численное нахождение производной через разностное выражение (Это то, что ты вначале предложил) не корректно, а потом предложат аппроксимировать функцию f(x), многочленом (Это то, что ты сейчас критикуешь). Я предлагаю, заменить функцию, рядом Фурье, так как для его построения не нужно находить производную, и не нужно раскрывать много скобок, как в интерполяционных многочленах. Точность производной будет зависить только от кол-ва слагаемых в ряде, так что можно вычислить ее с какой угодно точностью, повторю: все зависит от длинны ряда.
                              Цитата wormball, 04.04.03, 17:06:13

                              для чего хоть ето тебе надо?

                              Это все нужно только для того что бы вычеслить
                              центральную аномалию планеты используя формулу Кеплера с применением ряда Лагранжа
                              Нечто вроде
                              E = M + a*sin M + (a^2)/2! * d/dM (sin M)^2 + .... + (a^n)/n! * d/dM^n-1 (sin M)^n
                              Где M - средняя аномалия, a - эксентриситет планетной орбиты
                                Ну, тогда о численном методе и не думай! Только аналитически.
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (3) 1 [2] 3  все


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0346 ]   [ 15 queries used ]   [ Generated: 3.05.24, 07:01 GMT ]