Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ChM_ekzamen_Vse_otvety_Meyd_bay_Belsky (1).docx
Скачиваний:
12
Добавлен:
01.05.2025
Размер:
7.8 Mб
Скачать
  1. Решить в пакете matlab уравнение с заданной точностью при заданном начальном приближении с использованием функции fzero.

При обращении к fzero возможно указать: либо начальное приближение к корню; либо отрезок, на котором исследуемая функция принимает значения разных знаков.

Если задано начальное приближение, то fzero начинает поиск отрезка, содержащего корень, т.е. такого, на границах которого исследуемая функция меняет знак. Затем начинаем операцию Поиск в функции fzero интервала, содержащего корень. Когда отрезок найден, то начинает работу алгоритм уточнения корня, основанный на нескольких методах численного решения уравнений. Если же с самого начала в fzero был задан отрезок, на границах которого функция меняет знак, то этот алгоритм по уточнению корня сразу начинает работу.

Если функция fzero вызвана с начальным приближением к корню

fzero(fun, x0)

а не с отрезком, на границах которого происходит смена знака исследуемой функции, то происходит поиск такого отрезка с целью отделения корня. Алгоритм отделения корня в функции fzero достаточно простой.

Сначала выбирается шаг dx. Далее вычисляется значение исследуемой функции в точке a=x0 –dx и сравнивается со значением исследуемой функции в точке . Если и разных знаков, то корень отделен, а если знаки совпадают, то происходит расширение промежутка вправо от точка до и сравниваются знаки функции в точках a и b. Если они различны, то корень отделен, а если нет, то в цикле происходит последовательное увеличение шага в √2 раз и расширение промежутка влево, а затем и вправо от точки x0 с проверкой знаков функции на границах. Как только знаки станут различными, отделение корня прекращается и начинает работать алгоритм по его уточнению.

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

  1. Дано уравнение . Показать, сходится или нет итерационный процесс на заданном отрезке.

Также как и в случае уравнения с одним неизвестным, заменяют нелинейную систему эквивалентной системой вида ,

выбирают некоторое начальное приближение и дальнейшие приближения ищут по формуле

или в координатной форме . (2.15)

Вычисления продолжают до тех пор, пока по всем координатам не будет выполнено условие

Итерационный процесс сходится, если выполняется одно из следующих условий [2]:

(2.17), где .

Т.е. итерационный процесс сходится, если модуль диагонального элемента больше суммы модуля оставшихся элементов строки. Если данное условие не выполняется, необходимо соответствующим образом преобразовать СЛАУ. Это можно сделать, выполнив эквивалентные преобразования системы:

  • перестановка строк;

  • линейная комбинация строк.

Алгоритм состоит из следующих основных блоков.

1. Ввод вектора начальных приближений , задание параметра сходимости и точности вычислений .

2. Установка флага события flag = 1 – решения найдены с требуемой точностью по всем координатам.

Вычисление значений переменных на очередном шаге.

4. Организация цикла по проверке условия (2.16) достижения требуемой точности вычислений по всем координатам, сброс флага события (flag = 0) в случае его невыполнения хотя бы по одной координате, формирование вектора начальных приближений для следующей итерации .

5. Проверка условия нахождения решений (flag = 1) и возвращение к п.2. в случае его невыполнения.

6. Вывод результатов.

  1. Дана система линейных алгебраических уравнений AX = B. Решить систему, используя средства MATLAB (не менее четырех способов решения).

СЛАУ в матричной форме записывается в виде

AX = B, (1)

где

; ; .

В скалярной форме записи

.

Система (1) имеет единственное решение, если .

Систему уравнений (1) в MATLAB можно решить различными методами:

Для этого применяются следующие операторы:

/

- правое деление;

 

 

\

- левое деление;

 

 

А - 1

- возведение в степень –1;

 

 

inv(A)

- обращение матрицы А.

 Выражения Х=В/A,Х=В* (А^ - 1),Х=В* inv(A),Х=A\В

дают решения ряда систем линейных уравнений АХ = В, где А – матрица размером m*n,

В – матрица размером n*к.

Обращение матриц – одна из наиболее распространенных задач.

