Методические рекомендации к лабораторным_Матпакеты
.pdfScilab функцией: |
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