Неопределенная функция 'taylorexp' для входных аргументов типа 'double' - PullRequest
0 голосов
/ 14 сентября 2018

У меня ошибка

Это мой код en MATLAB

Экспоненциальная рекурсивная

     function sumac=taylorexp(x,n)



        if n==0     sumac=1; 

        else   sumac=((x^(n)/factorial(n)))+taylorexp(x^(n-1),n-1));  

        end  

        end

Ответы [ 2 ]

0 голосов
/ 16 сентября 2018

Сначала я говорю, что приветствую вас.

Наш друг @Ноа Левенштейн отвечает правдой, но я думаю, что нужно кое-что завершить, чтобы я не смог добавить их в качестве правки в его ответ.

  1. Скобки не совпадают.Используйте ответ @ Noah.
  2. Сохраните свою функцию в taylorexp.m и просто вызовите ее из другого скрипта.
  3. Не используйте двойные (нецелые) числа.factorial просто работает с n=0,1,2,..., а не с чем-то вроде 2.2 или с чем-то вроде 6.81.
  4. Использование нецелых чисел для n также имеет другую проблему: ваша рекурсивная функция никогда не может удовлетворить конечному условиюи попадает в бесконечный цикл

Я думаю, что ваша главная проблема №3 или №4, но если нет, не стесняйтесь комментировать.

0 голосов
/ 14 сентября 2018

Ваш код содержит синтаксическую ошибку (вы закрываете круглые скобки, которые вы никогда не открывали), и я считаю, что это не то, что вы хотите.Я полагаю, вы хотели вычислить разложение Тейлора exp (t) в точке x до n-го порядка.Следующий код делает это:

function sumac = taylorexp(x,n)
     if n == 0
         sumac = 1;
     else
         sumac = x^n/factorial(n) + taylorexp(x,n-1);
     end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...