Buscar

Newton-Raphson em C (programa)

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

//INCLUSAO DE BIBLIOTECAS
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
//Definições das funções f(x,y) e g(x,y)
double fxyz (double x, double y, double z)
{
 return pow(x,2) - x + pow(y,2) + pow(z,2) - 5;
}
double gxyz (double x, double y, double z)
{
 return pow(x,2) + pow(y,2) - y + pow(z,2) - 4;
}
double hxyz (double x, double y, double z)
{
	return pow(x,2) + pow(y,2) + pow(z,2) + z - 6;
}
//Início do algorítimo
int main()
{
 //double será usado para maior precisão das casas decimais
 double e, deltax1, deltax2, deltax3, f1, f2, f3;
 e = pow(10,-10);
 deltax1 = 99999;
 while ( deltax1 > e)
 {
 //definição da matriz jacobiana
 double jfg[3][3], x, y, z;
 jfg[0][0] = 2*x-x;
 jfg[0][1] = 2*y;
 jfg[0][2] = 2*z;
 jfg[1][0] = 2*x;
 jfg[1][1] = 2*y-y;
 jfg[1][2] = 2*z;
 jfg[2][0] = 2*x;
 jfg[2][1] = 2*y;
 jfg[2][2] = 2*z+1;
 
 //exibir a matriz jacobiana
 printf ("%d %d %d\n", jfg[0][0], jfg[0][1], jfg[0][2]);
		printf ("%d %d %d\n", jfg[1][0], jfg[1][1], jfg[1][2]);
		printf ("%d %d %d\n", jfg[2][0], jfg[2][1], jfg[2][2]);
		
 x0=1;
 y0=2;
 z0=3;
 
		//matriz no ponto x0,y0,z0
 jfg[0][0] = 2*x0-x0;
 jfg[0][1] = 2*y0;
 jfg[0][2] = 2*z0;
 jfg[1][0] = 2*x0;
 jfg[1][1] = 2*y0-y0;
 jfg[1][2] = 2*z0;
 jfg[2][0] = 2*x0;
 jfg[2][1] = 2*y0;
 jfg[2][2] = 2*z0+1;
 
		//funçoes no ponto x0,y0,z0
		f1 = pow(x0,2) - x0 + pow(y0,2) + pow(z0,2) - 5;
		f2 = pow(x0,2) + pow(y0,2) - y0 + pow(z0,2) - 4;
		f3 = pow(x0,2) + pow(y0,2) + pow(z0,2) + z0 - 6; 
 
		//calculo de deltax1, deltax2, deltax3
		jfg[0][0]*deltax1 + jfg[0][1]*deltax2 + jfg[0][2]*deltax3 = f1;
		jfg[1][0]*deltax1 + jfg[1][1]*deltax2 + jfg[1][2]*deltax3 = f2;
		jfg[2][0]*deltax1 + jfg[2][1]*deltax2 + jfg[2][2]*deltax3 = f3;
 
		//deltax1 = (jfg[0][0] * vfg[0] + jfg[1][0] * vfg[1]);
 //deltax2 = (vfg[0]*jfg[0][1] + vfg[1]*jfg[1][1]);
 while ();
		x[k+1] = x[k] + deltax1;
 y[k+1] = y[k] + deltax2;
		z0 = 
 //contando iterações
 n++;
 printf("O processo levou %i iteracoes ate aqui \n\n", n);
 printf("Os valores encontrados para x0 e y0 ate aqui foram: %d, %d\n\n", x0, y0);
 }
 //imprimindo numero de iterações e argumentos
 printf("O processo levou %i iteracoes para se concluir \n\n", n);
 printf("Os valores finais encontrados para x0, y0 e z0 foram: %d %d %d\n\n\n", x0, y0, z0);
 system("pause");
}

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais