Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

в примерах на EXCEL 2 страница



Существуют две величины, характеризующие степень отклонения полученного решения от точного. Пусть Хк - истинное решение системы, Хc - решение, полученное тем или иным методом на ЭВМ, тогда погрешность решения:
Е = Хк - Хc. Вторая величина - невязка, равная R = B - A*Xc. В практических расчетах контроль точности осуществляется с помощью невязки, хотя это и не совсем корректно.

2.1. Матричный метод.

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

Х = А-1*В.

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

1) получить матрицу А-1, обратную матрице А;

2) получить решение системы по формуле Хс = А-1*В;

3) вычислить новый вектор свободных членов Вс = А*Хс;

4) вычислить невязку R = B - Bc;

5) получить решение системы по формуле dXc = А-1*R;

6) сравнить все компоненты вектора dXc по модулю с заданной погрешностью Е: если все они меньше Е, то закончить вычисления, иначе повторить вычисления с п.2, где Хс = Xc + dXc.

Рассмотрим матричный метод решения системы с помощью EXCEL на примере.

Пример 2.1.

Решить систему уравнений

20,9x1+ 1,2x2 + 2,1x3+ 0,9x4 = 21,7

1,2x1+21,2x2 + 1,5x3+ 2,5x4 = 27,46

2,1x1+ 1,5x2 +19,8x3+ 1,3x4 = 28,76

0,9x1+ 2,5x2 + 1,3x3+32,1x4 = 49,72

EXCEL имеет следующие встроенные функции, реализующие матричные вычисления:

а) МОБР - обращение матрицы,

б) МУМНОЖ - умножение двух матриц,

в) МОПРЕД - вычисление определителя матрицы.

При использовании этих функций важно правильно и компактно расположить на рабочем листе блоки ячеек, соответствующие исходным и рабочим матрицам и вектор-столбцам. Откроем новый рабочий лист, щелкнув на выбранном Вами ярлычке. Отведем под матрицу А блок ячеек А3:D6. Для наглядности заключим его в черную рамку. Для этого выделим блок A3:D6, дадим команду меню Формат- Ячейки и в открывшемся диалоге выберем вкладку Рамка. Откроется новый диалог, в котором щелкнем по полю Рамка- Контур и выберем в поле Рамка- Стиль самую толстую ширину линии. Подтвердим свое решение, щелкнув на кнопке ОК. Выделим теперь блок A8:D11 под матрицу А-1 и также заключим его в черную рамку, проделав действия, аналогичные блоку матрицы А. Далее выделим блоки ячеек под вектор-столбцы (обведя их черной рамкой): блок F8:F11 - под вектор В, блок H8:H11 - под вектор Хс, получающийся в результате умножения А-1, блок H3:H6 - под вектор Вс, получающийся в результате умножения А*Хс, причем для наглядности выделим дополнительный блок F3:F6, куда скопируем компоненты вектора Хс из блока H8:H11. И наконец, занесем в ячейки Е4 и Е9 знак умножения *, а в ячейки G4 и G9 знак равенства =, затем, выделяя по очереди столбцы Е и G, дадим команду меню Формат- Столбец - Подгон ширины. Таким образом мы подготовили рабочий лист к решению нашей задачи.

Внесем исходные данные: числа матрицы А в ячейки блока A3:D6, а числа вектора свободных членов В - в ячейки блока F8:F11.

