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

Методические рекомендации к лабораторным_Матпакеты

.pdf
Скачиваний:
54
Добавлен:
01.02.2019
Размер:
3.08 Mб
Скачать

Scilab функцией:

integrate(fun, x, a, b),

где fun – функция, задающая

подынтегральное

выражение

в

символьном

виде;

x – переменная

интегрирования, так

же

задается в виде

символа;

a, b – пределы интегрирования, действительные числа; Задача из предыдущего пункта:

может быть решена следующим образом:

3.Интегрирование внешней функции

Наиболее универсальной командой интегрирования в Scilab является:

[I,err]=intg(a, b, name), где name – имя функции, задающей подынтегральное выражение (здесь функция может быть задана в виде набора дискретных точек (как таблица) или с помощью внешней функции); a и b – пределы интегрирования;

Теперь задача

может быть решена следующим образом:

Допустим необходимо решить задачу:

Численное решение интеграла показано ниже:

4.Приближенное дифференцирование

21

Идея численного дифференцирования заключается в том, что функцию y(x), заданную в равноотстоящих точках xi (i = 0, 1, . . . , n) отрезка [a, b] с помощью значений yi = f(xi), приближенно заменяют интерполяционным полиномом Ньютона, построенном для системы узлов x0, x1, . . . , xk (k меньше или равно n), и вычисляют производные y′ = f′(x), y′′ = f′′(x) и т. д.

На практике приближенное дифференцирование применяют в основном для функций, заданных в виде таблицы. В Scilab численное дифференцирование реализовано командой dy=diff(y,n), где y – значения функции y(x) в виде вектора вещественных чисел, n – порядок дифференцирования. Результат работы функции – вектор вещественных чисел dy, представляющий собой

разности порядка n и интерполяционного полинома Ньютона

.

Рассмотрим

работу

функции

на

примере:

Решение данной задачи:

5. Вычисление производной функции в точке. Приближенное вычисление частных производных.

Более универсальной командой дифференцирования является команда:

22

g=numdiff(fun,x), здесь fun – имя функции, задающей выражение для дифференцирования. Функция должна быть задана в виде y=fun(x), где x – переменная, по которой будет проводится дифференцирование. Результат

работы функции – матрица .

Рассмотрим пример:

Решение:

Частные производные

Задание таково:

Решение задачи:

23

6. Задания к работе

1. Вычислить интеграл одним из трех известных способов:

2. Для вариантов 1-7 вычислить значение производной функции в точке x=3, для вариантов 8-15 вычислить значение частных производных от функции нескольких переменных f(x,y,z) в точке (1,2,3):

24

ЛАБОРАТОРНАЯ РАБОТА №4

Тема: Нелинейные уравнения и системы в SciLab

Цель работы: Рассмотреть средства SciLab для нахождения корней нелинейных уравнений и систем.

1.Алгебраические уравнения

Любое уравнение P(x) = 0, где P(x) – это многочлен, отличный от нулевого, называется алгебраическим уравнением или полиномом. Всякое алгебраическое уравнение относительно x можно записать в виде a0xn+a1xn-1+· · ·+an-1x+an = 0, где a0 не равно 0, n > 1 и ai – коэффициенты алгебраического уравнения n–й степени.

Например, линейное уравнение это алгебраическое уравнение первой степени, квадратное – второй, кубическое – третьей и так далее.

Решение алгебраического уравнения в Scilab состоит из двух этапов. Необходимо задать полином P(x) с помощью функции poly, а затем найти его корни, применив функцию roots.

Итак, определение полиномов в Scilab осуществляет функция: poly(a, "x", [" F"]),

где a – это число или матрица чисел, x – символьная переменная, F – необязательная символьная переменная, определяющая способ задания полинома. Символьная переменная F может принимать только два значения – roots или coeff (соответственно r или c). Если F=c, то будет сформирован полином с коэффициентами, хранящимися в параметре a. Если же F=r, то значения параметра a воспринимаются функцией как корни, для которых необходимо рассчитать коэффициенты соответствующего полинома. По умолчанию F=r. Следующий пример отражает создание полинома p, имеющего в качестве корня тройку, и полинома f с коэффициентом 3:

25

Далее приведены примеры создания более сложных полиномов:

C полиномами возможно проведение символьных операций, таких как: сложение, вычитание, умножение, деление, возведение в степень. Например:

2. Решение алгебраических уравнений

Функция roots(p) предназначена для решения алгебраического уравнения. Здесь p – это полином, созданный функцией poly и представляющий собой левую часть уравнения P(x) = 0.

Решим уравнение:

Для решения этой задачи необходимо задать полином p. Сделаем это при помощи функции poly, предварительно определив вектор коэффициентов V. Обратите внимание, что в уравнении отсутствует переменная x в первой степени, это означает, что соответствующий коэффициент равен нулю:

26

Теперь найдем корни полинома:

Графическое решение задачи, показанное на рисунке, позволяет убедиться, что корни найдены верно:

3.Системы уравнений

Если заданы m уравнений с n неизвестными и требуется найти последовательность из n чисел, которые одновременно удовлетворяют каждому из m уравнений, то говорят о системе уравнений. Для решения систем уравнений в Scilab применяют функцию fsolve(x0,f), где x0 – начальное приближение, f – функция, описывающая левую часть уравнения y(x) = 0.

27

Графическое решение системы показывает, что она имеет две пары корней:

Окружность и гипербола пересекаются в точках [0.8; 0.6] и [−0.8;−0.6]. Эти значения приблизительны. Для того чтобы уточнить их применим функцию fsolve.

В качестве начального приближения иногда указывают 0, однако появляется вероятность упустить одну пару корней.

28

4. Задания к работе

1. Найти корни полиномов, выполнить с полиномами операции сложения, вычитания, умножения.

29

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

30