Methodo newton e raphson

OLÁ,
Estou tendo dificuldades em criar uma repetição que pega um valor anterior calculado pela repetição, e diminua do valor calculado subsequente.
Segue abaixo o meu código
Meu erro esta na linha onde começa o “for”.

#include
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <locale.h>
//FORMULA GERAL x= x - f(x)/f’(x)
/* run this program using the console pauser or add your own getch, system(“pause”) or input loop */

int main(int argc, char** argv) {
setlocale(LC_ALL, “Portuguese”);
int I, numiter;
float x, erro, error, aux;

printf("###########################################\n");
printf("           NEWTON E RAPHSON                \n");
printf("###########################################\n");

printf("Função fixa é: (f(x) = x-cos(x) )\n");
printf("A derivada da Função é: (f'(x)= 1 + sin(x))\n\n");

printf("Digite o número máximo de iterações?\n");
scanf("%d", &numiter);

printf("Entre com o valor inicial de (x) da função:\n");
scanf("%f",&x);

printf("Digite o valor do erro:\n");
scanf("%f",&erro);

for(I=1; I<=numiter; I++){
	aux = x-(x-cos(x))/(1+sin(x));
	
	if( I<1 , x=aux){
		erro1 = fabs (aux - x);
	}
		printf("Valor de X%d = %f\n",I,x);
		
		printf("ERRO CALCULADO :%f\n"),erro1;
		
	if(x >= erro){
		printf("O VALOR CONVERGIU\n\n");
		
		}else{
			printf("O Valor não convergiu\n\n");
		
	}
	
}
printf("O Valor da raiz é: %f\n",x);

system(“PAUSE\n”);
}
//Preciso o quanto antes de ajuda, pois é um trabalho de faculdade. Muito obrigado.

Nossa, acho que já não da mais tempo pra fazer pra faculdade, mas espero que ainda seja útil de alguma forma :sweat_smile:

então: na linha for(I=1; I<=numiter; I++), acredito que tenha um erro na sintaxe! Geralmente se escreve o comando for dessa forma:
for (i = 1; i < variável; i++) {etc}

Tambem notei uns erros de sintaxe no if que vem em seguida ( if( I<1 , x=aux) )
Se você quer que nessa linha verifique se as duas condições são verdadeiras, ao invés de usar a vírgula, usa-se o operador lógico E (em C é &&)
E tambem se você quer saber se x é igual a aux, deve-se usar o operador lógico == para comparar (usando somente = ele atribui o valor de aux em x, e não compara :sweat_smile:)
então ficaria assim: if( I<1 && x == aux){etc}

Tem tambem o erro1, que não foi declarado em lugar nenhum (eu acho que era pra ser error)

Acho que arrumando essas coisinhas o programa pelo menos irá rodar sem apresentar mais erros. E digo isso pois acredito que tambem existe um erro de lógica nesse programa:

Veja, no for, você usa a variável I para identificar as iterações do cálculo, até aí tudo bem. Essa variável tem valor inicial 1, e vai incrementando até um valor determinado pelo usuário, e sem problemas até aqui. O problema acontece quando você utiliza o if: Para que o comando dentro do if aconteça (o que acredito que é a intenção de estar ali) a variável I deve ser menor que 1, o que é impossível, já que essa variável nunca terá valor menor que 1 até esse momento!

De tudo que eu vi desse código, acho que são essas coisas que tem dar uma olhada! Espero que tenha esclarecido e ajudado de alguma forma, apesar de ter visto isso bem atrasado :sweat_smile::sweat_smile: