Como armazenar a saída do comando Matlab (como um pipe no UNIX)?

0

Estou a perguntar a esta comunidade por esta questão . Por favor, deixe-me saber se isso é incorreto e qual comunidade eu deveria usar.

Estou tentando avaliar uma integral no Matlab usando:

int(x^(2)*sin(n*x),x)

Que retornará:

(2*x*sin(n*x))/n^2 - cos(n*x)*(x^2/n - 2/n^3)

Eu então quero avaliar o resultado desta integral em valores específicos (similar a uma integral definida, mas eu não tenho que recomputar a integral uma e outra vez se eu precisar conectar muitos pontos diferentes). Existe uma maneira de armazenar o resultado da integral como uma função? Eu tentei:

f = @(x) int(x^(2)*sin(n*x), x)

mas, se eu quiser avaliar f em 0, f(0) tentará fazer: int((0)^(2)*sin(n*0), x) , onde eu quero: (2*(0)*sin(n*(0)))/n^2 - cos(n*(0))*((0)^2/n - 2/n^3) . Essencialmente, eu quero que o Matlab leve a integral e então avalie em um certo valor, sem ter que copiar e colar o resultado do comando int() na próxima linha? Eu relacionaria isso com os no Linux, de modo que eu gostaria de canalizar a saída do int() chame a próxima linha e avalie seu resultado em um valor específico. Existe uma maneira de fazer isso?

    
por wcarhart 11.12.2016 / 04:42

2 respostas

0

Eu resolvi meu problema usando o seguinte:

f = symfun(int(x^(2)*sin(n*x),x),x);

Agora posso usar f(0) como desejo. Eu também encontrei o seguinte se eu quisesse mudar para o cálculo numérico:

fn = matlabFunction(f)

    
por 12.12.2016 / 04:42
0

Você pode fazer isso salvando uma versão simbólica da equação resolvida.

sums n x

f = sym('int(x^(2)*sin(n*x),x)')

f é agora uma representação simbólica de

(2*x*sin(n*x))/n^2 - cos(n*x)*(x^2/n - 2/n^3)

use o comando pretty (f) para visualizá-lo de maneira limpa.

Para usar essa equação para obter uma resposta numérica, use o comando subs ():

subs( f, [x n], [1,5])

Eu não tenho o matlab disponível para verificar minha sintaxe, mas se esta for a capacidade que você está procurando, deve ser suficiente para você começar.

    
por 12.12.2016 / 04:45

Tags