Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 5.00
catinbox13
0 / 0 / 0
Регистрация: 22.12.2008
Сообщений: 4
#1

программа по двойственному симплекс методу - C++

29.12.2008, 03:20. Просмотров 1234. Ответов 0
Метки нет (Все метки)

здравствуйте! очень нужна помощ! написала программу, но выдает неверный ответ, знаю в каком месте неправильно, но как должно быть никак не додумаюсь, помогите пожалуйста! вот код:
задача-найти оптимальную табдицу с помощью двойственного симплекс-метода, ошибка в функции min_J
Выбор включаемой переменной производится следующим образом. Вычисляются отношения коэффициентов z-строки к отрицательным коэффициентам исключаемой строки. В задаче min выбирается минимальное отношение. При наличии альтернатив выбор делается произвольно. Если в отношениях все знаменатели положительные или нулевые, задача не имеет допустимых решений.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
#include <windows.h> 
 
using namespace std;
 
const int str=3;
const int stb=5;
float mas[str][stb];
float R_mas[str][stb];
bool flag=false;
int minI, minJ=1;
 
//Функции
int min_J(float temp[str][stb], int minI)
{
int num;
    if  ((temp[str-1][minJ]/temp[str-1][1]) <= (temp[str][minJ]/temp[str][1]) )
        num=1;
    else
        num=0;
    return num;
}//??
 
int min_I(float temp[str][stb])
{
    int min[2]={};
    for(int i=0; i<str; i++)
    if (temp[i][stb-1]<min[0])
    {
        min[0]=int(temp[0][i]);
        min[1]=i;
    }
    return min[1];
}
 
 
void main()
{
//Чтение из файла
    FILE *myFile;
    myFile=fopen("3.txt", "rt"); 
    char temp[4];
    for (int i=0; i<str; i++)
        for (int j=0; j<stb; j++)
        {
            fgets(temp, 4, myFile);
            mas[i][j]=float(atoi(temp));
        }
 
//отрицательные 1,2 и 5 столбцы
for (int i=0; i<str; i++)
    for (int j=0; j<stb; j++)
        if ((j != 2) && (j != 3) )
            mas[i][j]*=-1;
 
//Вывод 
    for (int i=0; i<str; i++)
    {
        cout<<endl;
        for (int j=0; j<stb; j++)
            cout<<mas[i][j]<<"\t";
    }
 
    cout<<endl<<endl;
    int min[2]={};
    for (int j=1; j<stb; j++)
        
        
 
    while(!flag)
            
//Поиск отрицательных чисел
        for (int j=1; j<stb; j++)
            for(int i=0; i<stb-1;i++)
        {           
            if(mas[i][j]<0)
            {
                flag=true; //флаг
                
//Поиск минимальной строки              
                minI=min_I(mas);
 
//Поиск минимального столбца
                minJ=min_J(mas, minI);
 
//Основные вычисления
                for(int i=0; i<stb;i++)
                    R_mas[minI][i]=mas[minI][i]/mas[minI][minJ];        
                for (int i=0; i<str;i++)
                    for(int j=0; j<stb;j++)
                        if (i != minI)
                            R_mas[i][j]=mas[i][j]-(R_mas[minI][j] * mas[i][minJ]);
            }
        }
       
            
 
//Вывод массива
        for (int i=0; i<str; i++)
        {
            for (int j=0; j<stb; j++)
        cout<<R_mas[i][j]<<"\t";
        cout<<endl;
            
        }
 
    }
помогите пожалуйста срочно! очень надо!

Добавлено через 2 часа 19 минут 23 секунды
а! уже не надо, уже сама все сделала)))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.12.2008, 03:20
Я подобрал для вас темы с готовыми решениями и ответами на вопрос программа по двойственному симплекс методу (C++):

Программа по методу "черного ящика" - C++
Нужна помощь в написании программы по методу &quot;чёрного ящика&quot;. Приложение получает в качестве параметров три целых числа, которые...

Программа по Симплекс методу - Pascal
Привет всем, мне нужна помощь от знающих людей. Я нашел программу но она не работает как нужно. Где мну достать файлы KURS97.DAT и...

Информация о существующих пакетах по линейному программированию (минмакс по симплекс методу) - VBA
Интерисуюсь информацией о существующих пакетах по линейному программированию (минмакс по симплекс методу). Желательно с открытым...

Программа для нахождения X-ов по методу Гаусса - Delphi
Программа находит иксы по методу гаусса. Глюк заключается в следующем: Переменные m и n являются глобальными переменными и их величина...

Программа обучения методу слепого набора - C++ Qt
Дописываю программу для обучения методу слепого набора. На Windows есть хорошие программы &quot;Соло&quot;, &quot;stamina&quot; на Linux подобные программы...

Программа для расчета по методу главных компонент - Matlab
function = pcanipals( X, numberPC ) %UNTITLED5 Summary of this function goes here % Detailed explanation goes here = size(X); P=;...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.12.2008, 03:20
Привет! Вот еще темы с ответами:

Найти данные по методу половинного деления, интерполяции и методу Симпсона - C#
Помогите найти данные по методу половинного деления, интерполяции и методу Симпсона.

Дифференциальное уравнение по методу Бернулли или методу Лагранжа - Дифференциальные уравнения
(2x-y^2)y'=2y Вообще не могу решить, получаются трехэтажные дроби( Подскажите кто-нибудь, как решать?

Программа вычисления определенного интеграла функции по методу Симпсона (+ трапеция) - Pascal ABC
1) Ввести параметры, определяющие функцию: - коэффициент при x в числителе; - степень, в которую необходимо возвести x; - основание...

Интегрирование по методу Симпсона и методу трапеций - VBA
По учебе написала на excel + VBA программу, считающую интеграл по методу Симпсона и методу трапеций. Все считает хорошо. Те функции,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru