Поиск:

Ответ в темуСоздание новой темы Создание опроса
> СЛАУ методом гауса!? 
:(
    Опции темы
Salatovec
Дата 15.2.2008, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 9.1.2008

Репутация: нет
Всего: -1



Вот есть решение СЛАУ методом гауса и простых итераций для матрицы размером 3 на 3:

Код

#include<iostream.h>
#include<conio.h>
#include<math.h>
#include<stdlib.h>
void main()
{
    double x1,x2,x3;
    double a[3][3]={{2.7, 0.9, -1.5},
           {4.5,  -2.8,  6.7},
           {5.1,  3.7,  -1.4}};
    double a1[3][3]={{2.7, 0.9, -1.5},
           {4.5,  -2.8,  6.7},
           {5.1,  3.7,  -1.4}};
    double b[3]={3.5,2.6,-0.14},c[3],d[3],a2[3][3];
    int j,i,method;
    cout<<"\t\t PRIMARY DATE:\n"<<endl;
    cout<<"Matrix A:";
    cout<<"\t    Vector B:"<<endl;
    for( i=0;i<=2;i++)
    {
        cout<<"\n";
        for( j=0;j<=2;j++)
            cout<<a[i][j]<<"  ";
        cout<<"\t";
        cout<<b[i]<<endl;
    }
    cout<<"\n\nPlease select method: Gauss(1) or Easy iteratios(2)"<<endl;
    cin>>method;
    switch(method)
    {
    case 1:
        cout<<"Congratulation you select method of Gauss!!!\n"<<endl;
        for( i=0;i<=2;i++)    
            d[i]=b[i];
        for( i=1;i<=2;i++)
            for( j=1;j<=2;j++)
                a[i][j]=a[i][j]-(1/a[0][0])*a[i][0]*a[0][j];
            for( i=1;i<=2;i++)
                for( j=1;j<=2;j++)
                    a2[i][j]=a[i][j];
                for( j=2,i=2;j<=2;j++)
                    a[i][j]=a[i][j]-(1/a[1][1])*a[i][1]*a[1][j];
                for( i=1;i<=2;i++)
                {
                    b[i]=b[i]-(1/a[0][0])*a[i][0]*b[0];
                    c[i]=b[i];
                }
                for( i=2;i<=2;i++)
                    b[i]=b[i]-(1/a[1][1])*a[i][1]*b[1];
                x3=b[2]/a[2][2];
                x2=((1)/a2[1][1])*(c[1]-a2[1][2]*x3);
                x1=((1)/a1[0][0])*(d[0]-a1[0][2]*x3-a1[0][1]*x2);
                cout<<"x1="<<x1<<endl;
                cout<<"x2="<<x2<<endl;
                cout<<"x3="<<x3<<endl;
                break;
    case 2:
        cout<<"Congratulation you select method of Easy iteratios!!!"<<endl;
        double x[3],x1[3],e,km=20,k=1,s;
        cout<<"Please enter the E:";
        cin>>e;
        for(i=0;i<3;i++)
            x[i]=b[i];
        for(k=0;k<km;k++)
        {
            for(i=0;i<=2;i++)
            {
                s=0; 
                for(j=0;j<=2;j++)
                {
                    if(i!=j)
                        s+=a[i][j]*x[j]; 
                }
                x1[i]=(b[i]-s)/a[i][i];    
            }
            for(i=0;i<=2;i++)
            {
                int t=i+1;
                cout<<"x["<<t<<"]=";
                cout<<x1[i]<<endl;
            }
            cout<<"\n";
            for(i=0;i<=0;i++)
            {
                if((fabs(x1[i]-x[i]))>e)
                {
                    for(j=0;j<=2;j++)
                        x[j]=x1[j];
 
                }
                else
                {
                    cout<<"Number of iteratios:"<<k<<endl;
                    getch();
                    exit(0);
                }    
            }    
        }
        break;
    }
 
    getch();
}


Нужно переделать его под матрицу размером 4 на 4, 2 день делаю - не получается =( помогите пожалуйста
Я чет не рублю в метод Гауса =\

Это сообщение отредактировал(а) Salatovec - 15.2.2008, 15:43
PM MAIL   Вверх
Vitaly333
Дата 15.2.2008, 19:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 6.11.2006
Где: Volgograd

Репутация: нет
Всего: 2



Ты не в тот подфорум написал. Для этого есть подфорум Технологии и Алгоритмы. Там же есть библиотека алгоритмов. В ней есть метод Гаусса и метод простых итераций для матрицы nxn.
PM MAIL   Вверх
Salatovec
Дата 16.2.2008, 00:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 213
Регистрация: 9.1.2008

Репутация: нет
Всего: -1



Спасибо большое)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0628 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.