Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Решение СЛАУ методом Жордана

25K
19 марта 2007 года
CmeXXX
2 / / 19.03.2007
Необходимо решить СЛАУ методом Жордана, язык С++/Paskal. Если у кого-нибуть есть - выложите пжлста - буду очень благодарен:)
27K
23 марта 2007 года
xelic
1 / / 23.03.2007
Лаба написана очень коряво, но работает (сам сдавал). Проверял
ее работу на Microsoft Visual Studio
Код:
////////////////////////////////////////////////////////////////////////////
// File : Lab061.cpp //
// Problem: //
// ђҐиЁвм бЁб⥬г га*ў*Ґ*Ё© ¬Ґв®¤®¬ †®а¤***. //
// a11x1+a12x2+a13x3+...+a1nxn=b1; //
// a21x1+a22x2+a23x3+...+a2nxn=b2; //
// ..............................; //
// an1x1+an2x2+an3x3+...+annxn=bn; //
// Author : Џ«®в*ЁЄ®ў „.Ђ. Ја. 19-11 //
// Date* : 20.12.2006 //
////////////////////////////////////////////////////////////////////////////
 
#include <stdio.h>
const Nmax = 6;
double b[Nmax][Nmax+1], a[Nmax][Nmax+1], x[Nmax], c[Nmax][Nmax+1];
double si[Nmax];
int sum, ii, v, i, j, N, s, k, e, q, p;
bool flag;
double y[Nmax-1];
 
//////////////////////////
// Function Read Matrix //
//////////////////////////
void ReadMatrix () {
for (i = 0; i <= N-1; i++)
for (j = 0; j <= N; j++)
{
printf("A[%d][%d] = ",i,j);
scanf("%lf",&a[j]);
c[j] = a[j];
}
printf("\n");
return;
}
 
///////////////////////////
// Function Write Matrix //
///////////////////////////
void WriteMatrix ()    {
printf("бЁбвҐ&#172;* га*ў*Ґ*Ё&#169; Ё&#172;ҐҐв ўЁ&#164; :\n");
for (i = 0; i <= N-1; i++)
{
for (j = 0; j <= N; j++)
printf("%3.1lf ",a[j]);
printf("\n");
}
printf("\n");
return;
}
 
int main()
{
int w1, w2;
q = p = e = 0;
flag = false;
do
{
printf("Љ&#174;&#171;ЁзҐбвў&#174; га*ў*Ґ*Ё&#169; ў бЁбвҐ&#172;Ґ = ");
scanf("%d",&N);
}
while ((N < 0) && (N >= Nmax));
ReadMatrix();
WriteMatrix();
 
/////////////
// Zhordan //
/////////////*
for (k = 0; k <= N-1; k++)
{
for (i = 0; i <= N-1; i++)
    {
     for (j = 0; j <= N-1; j++)
     {
        if (a[q]==0)
            flag = true;
 
else if (i != q)
        {
if (i != p)
b[j] = a[j] - a*a[q][j]/a[q];
else
b[j] = 0;
b[N] = a[N] - a*a[q][N]/a[q];
        }
else
        {
b[q][j] = a[q][j];
b[q][N] = a[q][N];
        }
     }
     if (flag) break;
    }
    if (flag) break;
w2 = 0;
for (i = 0; i <= N-1; i++)
{
ii = 0;
for (v = 0; v <= N-1; v++)
{
w1 = 0;
if (ii != si[v])
{
w1 = 1;
break;
}
else
if (ii <= N-1)
ii++;
if (w1) break;
}
w2 = 0;
for (j = 0;j <= N-1; j++)
if ((b[j] != 0) && (j - p == 1) && (w1 == 1))
{
p = j;
si[k+1] = q = ii;
w2 = 1;
break;
}
if (w2) break;
}
for (i = 0; i <= N-1; i++)
for (j = 0; j <= N; j++)
a[j] = b[j];
}
for (i = 0; i <= N-1; i++)
for (j = 0; j <= N; j++)
if (b[j] != 0)
e++;
 
////////////////////////////
// Verification of system //
////////////////////////////
if (e > 2*N || flag==true)
{
printf("‘ЁбвҐ&#172;* *Ґб&#174;ў&#172;ҐбвЁ&#172;*!\n");
flag = true;
}
else
printf("&#174;⢥в : \n");
for (k = 0;k <= N-1; k++)
{
for (i=0;i<=N-1;i++)
for (j = 0; j <= N-1; j++)
if (b[j] != 0)
x = b[N]/b[j];
printf("x[%d] = %lf\n",k,x[k]);
}
 
//////////////////////////////
//Verification of solutions //
//////////////////////////////
if (flag != true)
{
printf("Їа&#174;ўҐаЄ* аҐиҐ*Ё&#169; бЁбвҐ&#172;л : \n");
for (k = 0; k <= N-1; k++)
{
s = 0;
for (i = 0; i <= N-1; i++)
for (j = 0; j <= N; j++)
{
if (i != N)
y = s + c[j]*x[j];
else
y = s - c[j];
}
printf(">%lf = 0\n",y[k]);
}
}
return 0;
}
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог