Сравнительная характеристика методик решения систем нелинейных алгебраических уравнений в средах MathCAD и MathLab

Автор работы: Пользователь скрыл имя, 08 Октября 2013 в 16:31, курсовая работа

Краткое описание


Актуальность рассматриваемой задачи: Высокая. Никак нельзя отрицать, что СНАУ применяются крайне часто для решения любых классов задач. Проблема решения СНАУ никогда не канет в лету. Системы уравнений это один из базисов математики. Также всем известно, что при описании сложных процессов никак нельзя пользоваться только одним уравнением, приходится использовать системы из уравнений. А значит крайне важно знать и уметь решать такие системы. Тем более важно знать различные методы и способы их решения. К счастью для этого существуют прекрасные программы, которые ускоряют само решение, а также пресекают даже саму возможность получения ошибки вычисления связанной с невнимательностью присущей человеку. Это замечательно, ведь освоив всего один такой метод, можно быстро решать целые классы задач. В данной работе рассмотрены две программы MathCAD и MathLab прекрасной фирмы Math Works, Inc. Эти программы позволяют решать СНАУ быстро и надежно, а средства для решения этих задач представлены ниже.

Содержание


Цель работы и Актуальность проблемы
Введение
Решение Систем Нелинейных Алгебраических уравнений в среде MathCAD
Одно уравнение с одним неизвестным
Корни полинома
Системы уравнений
О численных методах решения систем уравнений
Приближенное решение уравнений
Символьное решение уравнений
Решение Систем Нелинейных Алгебраических уравнений в среде MathLab
Описание функций для решения СНАУ
Алгоритм решения СНАУ
Сравнительная характеристика методик Систем Нелинейных уравнений в средах MathCAD и MathLab.
Список использованной литературы

Вложенные файлы: 1 файл

Федеральное государственное образовательное учреждение.doc

— 495.00 Кб (Скачать файл)

D(x1) r = ( a1 - x1 b1 ) r = 0;

. . . . . . . . . . . .                                        (2.16)

D(xk) r = ( ak - xk bk ) r = 0,

где матрицы ai и bi имеют размеры (N si /ri) * (N - p), когда ранг матрицы Ap*N равен p.

Обратимся к анализу алгоритма  решения СНАУ; основные блоки алгоритма  показаны на рис. 1 ниже.

Блок 1 выводит на экран параметры исходной СНАУ: матрицу системы, структуру вектора xA y, количество уравнений системы и максимальные степени переменных. В этом же блоке вычисляется нуль-пространства  
Q0x = Ker(Axy) и Q0y = Ker(Ayx) размера N x (N-p).

Блок 1. Описание исходной СНАУ. Построение системы спектральных задач.

1.1.

Параметры исходной СНАУ

1.2.

Построение пучков D(x), D(y)

 

Блок 2. Вычисление структуры Кронекера

2.1.

Характеристики структуры Кронекера

2.2.

Структура Кронекера

2.3

Возможные источники решений

 

Блок 3. Вычисление решений системы  спектральных задач (ССЗ)

3.1.

Формирование Mtx, Mvy

3.2.

Формирование вспомогательной  СНАУ (ВСНАУ)

3.3.

Редукция числа уравнений ВСНАУ

3.4.

Формирование Qolx, Dlx, Qoly, Dly

3.5.

Выделение регулярной части Df lx, Df ly

 

Блок 4. Формирование решений ССЗ 

4.1.

Вычисление спектра регулярных пучков

4.2.

Решения ССЗ

 

Блок 5. Определение допустимых пар  решений ССЗ

5.1.

Редукция к СНАУ от одной переменной

5.2.

Формирование допустимых конечных пар решений

 

Блок 6. Формирование решений СНАУ

6.1.

Подстановка допустимых решений в  исходную СНАУ  
и оценка точности

6.2.

Построение графика решений 


Рис. 1. Схема алгоритма решения СНАУ

Для вычисления Q0y по известной матрице Q0x используется матрица перестановок P, связывающая векторы y x и  
x y, а следовательно, и соответствующие матрицы Q0y = PQ0x. Используя структуру вектора x y, формируются пучки D(x) = ax - x bx и D(y) = = ay - y by.

Они позволяют составить систему уравнений

(ax - x bx ) Rx = 0;

(ay - y by) Ry = 0.                                                                   (2.17)

Базисным алгоритмом вычисления нуль-пространств  является алгоритм SVD-разложения прямоугольной  матрицы [10, 11].

