Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Anezio Rodrigues Junior

Integrando em c++

Recommended Posts

Olá, boa tarde,

sou aluno de ciências da computação e estou no primeiro ano. Bom, já está chegando o final do ano letivo e com ele alguns trabalhos para conclusão de semestre. Tendo em vista minhas principais matérias (e por sinal as mais difíceis) calculo: integral e derivada e técnicas de programação (C++), gostaria de "matar dois coelhos com uma unica cajadada" aplicando as técnicas de programação para implementar um programinha que possa INTEGRAR expressões (com certeza - e digo isso por já ter visto aqui - exitem outros posts pedindo ajuda), no entanto estou com uma pequena duvida no algorítimo para a identificação das expressões. Será que alguma boa alma exata poderia me ajudar? Estive pensando em fazer um menu no qual o individuo identificaria qual a expressão a ser derivada dentre as 22 possíveis situações para tal, mas não sei se é o melhor caminho. Vi, também aqui, um membro sugerindo que o algorítimo varresse uma string e a comparasse para ver a que campo se encaixa. Se alguém qui já teve alguma experiencia com o mesmo problema, POR FAVOR, me ajudem.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode-se usar algoritmos numéricos para computar valores desses tipos.

 

Uma forma simples de derivação numérica é usar a aproximação da própria definição de derivadas (variação infinitesimal da aplicação de uma função dada variação infinitesimal do parâmetros a respeito do qual a derivada é calculada). Como o operador de derivação é, intrinsecamente, de ordem superior, C e C++ não permitem implementá-lo completamente. Em uma linguagem com funções de primeira classe como JavaScript, pode-se definir a derivada parcial da seguinte forma:

function derivator(func, step) {
 
    step = step || Number.MIN_VALUE;
 
    return function (x) {
        return (func(x + step) - func(x)) / step;
    };
}

Aqui, usei Number.MIN_VALUE como valor infinitesimal. O resultado desta função é, em si, uma função derivada de func, cuja aplicação dá o valor da derivada aplicada sobre algum argumento da função original. Como C e C++ não possuem funções de primeira classe, um bom exercício é tentar implementar a seguinte:

double dx(double (*f)(double), double x);

Esta função deve dar o valor da derivada de f no ponto x. Apesar de muito mais restrita e menos elegante que a solução em JavaScript, ou em qualquer outra linguagem que suporte de forma melhor construções funcionais, vale o esforço do exercício.

 

Integração numérica não é tão simples quanto derivação, pois não surge naturalmente da definição matemática. Apesar disso, é relativamente fácil de entender. Sugiro que pesquise as regras de Newton-Cotes.

 

Se você estuda ciência da computação, muito provavelmente seu currículo envolve cálculo numérico. Nesse caso, você com certeza abordará estes tópicos.

 

Se decidir seguir em frente e tiver dúvidas específicas, pode postar que te ajudamos.

 

:)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.