Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.11.2008, 23:05   #1
mashulya
 
Регистрация: 21.11.2008
Сообщений: 5
По умолчанию Решение систем литейных уравнений матричным методом

Товарищи программисты помогите пожалуйста! Нужно написать прогу которая будет решать систему линейный уравнений с 4мя неизвестными. Программа должна реализоваваться матричным способом. Может кто нибудь уже делал что нибудь подобное? пожалуйста помогите! или может быть у кого нибудь есть хотя бы алгоритм?
mashulya вне форума Ответить с цитированием
Старый 22.11.2008, 00:30   #2
StarWorm
Форумчанин
 
Регистрация: 17.11.2008
Сообщений: 233
По умолчанию

Приведи пример... А то так сходу сложно во все это вникнуть!!!
StarWorm вне форума Ответить с цитированием
Старый 22.11.2008, 02:16   #3
Min
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 239
По умолчанию

вобщем тут методом Гаусса проще всего...... гдето у меня уже готовый исходничек валялся.... как найду-скину
Надо бы избавиться от привычки ставить многоточие.....
Min вне форума Ответить с цитированием
Старый 22.11.2008, 22:35   #4
mashulya
 
Регистрация: 21.11.2008
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Min Посмотреть сообщение
вобщем тут методом Гаусса проще всего...... гдето у меня уже готовый исходничек валялся.... как найду-скину
Это было бы очень здорово! Я буду очень благодарна!!!
Хотя это как я представляю не совсем то что мне надо...

Последний раз редактировалось mashulya; 23.11.2008 в 11:40.
mashulya вне форума Ответить с цитированием
Старый 23.11.2008, 11:36   #5
mashulya
 
Регистрация: 21.11.2008
Сообщений: 5
По умолчанию

Цитата:
Сообщение от StarWorm Посмотреть сообщение
Приведи пример... А то так сходу сложно во все это вникнуть!!!


Дана система неравенств линейного вида с четырьма неизвестными.
{a1x1+b1x2+c1x3+d1x4<f
a2x1+b2x2+c2x3+d2x4<f
a3x1+b3x2+c3x3+c3x4<f
L=x2+bx4( целевая функция)
}
Вот и надо написать программкукоторая будет это решать матричным способом.
mashulya вне форума Ответить с цитированием
Старый 07.12.2008, 20:18   #6
Min
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 239
По умолчанию

ну вот метод Гаусса...... только теперь уже неравенства???
метод Гаусса считает именно систему линейных уравнений, а для неравенств нужен другой способ.....
коррекцию на линейную зависимость и прочую лабуду я не делал:
Код:
#include <stdio.h>
#include <conio.h>

int a[100][100];
int N;
float x[100];

void swapFunc(int i1,int i2)
{
     for(int i=0;i<=N;i++)
     {
      int temp=0;
      temp=a[i][i1];
      a[i][i1]=a[i][i2];
      a[i][i2]=temp;
     }
}

int FindNotNull(int w)
{
    for(int i=w;i<N;i++)
     if(a[w][i]!=0)
      return i;
    return -1;
}

void setOther(int MainI,int w)
{
    for(int i=MainI+1;i<=N;i++)
     a[i][w]=a[i][w]*a[MainI][MainI]-a[MainI][w]*a[i][MainI];
    a[MainI][w]=0;
}

void FindAllAndSet(int w)
{
    for(int i=w+1;i<N;i++)
     if(a[w][i]!=0)
      setOther(w,i);
}

void Accum()
{
    x[N-1]=(float)a[N][N-1]/a[N-1][N-1];
    for(int i=N-2;i>=0;i--)
    {
     float summ=0;
     for(int j=i+1;j<N;j++)
      summ+=a[j][i]*x[j];
     x[i]=(a[N][i]-summ)/a[i][i];
    }
}

int main()
{
    scanf("%d",&N);
    for(int i=0;i<N;i++)
     for(int j=0;j<=N;j++)
      scanf("%d",&a[j][i]);
    bool error=false;
    for(int i=0;(i<N)&!error;i++)
    {
     int q=FindNotNull(i);
     if (q==-1)
     {
      error=true;
      continue;
     }
     swapFunc(i,q);
     FindAllAndSet(i);
    }
    if(!error)
    {
     Accum();
     for(int i=0;i<N;i++)
      printf("%f ",x[i]);
    }
    else
    {
    printf("error!!!");
    }
     printf("\n");
     getch();
    return 0;
}
Надо бы избавиться от привычки ставить многоточие.....

Последний раз редактировалось Min; 07.12.2008 в 20:19. Причина: руки кривые))
Min вне форума Ответить с цитированием
Старый 07.12.2008, 20:27   #7
Min
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 239
По умолчанию

ваше последнее условие очень похоже на симплекс-метод, но только если найти нужно конкретно наибольшее или наименьшее значение целевой функции...... в вашем примере значением функции будет являться промежуток значений, т.е. множество.... вы уверены, што найти нужно именно значение целевой функции, а не её наибольшее/наименьшее значение?
Надо бы избавиться от привычки ставить многоточие.....
Min вне форума Ответить с цитированием
Старый 07.12.2008, 22:15   #8
mashulya
 
Регистрация: 21.11.2008
Сообщений: 5
По умолчанию

Я уже не знаю... у меня препод не адекватный.... в общем мне нужно что то что решает задачу описанную выше... он сказал что это матричный метод... Я в ужасе...=(((
mashulya вне форума Ответить с цитированием
Старый 07.12.2008, 22:17   #9
mashulya
 
Регистрация: 21.11.2008
Сообщений: 5
По умолчанию

Спасибо за код. Наверно попробую загнать ему это...
mashulya вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Система линейных уравнений с тремя неизвестными, решение их матричным способом. svender Помощь студентам 8 30.05.2009 13:32
Решение нелинейных уравнений методом хорд, pascal Антонова Анна Помощь студентам 3 09.12.2007 19:24
Решение систем линейных неравенств методом Агмона-Моцкина. ballz Помощь студентам 1 26.04.2007 06:45