Эту процедуру выполняет функция inv(A), которая вычисляет элементы обратной матрицы для исходной квадратной матрицы A. Выдается предупреждающее сообщение, если матрица х близка к вырожденной.

Пример:

Текст М-файла, левое деление:

a=[a11 a12 a13 a14;

a21 a22 a23 a24;

a31 a32 a33 a34;

a41 a42 a43 a44];

b=[b1; b2; b3; b4];

X1=a\b

Полученное решение:

X1 =

c

d

e

f

Текст М-файла, правое деление:

a=[a11 a12 a13 a14;

a21 a22 a23 a24;

a31 a32 a33 a34;

a41 a42 a43 a44];

a1=a'

b=[b1; b2; b3; b4];

X2 = b/a1

Полученное решение:

X2 =

c d e f

Текст М-файла, возведение в степень –1;

a=[a11 a12 a13 a14;

a21 a22 a23 a24;

a31 a32 a33 a34;

a41 a42 a43 a44];

a1=a'

b=[b1; b2; b3; b4];

X3 = b*(a^-1)'

Полученное решение:

X3 =

c d e f

Текст М-файла, обращение матрицы А:

a=[a11 a12 a13 a14;

a21 a22 a23 a24;

a31 a32 a33 a34;

a41 a42 a43 a44];

a1=a'

b=[b1; b2; b3; b4];

X4 = b*inv(a)'

Полученное решение:

X4=

c d e f

  1. Дан вектор. Вычислить m - норму вектора аналитически и в MATLAB (составить программу).

Даны вектор

Пусть дан вектор:

X=[1 2 3 4];

Вычислим m-норму вектора аналитически:

max-норма, или m – норма вектора:

В Mathlab в Command Window пишем:

X=[1 2 3 4];

mn=norm(X, inf)

Получим:

mn=4

21.Дан вектор. Вычислить l - норму вектора аналитически и в MATLAB (составить программу).

Даны вектор

Пусть дан вектор:

X=[1 2 3 4];

Вычислим l-норму вектора аналитически:

В Mathlab в Command Window пишем:

A=[1 2 3 4];

ml=norm(A, inf)

Получим:

ml=10

22.Дана матрица. Вычислить m - норму матрицы аналитически и используя встроенные в MATLAB средства.

Пусть дана матрица:

В ычислим m-норму данной матрицы аналитически:

max-норма, или m – норма

В Mathlab в Command Window пишем:

A=[1 2 3; 4 5 6; 7 8 9];

mn=norm(A, inf)

Получим:

mn=24

23.Дана матрица. Вычислить l - норму норму матрицы аналитически и используя встроенные в MATLAB средства.

Пусть дана матрица:

Вычислим l-норму данной матрицы аналитически:

В Mathlab в Command Window пишем:

A=[1 2 3; 4 5 6; 7 8 9];

ml=norm(A, 1)

Получим:

ml=18

  1. Дана система линейных алгебраических уравнений . Проверить, что итерационный процесс сходится для m –нормы. Определить условие окончания итерационного процесса.

Пусть дано уравнение (1)

Заменим его равносильным уравнением

(2)

Здесь

Вычислительная формула метода простых итераций:

(3)

Если последовательность имеет предел то этот предел является решением системы

Теорема. Если то система уравнений (2) имеет единственное решение и итерационный процесс (3) сходится к решению независимо от начального приближения.

Критерий окончания итерационного процесса:

Здесь e - заданная точность вычислений. В качестве решения берется величина Xn.

  1. Дана система линейных алгебраических уравнений AX = B. Привести ее к виду, пригодному для решения методом простых итераций . Проверить условие сходимости итерационного процесса для какой – либо нормы.

Любую невырожденную систему уравнений AX = B всегда можно заменить эквивалентной системой так, что условие сходимости будет выполняться.

Для этого умножим уравнение AX = B на матрицу D = А^-1 – D, где D -матрица с малыми по модулю элементами. Последовательно получим:

Обозначим

В результате получим систему вида

Очевидно, что если элементы матрицы D выбрать достаточно малыми по модулю, то можно обеспечить выполнение условия

Т.е. для сходимости итерационного процесса необходимо выполнение условия

  • или

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]