Хмельник Соломон Ицкович : другие произведения.

Решение системы алгебраических уравнений и неравенств

Самиздат: [Регистрация] [Найти] [Рейтинги] [Обсуждения] [Новинки] [Обзоры] [Помощь|Техвопросы]
Ссылки:
Школа кожевенного мастерства: сумки, ремни своими руками
 Ваша оценка:
  • Аннотация:
    В книге [1] описан (в частности) новый метод решения системы алгебраических уравнений и неравенств. Эту книгу можно скачать здесь, на СИ. В этой статье описывается программа для такого расчета в системе MATLAB. Размерность задачи ограничена только ресурсами компьютера. Открытые коды этой MATLAB-программы можно приобрести у автора на сайте http://mic34.com/bookrumatlab.htm, позиция 337. С предложениями о дополнительных разработках можно обратиться по адресу solik@netvision.net.il.

Хмельник С.И.

Решение системы алгебраических уравнений и неравенств

Новый метод и MATLAB-программа

  
  Содержание
  1. Введение
  2. Базовая задача
  3. Решение системы уравнений и неравенств
  4. Решение системы уравнений и неравенств
  5. Литература
  6. Программы
  
  1. Введение
  В книге [1] описан (в частности) метод решения перечисленных в заглавии задач. Здесь приводятся открытые коды MATLAB-программ для таких расчетов. Особенности этих программ заключатся в следующем.
  1. Основная матрица может быть сингулярной.
  2. Уравнения и неравенства могут быть несовместимы.
  3. Система уравнений и неравенств может быть недоопределенной или переопределенной.
  4. Решение с определенной невязкой находиться всегда (при исползовании стандартных средств MATLAB решение может вообще отсутствовать, например, если матрица сингулярна, не находятся активные неравенства, система неравенств недоопределена или переопределена).
  5. Применен итеративный метод, в котором отсутсвуют операции обращения матриц и деления.
  6. Алгоритм решения пригоден для параллельной обработки.
  7. Размерность задачи ограничена только ресурсами компьютера.
  С предложениями о дополнительных разработках можно обратиться по адресу solik@netvision.net.il.

0x01 graphic

0x01 graphic

