Поиск корня нелинейного алгебраического уравнения методом релаксации н

  • Автор темы vivkin
  • Дата начала
V

vivkin

Гость
#1
не знаю..то ли это вообще..правльно ли поняла..
#include <stdio.h>
#include "math.h"
#define N 5
#define W 0.9

float A[N][N],f[N],x[N];

void printA()
{
int i,j;

for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
printf("%2.3f ",A[j]);
printf("\n\r");
}
}

void init()
{
int i,j;
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
A[j] = expf(-abs(i-j));

x = 0;
f = 0;
}
f[0] = 1;
}

int main()
{
float inc_x = 100;
int i,j,iter = 0;
bool first = 1;

init();

printA();
printf("\n\r"); // переводит строку

while ((abs(inc_x)>0.0001))//
{
for(i=0;i<N;i++)
{
float X = 0,_x;ока выражение после while отлично от нуля выполняется Оператор. После while ”;” не ставится.

for (j=0;j<N;j++)
X = X + A[j]*x[j];

_x = W*(X - f)/A;
if ((abs(inc_x)<abs(_x))|first)
{
first = 0;
inc_x = _x;
}

x = x - _x;
}
iter++;
first = 1;
}

printf("Iter:%d\n\r",iter);
for(i=0;i<N;i++)
printf("%2.4f\n\r",x);

scanf("%d",&i);

return 0;
}