/ / Avaliando uma função no matlab - matlab

Avaliando uma função no matlab - matlab

Eu expandi a função do pecado em uma série de Taylor. Agora quero avaliá-lo em um ponto específico. Eu recebo erros estranhos "MuPAD" no matlab. O que estou fazendo de errado?

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

Respostas:

1 para resposta № 1

Você realmente quis dizer 220? Ou você quis dizer 220 graus, nesse caso você deve usar 220 * pi / 180?

Eu acho que deveria ser subs não funmo

r1 = double( subs(mysine, x, 220*pi/180) );

1 para resposta № 2

Eu não estou 100% familiarizado com a sintaxe que você estáusando, talvez a sintaxe da função embutida seja um pouco diferente da sintaxe expandida, no entanto, parece que sua função não possui uma entrada e saída definida claramente. Uma função matlab não-inline deve ter esta aparência:

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

Tente criar sua função em separado.m arquivo (nome do arquivo igual ao nome da função). Depois de criar o arquivo .m, certifique-se de que ele esteja localizado no caminho de pesquisa do MatLab (verifique se o autocompleter mostra o nome da sua função ao digitá-lo parcialmente).

Quanto ao corpo real da sua função, vejo umpoucas coisas estranhas. O que é "syms x" deveria fazer? Eu substituiria essa linha por "x = -pi: 0.001: pi;" (tem x ser um vetor de -pi a pi com incrementos de 0,001). ou algo análogo a isso.

Também para a aproximação normal de Taylor eu usariataylor (sin (x), 63) (a sobrecarga com "v" - faz uma aproximação de Maclaurin). Também eu não faria uma aproximação de Taylor até a 63ª ordem, isso é muito alto, talvez o MatLab falhe sobre isso.

Na figura a seguir você pode ver que a aproximação de 7ª ordem já é extremamente boa entre -pi e pi. Série de Taylor para diferentes ordens de aproximação para o pecado (x)