Начнем выполнение алгоритма с обращения матрицы А. Для этого выделим блок А8:D11, куда должен быть помещен результат операции. Этот блок окрасится в черный цвет, за исключением ячейки А8. Щелкнем по кнопке fx на панели Стандартная, осуществив вызов Мастера Функций. Откроется диалог, в котором из поля Категория функций выберем строку Мат. и тригонометрия, а из поля Имя функции - строку МОБР. Перейдем ко второму шагу диалога, щелкнув по кнопке Шаг>. Здесь в поле Массив надо набить с клавиатуры А3:D6, что соответствует блоку ячеек, занятому матрицей А. Щелкнув на кнопке Закончить, можно увидеть, что в блоке А8:D11 заполнена лишь ячейка А8. Для завершения операции обращения EXCEL требует выполнения еще двух действий. Сначала надо сделать активной строку формул, щелкнув по ней (в любом месте строки!) - курсор мыши примет при этом форму I. Проверкой правильности Ваших действий будет появление слева от строки формул четырех кнопок, в том числе с зеленой галочкой. После этого следует нажать на клавиатуре клавишу “Ctrl”, затем не отпуская ее - клавишу “Shift”, и не отпуская и ее - клавишу “Enter”, т.е. в результате должны быть нажаты все три клавиши одновременно! Вот теперь весь блок А8:D11 будет заполнен числами и можно выделить блок H8:H11, чтобы начать операцию умножения А-1.

Выделив этот блок, снова вызовите Мастер функций и в поле Имя функции - выбирайте функцию МУМНОЖ. Щелкнув по кнопке Шаг>, перейдем ко второму шагу диалога, где в поле Массив1 внесем адрес А8:D11, а в поле Массив2 - адрес F8:F11. Щелкнем по кнопке Закончить и обнаружим, что в блоке Н8:H11 заполнена лишь ячейка Н8. Активизируем строку формул (должна появиться зеленая галочка!) и по методике, описанной выше, нажмем одновременно три клавиши “Ctrl”-”Shift”-”Enter”. Результат умножения появится в блоке Н8:H11.

Для проверки точности полученного решения системы, проведем операцию вычисления Вс=А*Хс. С этой целью скопируем только числовые значения (а не формулы!) ячеек из блока H8:H11 в ячейки F3:F6. Сделать это надо следующим образом. Выделим блок H8:H11. Дадим команду меню Правка - Копировать. Выделим блок F3:F6. Дадим команду меню Правка - Специальная вставка. Откроется диалог, в котором в поле Вставить следует выбрать режим Значения. Подтвердим свое решение, щелкнув по кнопке ОК.

После этой операции заполнены числами блоки А3:D6 и F3:F6. Можно приступить к умножению матрицы А на вектор Хс. Для этого надо выделить блок Н3:H6, вызвать Мастер Функций и, действуя так же, как и при вычислении Хс=А-1, получить Вс. Как видно из таблицы, числовые значения векторов В и Вс совпадают, что говорит о хорошей точности вычислений, т.е. невязка в нашем примере равна нулю.

Подтвердим хорошую обусловленность матрицы А вычислением ее определителя. Для этого сделаем активной ячейку D13. С помощью Мастера Функций вызовем функцию МОПРЕД. В поле массив занесем адрес блока А3:D6. Щелкнув по кнопке Закончить, получим в ячейке D13 числовое значение определителя матрицы А. Как видно, оно значительно больше нуля, что говорит о хорошей обусловленности матрицы.

2.2. Метод приближенных вычислений.

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

Пусть надо решить систему

a11x1+a12x2+a13x3 = b1

a21x1+a22x2+a23x3 = b2

a31x1+a32x2+a33x3 = b3

Предположим, что диагональные элементы a11, a22, a33 отличны от нуля. В противном случае можно переставить уравнения. Выразим переменные из первого, второго и третьего уравнений соответственно. Тогда

x1 = [b1-(a12x2+a13x3)]/ a11

x2 = [b2-(a21x1+a23x3)]/ a22

x3 = [b3-(a31x1+a33x3)]/ a33

Зададим начальные приближения неизвестных

x1 = x1 (0)

x2 = x2 (0)

x3 = x3 (0)

Подставляя их в правую часть преобразованной системы, получим новое первое приближение

x1(1) = [b1-(a12x2(0)+a13x3(0))]/ a11

x2 (1)= [b2-(a21x1(0)+a23x3(0))]/ a22

x3 (1)= [b3-(a31x1(0)+a33x3(0))]/ a33

