Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

2024

.pdf
Скачиваний:
3
Добавлен:
15.11.2022
Размер:
1.09 Mб
Скачать

Рис. 29. Реализация метода простой итерации в Mathcad

Перед началом решения исходную систему уравнений привели к виду, удобному для итераций (матрицы и ), затем вычислили нормы матрицы для проверки условия сходимости метода простой итерации, указали число итераций, которые необходимо выполнить (переменная n), задали начальное приближение X 0 , записали формулу пересчета неизвестных в матричном виде и вывели последний столбец, в котором хранится полученное решение.

3. ЛАБОРАТОРНОЕ ЗАДАНИЕ

Задание 1. Решить системы линейных уравнений из табл. 15 методом Гаусса и простой итерации. Обосновать выбор метода для каждой системы.

91

Таблица 15

Вариант

Система уравнений №1

Система уравнений №2

 

4x1

2x2

3x3

4

10x1 2x2 3x3 4

1

 

5x2 4x3 2

 

 

 

 

 

x1

x1 9x2 4x3 2

 

 

 

5x2

6x3 5

 

 

5

 

3x1

3x1 5x2 8x3

 

8x1 2x2 3x3 9

10x1 2x2 3x3

5

2

 

 

7x2

4x3

5

 

 

 

 

2

5x1

0,1x1 9x2 0,8x3

 

 

 

 

 

 

 

 

 

 

 

 

1x1 2x2 6x3 5

x1 5x2 7x3 9

 

 

x1 4x2 7x3 3

9x1 2x2 3x3 1

3

 

 

 

 

 

 

 

2

4x1 7x2 2x3 2

4x1 7x2 x3

 

 

2x2 x3 1

 

 

3

 

7x1

x1 5x2 8x3

 

3x1 6x2 9x3 8

7x1 2x2 2x3 7

4

 

7x2

x3 7

 

 

 

 

 

6x1

4x1 6x2 x3 20

 

 

x2 5x3 10

 

8x3

4

 

9x1

2x1 5x2

 

9x1 10x2

7x3

8

8x1 2x2 2x3

7

5

 

 

4x2

5x3

6

 

 

 

 

9

10x1

0,8x1 10x2 x3

 

 

5x2

9x3 1

 

 

 

3

 

7x1

2x1 5x2 6x3

 

8x1 2x2

3x3

9

12x1 2x2 0,4x3

5

6

 

 

2x2

9x3

4

 

x3

7

7x1

0,8x1 10x2

 

 

 

7x2

3x3

6

 

 

 

3

 

3x1

2x1 1,7x2 8x3

 

2x1 5x2

x3 2

9x1 2x2 7x3

4,3

7

 

 

2x2

6x3 5

 

 

 

 

7

9x1

0,4x1 7,8x2 x3

 

 

 

 

 

1

 

8x3

3,4

 

10x1 4x2 8x3

2x1 1,7x2

 

10x1 x2

x3 3

8,1x1 2x2

4,1x3 6

8

 

 

2x2

6x3

8

 

 

 

1,7

7x1

2x1 6x2 4x3

 

 

 

4x2

4x3

5

 

 

 

 

 

 

8x1

2x1 1x2 11x3 8

Задание 2. Проверить решение систем уравнений с помощью встроенных средств Mathcad.

92

Задание 3. Реализовать в Mathcad методы решения задач линейной алгебры из табл. 16.

 

 

 

Таблица 16

 

 

 

 

 

Название метода

Варианты

Варианты

1, 3, 5, 7

2, 4, 6, 8

 

 

 

 

1

Метод обратной матрицы

+

+

 

2

Метод Крамера

+

+

 

3

Метод Гаусса для построения

+

 

 

обратной матрицы

 

 

4

Метод Холецкого

 

+

 

4.УКАЗАНИЯ ПО ОФОРМЛЕНИЮ ОТЧЕТА

Отчет должен содержать:

- наименование и цель работы; - краткие теоретические сведения;

- задание на лабораторную работу; - результаты выполнения лабораторной работы.

5.КОНТРОЛЬНЫЕ ВОПРОСЫ

1.Какие встроенные средства для решения систем линейных уравнений есть Mathcad?

2.Как найти решение системы линейных уравнений с помощью вычислительного блока Given/Find?

3.Какие функции Mathcad используются для слияния и разбиения матриц?

4.Какие встроенные функции Mathcad предназначены для решения задач линейной алгебры?

93

Лабораторная работа № 3 РЕШЕНИЕ НЕЛИНЕЙНЫХ УРАВНЕНИЙ

СПОМОЩЬЮ MATHCAD

1.ОБЩИЕ УКАЗАНИЯ ПО ВЫПОЛНЕНИЮ ЛАБОРАТОРНОЙ РАБОТЫ

1.1.Цель работы

Изучение основных методов решения нелинейных уравнений; получение практических навыков написания функций на встроенном в Mathcad языке программирования.

1.2. Используемое оборудование и программное обеспечение

Для выполнения лабораторной работы требуется ПЭВМ типа IBM PC с установленной ОС Windows XP и выше, математический пакет Mathcad 14 и выше.

2. МЕТОДИЧЕСКИЕ УКАЗАНИЯ ПО ВЫПОЛНЕНИЮ ЛАБОРАТОРНОЙ РАБОТЫ

2.1. Встроенные средства Mathcad для решения нелинейных уравнений

Для решения нелинейных уравнений вида F(x) 0 в Mathcad есть следующие средства:

1)функция root();

2)вычислительный блок Given/Find.

