Объединенный Открытый Проект - Сайт для Настоящих Компьютерщиков

Объединенный Открытый Проект

Сайт для Настоящих Компьютерщиков

; Логин:
  Пароль:
Обычный
Безопасный
Запомнить пользователя



Зарегистрироваться
Забыли пароль?
 
 
 
Объединенный Открытый Проект »   Прочее »   Форум поддержки прочих разработок »   Спасибо за симплекс метод
RSS

Спасибо за симплекс метод

Текущий рейтинг темы: Нет

<<Назад  Вперед>>Печать
 
student
Новичок


Всего сообщений: 1
Рейтинг пользователя: 0





Дата регистрации на форуме:
29 апр. 2005

Очень удобно реализован алгоритм. Разобрался быстро, в терчении часа сделал визуализацию ввода данных. простой пример из двух переменных с заведомо известным
результаом решился правильно. Увеличил нагрузку ввел 19 переменных и 21 ограничение сначала все посчиталось, стал играть цифрами, на какихто вариантах происходит
зацикливание. Подскажите что делать? Эта реализация симплекс метода очень бы помогла мне в написании курсовой работы...

---
Требуется хакер со знанием компьтера.
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
4X_Pro
Откуда: Москва
Всего сообщений: 2994
Рейтинг пользователя: 79





Дата регистрации на форуме:
29 сен. 2001
У меня одно время возникало зацикливание из-за накопления сверхмалой положительной погрешности при расчете Delta (маргниналов) - порядка 10^-16 при операциях над дробными числами. Я это исправил, поставив ограничение, что в случае если маргинал больше нуля, но меньше 10^-12, его следует считать равным нулю, но не помню, выложил ли это исправление или нет.
Предлагаю проверить, есть ли в файле вот такая строка:


  MaxVal:=0.1e-12;  // это нужно для защиты от зацикливаний из-за потери точности


и если есть, попробовать там "поиграть" с этим значением (например, довести его до 0.1e-10).

---
Каждый человек всегда может найти, чем он может быть полезен окружающим. Проблема только в одном: слишком многие не хотят это искать.
4X_Pro
Руководитель Проекта
Настоящий Компьютерщик
4X_Pro
Откуда: Москва
Всего сообщений: 2994
Рейтинг пользователя: 79





Дата регистрации на форуме:
29 сен. 2001
Или вот еще один вариант, который может уменьшить накопление погрешности:
[code]
Delta[j]:=0;
for i:=0 to M-1 do Delta[j]:=Delta[j]+Cons[i].A[j]*C[Basis[i]];
Delta[j]:=Delta[j]-C[j];
[/code]
заменить на
[code]
Delta[j]:=-C[j];
for i:=0 to M-1 do Delta[j]:=Delta[j]+Cons[i].A[j]*C[Basis[i]];
[/code]

---
Каждый человек всегда может найти, чем он может быть полезен окружающим. Проблема только в одном: слишком многие не хотят это искать.
<<Назад  Вперед>>Печать
Объединенный Открытый Проект »   Прочее »   Форум поддержки прочих разработок »   Спасибо за симплекс метод
RSS
Быстрый переход в раздел:


Время выполнения скрипта: 0.0852. Количество выполненных запросов: 19, время выполнения запросов 0.0195