0x01 graphic

  
  3. Решение системы уравнений
  Для этого в базой задаче (2.4) принимается R=0, T'=A, U=0, B=-C. При этом (2.4) принимает вид
   A*x-B=0,           (1)
   n1'*n1 = min.        (2)
  Система (1) может быть несовместимой, недоопределенной, переопределенной. Отыскивается такое решение, которое соответствует минимуму (2).
  
  М-функция для решения этой задачи имеет вид:
  function [x,eps1,k,n1,minx] = anySLAE2(A,B,r,eps,kmax)
  Входными аргументами здесь являются
  А - матрицы в (1),
  r - величина, определенная в (2.4),
  eps2-заданная величина относительной невязки для n2 в задаче (2.5), которая решается одновременно с данной задачей,
  eps2 - заданная величина относительной невязки,
  kmax - максимальное число итераций,
  Выходными величинами здесь являются
  x - неизвестный вектор в (1),
  eps1 - величина относительной невязки для n1,
  k - количество итераций,
  n1 - вектор невязок в уравнении (1),
  minx - значение минимума (2).
  
  М-функция для тестовых задач имеет вид:
  function test_anySLAE2()
  В тесте решаются различные варианты системы. Для проверки та же система решается средствами MATLAB. В тесте выполняется также
  function [m_x, m_eps1, m_n1, m_minx, tmatlab] = anySLAE2m(A,B)
  При этом вычислятся величины, аналогчные выходным величинам рассматриваемой функции anySLAE2. В тесте параметр mode устанавливает номер теста. Рассмотрим эти тесты.
  1. Хорошо определенная система малой размерности.
  2. Недоопределенная система малой размерности.
  3. Переопределенная система малой размерности.
  4. Переопределенная система для вычисления такого вектора x, относительно которого компоненты вектора B имеют минимальную дисперсию.
  5. Недоопределенная система большой размерности.
  6. Переопределенная система большой размерности.
  7. Плохоопределенная система малой размерности. В этом случае вычисление средствами MATLAB невозможно: выдается сообщение "Warning: Matrix is singular to working precision"
  
  4. Решение системы уравнений и неравенств
  Решаемая система имеет вид
  A*x-B>=0.        (1)
  Для этого в базой задаче (2.5) принимается R=0, C=0, T=A, B=U. Система (1) может быть несовместимой, недоопределенной, переопределенной. Отыскивается такое решение, которое соответствует минимуму задачи (2.5) или
   x'*x = min.        (2)
  
  М-функция для решения этой задачи имеет вид:
  function [k,x,er2K,n2eq,n2neq,minf] = anySLAE3(A,B,D,r,eps2,kmax)
  Входными аргументами здесь являются
  А, В - матрицы - см. (1),
  D - вектор указателей типа уравнения: если m-уравнение является равенством, то D(m)=0, а в противном случае D(m)=1,
  r - величина, определенная в (2.4),
  eps2-заданная величина относительной невязки для n2 в (1),
  kmax - максимальное число итераций,
  Выходными величинами здесь являются
  k - количество итераций,
  x - неизвестный вектор - см. (1),
  ep2K - достигнутая величина относительной невязки для n2,
  n2eq - вектор невязок в равенствах системы (1),
  n2neq - вектор невязок в неравенствах системы (1), которые по условию задачи могут иметь любую положительную величину, при этом n2=n2eq+n2neq,
  minx - значение минимума (2).
  
  М-функция для тестовых задач имеет вид:
  function testqw3 ()
  В тесте решаются различные варианты системы. Для проверки та же система в некоторых случаях решается средствами MATLAB. Параметр eq устанавливает номер способа такого решения. В тесте параметр mode устанавливает номер теста. Рассмотрим эти тесты.
  
  1. Хорошо определенная система малой размерности. Проверка выполняется по формуле y=A\B.
  2. Недоопределенная система малой размерности. Проверка выполняется по формуле y=A\B.
  3. Переопределенная система малой размерности. Проверка выполняется по формуле y=A\B.
  4. Хорошо определенная система равенств (A,B). Проверка выполняется по формуле y=A\B.
  5. Система неравенств (A,B), совпадающих в левой части с равенствами из п. 4. Эта система не решается средствами MATLAB как задача квадратичного программирования. Но выдается сообщение "No active inequalities"
  6. Система неравенств (A,B), совпадающих в левой части с равенствами из п. 4. Знаки равенства и неравенства могут устанавливаться пользователем в векторе D. Эта система не проверяется средствами MATLAB
  7. Недоопределенная система неравенств. При попытке решить ее средствами MATLAB как задачу квадратичного программирования выдается сообщение "A must have 2 column(s)"
  8. Переопределенная система неравенств. При попытке решить ее средствами MATLAB как задачу квадратичного программирования выдается сообщение "A must have 6 column(s)"
  9. Переопределенная система равенств и неравенств (в левой части такая же, как в п.8). Вектор D таков, что решение получается с большой невязкой в равенствах.
  10. Переопределенная система равенств и неравенств (в левой части такая же, как в п.8). Вектор D таков, что решение получается с большой невязкой в равенствах.
  
  5. Литература
  1. Хмельник С.И. Электрические цепи постоянного тока для моделирования и управления. Алгоритмы и аппаратура. Published by 'MiC' - Mathematics in Computer Comp., вторая редакция, printed in USA, Lulu Inc., ID 293359. Израиль-Россия, 2006, 177 c.
  
 Ваша оценка:

Связаться с программистом сайта.

Новые книги авторов СИ, вышедшие из печати:
О.Болдырева "Крадуш. Чужие души" М.Николаев "Вторжение на Землю"

Как попасть в этoт список

Кожевенное мастерство | Сайт "Художники" | Доска об'явлений "Книги"