Baixe o app para aproveitar ainda mais
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"); }
Compartilhar