Функция root() имеет следующий формат вызова: root(f(x), x, a, b)

где f(x) - уравнение, которое необходимо решить, x – искомая переменная, a, b – необязательные параметры, задающие границы интервала поиска; если интервал не указывается, то перед вызовом функции root() нужно задать начальное значение переменной x.

Пример использования функции root() с различными наборами параметров показан на рис. 30. В первом случае

94

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

Рис. 30. Решение нелинейного уравнения с помощью функции root()

При задании интервала поиска внутри функции root() необходимо помнить о двух ее особенностях. Во-первых, внутри интервала не должно находиться более одного корня. иначе будет найдет одни из них, заранее неизвестно, какой именно. Во-вторых, значения исходной функции в граничных точках диапазона должны иметь разные знаки, иначе будет выдано сообщение об ошибке.

Пример использования вычислительного блока Given/Find для решения нелинейного уравнения показан на рис. 31.

Рис. 31. Решение нелинейного уравнения с помощью вычислительного блока Given/Find

95

И функция root(), и вычислительный блок Given/Find предназначены для нахождения только одного корня уравнения. Для поиска остальных корней необходимо повторное решение уравнения с другими начальными значениями неизвестных.

2.2. Программирование в Mathcad

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

Рис. 32. Панель инструментов Программирование

Создание функций в Mathcad имеет следующие особенности:

1)ввод всех операторов возможет только с панели Программирование (а не набором с клавиатуры);

2)вместо знака присваивания (:=) внутри функции используется оператор локального определения ;

3)вместо знака равенства (=) в условиях используется соответствующий логический оператор с панели Булева алгебра;

4)функция возвращает результат выполнения последнего оператора; при необходимости в последней строке

96

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

Синтаксис используемых в Mathcad операторов программирования и их описание приведены в табл. 17.

Таблица 17

Формат

Название и описание оператора программирования

оператора

Оператор Add Line добавляет новую строку

-

программы; место добавления строки зависит от положения указателя; изменить положение указателя можно с помощью клавиши Пробел

Локальное присваивание – вычисляет выражение y и присваивает его значение локальной переменной x

Операторы if и otherwise – если условие x верно, то выполняется оператор y, иначе выполняется z; вызов otherwise после if необязателен; перед otherwise может быть несколько операторов if, в этом случае otherwise выполнится, если все предыдущие условия неверны

Цикл for – выполняет оператор z для каждого значения x из диапазона y

Цикл while – выполняет оператор y до тех пор, пока верно условие x; возвращает значение, вычисленное в цикле на последней итерации

Оператор break – прерывает выполнение цикла и возвращает последнее вычисленное значение

Оператор continue – пропускает оставшуюся часть тела цикла и переходит к выполнению следующей итерации

Оператор return – прерывает выполнение функции и возвращает значение x

Оператор on error - если выполнение оператора y приводит к возникновению ошибки, то возвращает значение x, иначе возвращает y; если нужно, чтобы функция выдавала стандартное сообщение об ошибке при каком-либо условии, то можно вместо оператора on error использовать функцию error(s), где s – строка сообщения

Пример функции, реализующей метод половинного деления для решения нелинейного уравнения, приведен на рис. 33.

97

Рис. 33. Функция для решения нелинейного уравнения методом половинного деления

У функции HD() четыре аргумента: функция, определяющая уравнение; левая и правая границы диапазона, на котором ведется поиск корня, и точность вычисления корня уравнения.

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

98

2.3. Определение времени работы алгоритма

При сравнении различных алгоритмов важным параметром является время, затрачиваемое на поиск решения. В Mathcad для оценки времени работы алгоритма может использоваться функция time(x), возвращающая текущее системное время, где х – произвольный параметр, не влияющий на работу функции.

Для запуска счетчиков времени необходимо подготовить документ с вычислениями и выполнить команду Инструменты / Вычислить / Пересчитать документ. Пример определения времени вычислений с помощью функции time() приведен на рис. 34.

Рис. 34. Пример использования функции time()

3. ЛАБОРАТОРНОЕ ЗАДАНИЕ

Задание 1. Решить нелинейное уравнение из табл. 18: а) с помощью графика определить отрезок,

содержащий корень уравнения; б) найти корень уравнения с помощью функции,

реализующей метод половинного деления;

в) проверить решение с помощью функции root() и

блока Given/Find.

99

Таблица 18

Вариант

Уравнение

1

ex 1 x3 x

 

1

 

2

x

 

 

3 sin(3.6x)

 

 

3arccos x 1 0.3x3

40.25x3 x 2

 

 

1 x

2

 

 

 

5

 

 

 

x

 

 

 

arccos

 

2

 

 

 

 

1 x

 

2

 

 

 

 

 

63x 4ln x 5

7x4 2x3 x2 12x 5

8x4 14x2 40x 75

Задание 2. На встроенном языке программирования написать функции для решения нелинейного уравнения методами хорд и касательных.

Задание 3. Сравнить все методы решения нелинейного уравнения по времени вычислений.

4.УКАЗАНИЯ ПО ОФОРМЛЕНИЮ ОТЧЕТА

Отчет должен содержать:

- наименование и цель работы; - краткие теоретические сведения;

- задание на лабораторную работу; - результаты выполнения лабораторной работы.

5.КОНТРОЛЬНЫЕ ВОПРОСЫ

1.Какие встроенные функции для решения нелинейных уравнений есть в Mathcad?

2.Какие элементы программирования доступны в

Mathcad?

100

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