Блок 2 вычисляет структуру Кронекера пучков D(x) и D(y). Структура Кронекера сингулярного пучка D(l ) = a - l  b определяется следующим образом [5-7]. Сингулярный пучок D(l ) размера m x n строго эквивалентен канонической форме Кронекера, если существуют постоянные невырожденные матрицы P   Сmx m и Q   Сnx n такие, что справедливо [6]

P(a - l b)Q = diag{Dr , Di , Df , Dl },                                          (2.18)

где Dr - сингулярная часть пучка, объединяющая блоки LtT размера t x  (t+1); D- регулярная часть пучка, соответствующая бесконечным собственным значениям; D - регулярная часть пучка, соответствующая конечным собственным значениям; Dl - сингулярная часть пучка, объединяющая блоки Ls размера (s+1) x s.

Для того чтобы охарактеризовать структуры  сингулярных блоков Dl и Dr , а также регулярных блоков Di и Df   введем в рассмотрение следующие мультииндексы

a l = { l0 ... ls ... lu };                                                                   (2.19а)

a r = { r0 ... rt ... rw};                                                          (2.19б)

a i = { ji1 ... jik ... jiv };                                                               (2.19в)

a f = { jf1 ... jfk ... jfv },                                                         (2.19г)

         т.е. - мультииндекс, указывающий число блоков типа L0...Ls...Lu, соответствующих левым полиномиальным решениям; a r - мультииндекс, указывающий число блоков типа L0T...LtT...LwT, соответствующих правым полиномиальным решениям; a - мультииндекс, указывающий число клеток Жордана Ji1...Jik...Jiv, соответствующих бесконечным собственным значениям; a - мультииндекс, указывающий число клеток Жордана Jf1...Jfk...Jfv, соответствующих конечным собственным значениям с номерами f = {0, 1, ..., p}; u,v,w - индексы, задающие максимальные размеры сингулярных блоков и клеток Жордана.

Следуя работе [6], введем мультииндекс

a = { a0 a1 ... af ... ap ai al ar },                                        (2.20)

который определяет структуру Кронекера  сингулярного пучка прямоугольных  матриц.

Число блоков Ls и LtT равно, соответственно

, ,                                                 (2.21а)

а число клеток Жордана, соответствующих  нулевым и бесконечным собственным  значениям, равно, соответственно

, ,                                                 (2.21б)

Следует отметить, что общее количество блоков разного типа, характеризующих  структуру пучка, может быть вычислено  на основе следующих соотношений

Nl = m - rank( [a b] );                                                            (2.22а)

Nr = n - rank( [aH bH] );                                                         (2.22б)

N0 = m - rank( a );                                                                 (2.22в)

Ni = m - rank( b ).                                                                 (2.22г)

Эти соотношения не определяют состава  блоков каждого типа, но дают общую  интегральную оценку числа клеток Жордана  с нулевыми (N0) и бесконечными собственными значениями (Ni ), общее количество правых (Nr) полиномиальных блоков LtT и левых (Nl) блоков Ls.

Выявление структуры мультииндексов ar (2.19б) и ai (2.19в) реализовано с помощью алгоритма RGSVD-разложения, который включен в ППП SNAE в виде М-функции sstruct на языке Matlab и обращение к которому имеет вид

[bk, ak, n(k), m(k)] = sstruct(b, a).                                        (2.23)

Входные параметры: a, b - матрицы пучка a - l b .

Выходные параметры: n(k), m(k) - информационные векторы, описывающие структуру мультииндексов ar и ai; ak, bk - матрицы, полученные после одного шага RGSVD-алгоритма.

На основе информационных векторов n(k), m(k) можно сформировать следующую  таблицу

Таблица

k

nk

mk

r0

r1

r2

r3

ji1

ji2

ji3

1

n1

m1

0

     

m1-n2

   

2

n2

m2

 

n2-m2

     

m2-n3

 

3

n3

m3

   

n3-m3

     

m3-n4

4

n4

0

     

n4

     

Она справедлива при следующих  условиях, практически всегда имеющих  место при анализе пучков, возникающих  при решении СНАУ от двух переменных

n1= m1= Ni + Nr .                                                                  (2.24)

Далее нетрудно убедиться, что выполняются  соотношения  
N= (n2+n3+n4) - (m2+m3), N= (m1+m2+m3) - (n2+n3+n4),  
что подтверждает условие (2.24). Из таблицы следует, что мультииндексы могут быть записаны следующим образом

ar = {r0, r1, r2, r3} = { 0 n2-m2 n3-m3 n4 };                                  (2.25а)

