MimiMeow 0 Denunciar post Postado Novembro 18, 2014 Olá pessoal, estou fazendo um programinha para achar raízes de uma equação pelo método de Newton. Mas estou com um probleminha e não sei resolver... A função: sqrt(x) - 5*exp(-x) Eu tô fazendo o seguinte: #include <stdio.h> #include <math.h> float f(float x) { return sqrt(x)-5*exp(-x); //Função } float der(float x) { return (5*exp(-x))+(1/(2*sqrt(x))); // derivada de f(x). } int main() { float E, x0, *it; // erro, ponto inicial, vetor iterações. int i, num_it; // iteração atual, número de iterações. E=pow(10,-7); printf("Digite o número máximo de iterações:\n"); scanf("%d", &num_it); printf("Digite o X0 inicial: \n"); scanf("%f", &x0); // Alocar dinamicamente memória para o vetor das iterações. it = malloc( sizeof(int) *num_it); // Condições iniciais. it[0] = x0; i = 0; // Iterações. while(f(it) > E) { // Excedeu o limite de iterações. if(i > num_it) { printf("Não convergiu em %d iterações!!!\n", num_it); printf("Provavelmente f'(x) está errada.\n"); } it[i+1] = it - f(it)/der(it); i++; } printf("X ~= %f ", it); printf("\nForam feitas %d iterações.\n",i); } O que está em vermelho é o que está dando erro, o que eu fiz de errado? Alguém pode me corrigir? Obrigada! Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Novembro 18, 2014 O que está em vermelho é o que está dando erro, o que eu fiz de errado? Poste o erro que o compilador escreve na tela. Compartilhar este post Link para o post Compartilhar em outros sites