На этом заканчивается первая итерация. Далее, используя вычисленные значения x1(1), x2 (1) и x3 (1), можно провести следующую итерацию, чтобы найти x1(2),x2(2) и x3 (2), Итерационный процесс продолжается до тех пор, пока на какой-либо k-той итерации все значения xi(k) не станут близкими к xi(k-1). Близость этих значений можно характеризовать максимальной абсолютной величиной их разности D. Тогда при заданной допустимой погрешности Е критерий окончания итерационного процесса можно записать так

D = max [ABS(xi(k) - xi(k-1))] <=E для i=1,2,3.

Достаточные условия сходимости итерационного процесса

где j#i, i=1,2,3

При этом хотя бы для одного уравнения неравенство должно выполняться строго.

Пример 2.2.

Решим систему примера 2.1 методом Якоби.

Дано:

система уравнений

20,9x1+ 1,2x2 + 2,1x3+ 0,9x4 = 21,7

1,2x1+21,2x2 + 1,5x3+ 2,5x4 = 27,46

2,1x1+ 1,5x2 +19,8x3+ 1,3x4 = 28,76

0,9x1+ 2,5x2 + 1,3x3+32,1x4 = 49,72

начальные приближения

x1 (0)= b1=21,7

x2 (0)= b2=27,46

x3 (0)= b3=28,76

x4 (0)= b4=49,72

допустимая погрешность

Е = 1Е –5.

Очевидно, что достаточные условия сходимости метода выполняются. Откроем новый рабочий лист EXCEL. Внеся в ячейку А1 текст с названием метода, отведем вторую строку для заголовка таблицы

Ячейка Текст заголовка
А2 № итерации
В2 Х1
С2 Х2
D2 X3
E2 X4
F2 DX1
G2 DX2
H2 DX3
I2 DX4
J2 D

Следующая третья строка должна содержать информацию о нулевой итерации, т.е. в ячейку А3 занесем ноль, а в ячейки В3, С3, D3 и E3 – начальные приближения, равные значениям свободных членов уравнения.

Четвертая строка будет содержать формулы для вычисления первой итерации

Ячейка Формула
А4  
В4 =(21,7 – (1,2*C3+2.1*D3+0.9*E3))/20.9
С4 =(27.46-(1.2*B3+1.5*D3+2.5*E3))/21.2
D4 =(28.76-(2.1*B3+1.5*C3+1.3*E3))/19.8
E4 =(49.72-(0.9*B3+2.5*C3+1.3*D3))/32.1
F4 =ABS(B4-B3)
G4 =ABS(C4-C3)
H4 =ABS(D4-D3)
I4 =ABS(E4-E3)
J4 =МАКС(F4:I4)

Для проведения остальных итераций следует скопировать формулы ячеек B4:J4 в нижние строки с 5 по, например, 15. Если числовые значения в столбце J будут меньше Е, решение найдено. В противном случае следует продолжить копирование. Результат решения показан на рисунке.


2.3. Метод Гаусса – Зайделя.

Этот метод является модификацией метода приближенных вычислений и отличается от него формулами вычислений первого и последующего приближений.

Пусть надо решить систему

a11x1+a12x2+a13x3 = b1

a21x1+a22x2+a23x3 = b2

a31x1+a32x2+a33x3 = b3

Предположим, что диагональные элементы a11, a22, a33 отличны от нуля. В противном случае можно переставить уравнения. Выразим переменные из первого, второго и третьего уравнений соответственно. Тогда

x1 = [b1-(a12x2+a13x3)]/ a11

x2 = [b2-(a21x1+a23x3)]/ a22

x3 = [b3-(a31x1+a33x3)]/ a33

Зададим начальные приближения неизвестных

x1 = x1 (0)

x2 = x2 (0)

x3 = x3 (0)

Подставляя их в правую часть преобразованной системы, получим новое первое приближение

x1(1) = [b1-(a12x2(0)+a13x3(0))]/ a11

x2 (1)= [b2-(a21x1(1)+a23x3(0))]/ a22

x3 (1)= [b3-(a31x1(1)+a33x3(1))]/ a33

