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

Тема в разделе "C/C++/C#", создана пользователем vivkin, 17 сен 2010.

  1. vivkin

    vivkin Гость

    не знаю..то ли это вообще..правльно ли поняла..
    #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;
    }
     
Загрузка...

Поделиться этой страницей