#include #include /* snln.c : 1999 3 12 by Oguni */ #define N 2 main(){ double x[N]={3., -1.5}, A[N][N], an[N]; double tol=0.00001; int n=2, itr[2]={50,1}; snln(A,an,x,tol,n,itr); printf("Simultaneous non-linear equations.\n"); printf("%f %f %d\n", x[0], x[1], itr[1]); f(x,an,n); printf("Substtution check %f %f\n", an[0],an[1]); } /* function */ f(x,an,n) double x[N], an[N]; int n; { an[0]=x[0]*x[0]+x[1]+x[1]-4.; an[1]=x[0]*x[1]-1.; return; } /* function */ jacob(A,x,n) double A[N][N], x[N]; int n; { A[0][0]=2.*x[0]; A[1][0]=2.*x[1]; A[0][1]=x[1]; A[1][1]=x[0]; return; } /* snln */ snln(A,an,x,tol,n,itr) double A[N][N], an[N], x[N], tol; int n, itr[2]; { int i,j,k; double tol1=0.000000001, r, s, w[N]; for (i=1; i<=itr[0]; i++) { jacob(A,x,n); f(x,an,n); an[0]=-an[0]; an[1]=-an[1]; gauss(A, an, w, tol1, n); for (j=0; j=0; k--){ s=0.0; for (j=k+1; j