На этом заканчивается первая итерация. В отличии от метода Якоби, здесь использовались не только начальные приближения, но и уже вычисленные значения неизвестных на первой итерации. Далее, используя вычисленные значения x1(1), x2 (1) и x3 (1), можно провести следующую итерацию, чтобы найти x1(2),x2(2) и x3 (2), Итерационный процесс продолжается до тех пор, пока на какой-либо k-той итерации все значения xi(k) не станут близкими к xi(k-1). Близость этих значений можно характеризовать максимальной абсолютной величиной их разности D. Тогда при заданной допустимой погрешности Е критерий окончания итерационного процесса можно записать так

D = max [ABS(xi(k) - xi(k-1))] <=E для i=1,2,3.

Достаточные условия сходимости итерационного процесса

где j#i, i=1,2,3

При этом хотя бы для одного уравнения неравенство должно выполняться строго.

Пример 2.3.

Решим систему примера 2.1 методом Гаусса-Зайделя. При этом оформление листа EXCEL останется тем же. Изменятся лишь формулы в четвертой и последующих строках.


Ячейка Формула
А4  
В4 =(21,7 – (1,2*C3+2.1*D3+0.9*E3))/20.9
С4 =(27.46-(1.2*B4+1.5*D3+2.5*E3))/21.2
D4 =(28.76-(2.1*B4+1.5*C4+1.3*E3))/19.8
E4 =(49.72-(0.9*B4+2.5*C4+1.3*D4))/32.1
F4 =ABS(B4-B3)
G4 =ABS(C4-C3)
H4 =ABS(D4-D3)
I4 =ABS(E4-E3)
J4 =МАКС(F4:I4)

Для проведения остальных итераций следует скопировать формулы ячеек B4:J4 в нижние строки с 5 по, например, 15. Если числовые значения в столбце J будут меньше Е, решение найдено. В противном случае следует продолжить копирование. Результат решения показан на рисунке.

Как видно, в данном случае метод Гаусса – Зайделя оказался быстрее метода приближенных вычислений.

3. РЕШЕНИЕ СИСТЕМ НЕЛИНЕЙНЫХ УРАВНЕНИЙ.

Система нелинейных уравнений в общем виде записывается так

f1(x1,x2,...xn) = 0

f2(x1,x2,...xn) = 0

..............................

fn(x1,x2,...xn) = 0

где fi - нелинейные алгебраические функции. Для решения таких систем обычно используются итерационные методы. Ниже будут рассмотрены два метода - метод Ньютона и метод итераций. Успех применения этих методов во многом определяется выбором начальных приближений. Они должны быть достаточно близки к истинному значению. В противном случае итерационный процесс может не сойтись. Следует заметить, что в общем случае формализованных процедур выбора начальных приближений нет. Только в случае системы второго порядка можно предложить такую процедуру, сравнительно легко реализующуюся на EXCEL.

3.1. Выбор начальных приближений.

Пусть задана система нелинейных уравнений 2-го порядка

f1(x1,x2) = 0

f2(x1,x2) = 0

Зададим несколько значений x1 в диапазоне от хнач до хкон с шагом dx. Подставим сначала в f1(x1,x2) = 0 значение хнач. Тогда это уравнение становится одномерным, зависящим только от х2, и его можно решить подпрограммой EXCEL Подбор параметра (см. 2.4). То же самое можно проделать и для всех остальных значений х1. В результате мы будем иметь набор значений х1 и х2, для которых f1(x1,x2) = 0. Далее, для того же самого набора значений х1, используя подпрограмму Подбор параметра, найдем значения х2, для которых f2(x1,x2) = 0. Если теперь построить с помощью EXCEL графики изменения х2 в зависимости от х1 для двух этих случаев, то на пересечении этих графиков можно приближенно определить значения начальных приближений по х1 и х2. Если графики не пересекаются, следует задать новый диапазон изменения х1 и повторить процедуру сначала.

Пример 3.1.

Пусть надо решить систему

х13 + х23 - 6х1 + 3 = 0

х13 - х23 - 6х2 + 2 = 0