ai = { ji1, ji2, ji3 } = { m1-n2 m2-n3 m3-n4 }.                                   (2.25б)

Регулярная часть пучка Df = af - l bf определяется квадратными матрицами af и bf размера

size(Df) = [nf mf] = [n - m - ].                          (2.26)

Размер пучка n= mf   отличен от нуля, когда процедура завершается по одному из условий:  
либо n= 0, либо m= 0 и < m.

Результатами работы блока 2 являются регулярные пучки Df (x) и Df (y), мультииндексы ar(x) и ar(y), а также список возможных источников решений.

Блок 3 определяет решения системы спектральных задач, которые включают регулярные и полиномиальные решения.

Полиномиальное решение для  пучка D(l ) = a - l b определяется следующим образом [5]. Векторный полином вида

x(l ) = stl t + st-1l t-1 + ... +s1l + s0 ,                                             (2.27)

где st, st-1, ... s1, s0 - векторы размера n x 1, является правым полиномиальным решением пучка, если при любом l выполняется тождество (a - lb) x(l ) 0, из которого следует справедливость соотношений

bst = 0; bst-1 = ast; ... bs0 = as1; as0 = 0 .                             (2.28)

Рассматривая эту систему равенств как систему линейных однородных уравнений относительно элементов столбцов  
st, st-1 ... s1, s0 можно сформировать систему вида

                                              (2.29а)

Уравнение (2.29a) может быть записано в следующем виде

Mt St = 0 ,                                                                                  (2.29б)

где M- матрица коэффициентов уравнения (2.29а) размера [(t+2)*N*s1/r1 (t+1)*(N-p)]; St - ядро Ker(Mt) размера [(t+1)*(N-p) m ], m = dim Ker(Mt).

Введем в рассмотрение блочно транспонированную  матрицу  
Sl  = StB вида Sl =[St St-1...Sj...S1 S0], где size(Sj) = [N-p m ] для всех j от 1 до t.

Для полиномиальных решений должно выполняться условие r= ry, которое с учетом соотношений (2.27 - 2.29) можно записать в следующем виде

S lx lx X = S ly ly Y,                                                                (2.30)

где S lx=(Stx)B, Stx = Ker(Mtx), m t = dim Ker(Mtx), mx = m t/rt;

S ly=(Svy)B, Svy = Ker(Mvy), m v = dim Ker(Mvy), my = m v/rv;

lx=[xt ... 1]T, ly=[yv ... 1]T;

X - вектор размера [mx 1]; Y - вектор размера [my 1].

Число таких уравнений равно  произведению величин Nrx и Nr y, вычисленных по соотношению (2.22б).

Cоотношения (2.28 - 2.30) определяют следующую последовательность шагов алгоритма в блоке 3:

Шаг 3.1. Формирование матрицы Mtx и Mvy с учетом структуры мультииндексов arx и ar y по переменным x и y.

Шаг 3.2. Формирование вспомогательной СНАУ. Для этого вычисляются нуль-пространства  
St= Ker(Mtx) и Sv= Ker(Mvy) и по каждой переменной строится мультииндекс m , объединяющий размерности ядер  
m = dim Ker(Mt), зависящие от t

m = [ m 0 m 1 ... m t ... mw ],                                                                  (2.31)

который можно сопоставить с  мультииндексом ar (2.19б). Так например, структура мультииндекса дефектов матрицы Mt, соответствующая мультииндексу (2.25а) структуры правых полиномиальных решений, вычисленных в блоке 2, должна иметь вид

m = [ 0 m 1 m 2 m 3 ].                                                                       (2.31а)

Сформировать системы уравнений вида

                                                        (2.32)

где векторы и матрицы имеют  следующие размеры

size l x = [t+1 1]; size l y = [v+1 1];

size X = [mx 1]; size Y = [my 1];

size S lx = [N-p mx* (t+1)]; size S ly = [N-p my* (v+1)];

size[S lx -S ly ] = [N-p mx*(t+1)+my *(v+1)].

Шаг 3.3. Редукция числа уравнений. Все отобранные уравнения удовлетворяют системе (2.32), причем число уравнений этой системы может быть уменьшено, если выполняются некоторые условия. Системе (2.32) соответствует пучок Dl размера [mx* t mx* (t+1)+my* (v+1)-pl], где pl - число уравнений системы. Условие регулярности пучка определяется соотношением

pl* = mx + my* (v+1) .                                                                           (2.33)

Информация о работе Сравнительная характеристика методик решения систем нелинейных алгебраических уравнений в средах MathCAD и MathLab