Оценка функции в Matlab - PullRequest
       1

Оценка функции в Matlab

0 голосов
/ 03 апреля 2011

Я расширил функцию греха в ряд Тейлора. Теперь я хочу оценить это в конкретный момент. Я получаю странные ошибки "MuPAD" в Matlab. Что я делаю не так?

function r1=taylor_sine
syms x;
mysine = taylor(sin(x), 63, 0);
r1 = funm(220, mysine); 

Ответы [ 2 ]

1 голос
/ 03 апреля 2011

Вы действительно имели в виду 220? Или вы имели в виду 220 градусов, и в этом случае вы должны использовать 220 * пи / 180?

Я думаю, это должно быть сабс не funm

r1 = double( subs(mysine, x, 220*pi/180) );
1 голос
/ 03 апреля 2011

Я не на 100% знаком с синтаксисом, который вы используете, возможно, синтаксис встроенной функции немного отличается от расширенного синтаксиса, однако похоже, что ваша функция не имеет четко определенных входных и выходных данных.Не встроенная функция Matlab должна выглядеть следующим образом:

%Comment
function [ theta ] = FunctionName( alpha, beta )
theta = alpha + beta;
end

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

Что касается фактического тела вашегоФункция, я вижу несколько странных вещей.Что должен делать «syms x»?Я бы заменил эту строку на «x = -pi: 0.001: pi;»(пусть x будет вектором от -pi до pi с шагом 0,001).или что-то аналогичное этому.

Также для нормальной аппроксимации Тейлора я бы использовал Тейлор (sin (x), 63) (перегрузка с 'v' - приближает Макларина).Кроме того, я бы не делал приближение Тейлора до 63-1-го порядка, это слишком много, возможно, MatLab дает сбой.

На следующем рисунке вы можете видеть, что приближение 7-го порядка уже чрезвычайно хорошо между -pi и pi.Taylor series for different orders of approximation for sin(x)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...