Подберем начальные приближения. Выберем хнач = 0, хкон = 1, dx = 0,2. Откроем новый рабочий лист EXCEL и занесем эти значения х1 в блок А4:A9. Выделим блок В4:В9 под значения х2 первой серии, для которой f1(x1,x2) = 0, и блок С4:С9 - под значения х2 второй серии, для которой f2(x1,x2) = 0. Блок D4:D9 отведем для функции f1(x1,x2), а блок Е4:Е9 - для функции f2(x1,x2). Сделаем текущей ячейку D4. В нее запишем формулу =А4^3+B4^3-6*A4+3. В ячейку Е4 запишем формулу =A4^3-C4^3-6*C4+2. Теперь выделим блок D4:E4 и скопируем эти формулы в блок ячеек D5:E9. Разумеется, адреса ячеек столбцов А и С в них будут автоматически изменены.

Перейдем к заполнению блока В4:В9. Снова сделаем текущей ячейку D4. Дадим команду меню Сервис- Подбор параметра. В открывшемся диалоге в поле Установить в ячейке должен быть указан адрес ячейки D4 в абсолютных адресах. В поле Значение следует занести ноль, а в поле Изменяя ячейку - занести адрес ячейки В4 (можно в относительных адресах). Щелкнем по кнопке ОК. Появится новый диалог Состояние подбора параметра. Если решение найдено, то, щелкнув по кнопке ОК, получим в ячейке B4 нужное нам числовое значение. Далее эту процедуру надо повторить для всех ячеек блока D4:D9. В результате будет заполнен блок В4:В9.

Аналогичным образом следует заполнить блок С4:С9, используя блок Е4:Е9.

Если блоки в столбцах В и С заполнены, можно построить диаграмму. Для этого необходимо выделить блок А3:Е9. Затем щелкнуть по кнопке Мастер Диаграмм на панели Стандартная. Передвигаясь по диалогу с помощью кнопки Шаг>, выполнить все 5 шагов построения диаграммы, причем на Шаге 2 из 5 выбрать тип XY-точечная, а на Шаге 3 из 5 - формат 6. Анализируя построенную диаграмму, можно сделать вывод о том, что в качестве начальных приближений можно выбрать х1 =0,5 и х2 = 0,5.

3.2 Метод Ньютона.

Пусть задана система нелинейных уравнений 2-го порядка

f1(x1,x2) = 0

f2(x1,x2) = 0

причем левые части уравнений известны в виде формул. Заданы также числовые значения начальных приближений х10 и х20, а также Е - точность вычислений значений корней. Функции должны быть дифференцируемы и формулы частных производных тоже должны быть известны.

Исходную систему можно записать в матричном виде

F(X) = 0,

где X - двумерный вектор- столбец с компонентами { x1,x2 }, а F - двумерный вектор- функция. Метод Ньютона - это метод последовательных приближений по формуле

Хi+1 = Xi - Pi,

где Pi = Ji-1*Fi,

i - номер итерации, (i = 0,1,2,...)

Ji-1 - матрица, обратная матрице J на i-той итерации,

J - матрица Якоби, т.е. матрица первых частных производных:

df1/dx1 df1/dx2

df2/dx1 df2/dx2.

Таким образом на каждой итерации вычисляется вектор Р, его компоненты сравниваются с заданной погрешностью Е по формуле

D=(p1i2+p2i2)(1/2),

причем когда D <= E, вычисления прекращаются и вектор Хi считается решением. В противном случае вычисляются новые значения Х и выполняется следующая итерация.

Достаточным условием сходимости метода служит неособенность матрицы Якоби, т.е. ее определитель (якобиан) не должен быть равным нулю на любой итерации.

Пример 3.2.

Решим систему из примера 3.1 методом Ньютона. Начальные приближения также возьмем из того же примера. Пусть Е = 0,00001. Выпишем формулы частных производных:

df1/dx1 = 3x12 - 6 df1/dx2 = 3x22

df2/dx1 = 3x12 df2/dx2 = -3x22 - 6.

Для решения задачи воспользуемся встроенными в EXCEL матричными функциями и процедурами так, как это сделано в разделе 2 настоящего пособия при решении систем линейных уравнений.

Проведем вычисления на том же рабочем листе, что и в примере 3.1. Необходимо отвести блоки ячеек для векторов Х,F и P, для матриц J и J-1, а также ячейки для вычисления якобиана и текущей величины погрешности D. Затем занести начальные приближения в блок Х и формулы в блоки J и F. Далее с помощью Мастера функций надо организовать вычисление якобиана функцией МОПРЕД, матрицы J-1 - функцией МОБР и вектора Р - функцией МУМНОЖ по аналогии с примером 2.1. В результате будет выполнена первая итерация метода Ньютона и по численному значению D следует принять решение о проведении дальнейших итераций.

Из таблицы ясно, что D>E и дальнейшие итерации необходимы. По формуле Ньютона для получения новых числовых значений вектора Х нужно из значений блока Х вычесть значения блока Р. Это можно выполнить таким образом. Выделим блок Р и дадим команду меню Правка- Копировать. Затем выделим блок Х и дадим команду меню Правка- Специальная вставка. В появившемся диалоге выберем в поле Вставить переключатель Значения, а в поле Операция - переключатель Вычесть и подтвердим свой выбор щелчком по кнопке ОК. В результате будет выполнена вторая итерация. Блок ячеек Р будет обрамлен бегущей пунктирной линией. Если значение D получится все еще большим чем Е, то следует снова выделить блок Х и повторить команду меню Правка- Специальная вставка с указанием тех же переключателей. Эти манипуляции можно проводить до тех пор, пока D не станет меньше, чем Е. Во время проведения итераций нужно визуально контролировать числовое значение якобиана для выполнения достаточных условий сходимости метода.

3.3. Метод итераций.

Пусть задана система нелинейных уравнений 2-го порядка

f1(x1,x2) = 0

f2(x1,x2) = 0

причем левые части уравнений известны в виде формул. Заданы также числовые значения начальных приближений х10 и х20, а также Е - точность вычислений значений корней.

Для применения итераций исходная система приводится к виду

х1 = g1(x1,x2)

x2 = g2(x1,x2),

где функции gi называются итерирующими. Алгоритм решения задается итерирующими формулами

х1i+1 = g1(x1i,x2i)

x2i+1 = g2(x1i,x2i),

где i -номер итерации, i = 0,1,2,... Для прекращения итераций вычисляются значения

p1i+1 = х1i+1 - x1i

p2i+1 = x2i+1 - x2i,

D=(p1i2+p2i2)(1/2),

и D сравнивается с Е. Итерации продолжаются до тех пор, пока не выполнится условие D<=E. Чтобы процесс вычислений сходился к этому условию, нужно выполнение достаточного условия сходимости:

çdg1/dx1ç + çdg1/dx2ç < 1,

çdg2/dx1ç + çdg2/dx2ç < 1.

Возможно также суммирование по столбцам.

Пример 3.3.

Решим систему из примера 3.1 методом итераций. Начальные приближения также возьмем из того же примера. Пусть Е = 0,00001. Выпишем формулы для итерирующих функций

g1(x1,x2) = (x13 + x23 + 3)/6

g2(x1,x2) = (x13 - x23 + 2)/6.

При изменении независимых переменных в пределах 0<= x1<=1 и 0<= x2<=1 достаточное условие сходимости выполняется, т.к.

çdg1/dx1ç + çdg1/dx2ç = (x12)/2 + (x22)/2,

çdg2/dx1ç + çdg2/dx2ç = (x12)/2 + ç-(x22)/2ç.

Проведем вычисления на том же рабочем листе, что и в примере 4.2.

Отведем столбец А, начиная с 26 строки под значения х1, столбец В под значения х2, столбец С - под g1, столбец D - под g2, следующие три столбца под р12 и D.





Дата публикования: 2014-11-18; Прочитано: 1546 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.029 с)...