Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
73
Добавлен:
26.03.2016
Размер:
295.26 Кб
Скачать

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

ИССЛЕДОВАНИЕ ПРИБЛИЖЕНИЯ ФУНКЦИИ РЯДОМ ТЕЙЛОРА

ВОКРЕСТНОСТИ НЕКОТОРОЙ ТОЧКИ

ВПРОГРАММЕ SCILAB

Цели работы:

углубление и расширение теоретических знаний о программном обеспечении ПК;

овладение практическими навыками работы с программой SciLab.

Краткое описание программы SciLab

Среди свободного программного обеспечения широкую известность и заслуженную популярность приобрела система математических расчетов SciLab.

Интерфейс SciLab.

Внешний вид главного окна программы SciLab показан на рис. 1. Взаимодействие с пользователем организовано в виде командной строки. В главном окне помимо ввода команд выводятся результаты вычислений. Для представления графической информации, например графиков функций, используется графическое окно, открыть которое можно с помощью команды меню «Graphics Window 0 -> Set (Create) Window».

Рис. 1 Главное окно SciLab

Использование SciLab в качестве калькулятора. Для набора выражения используются клавиатура. Например, для

 

3

 

расчёта выражения

22 5,69

необходимо набрать

4

 

 

(22+5.69)^(1/3)/4. Для немедленного вычисления необходимо нажать Enter. При наборе используются обычные математические операции +-*/. Возведение в степень обозначается крышкой ^. Результат отображается в виде ans=0.7563352. Если пользователь не указал какой переменной нужно присвоить результат вычислений, то результат присваивается встроенной переменной с именем ans. Если не требуется вывода результата на экран, то в конце вводимой строки следует поставить точку с запятой.

При более сложных вычислениях можно использовать переменные. Присвоить значение переменной можно, к при-

2

меру, так: a=5.5. В качестве имени переменной можно использовать произвольную последовательность символов, которая начинается не с цифры. Имена переменных ЧУВСТВИТЕЛЬНЫ к регистру.

Значение переменной доступно ниже её определения. Для вывода значения переменной достаточно набрать в командной строке её имя и нажать Enter. Если точность вывода недостаточна, можно использовать функцию printf, формат которой совпадает с аналогичной функцией языка C. Например, чтобы вывести значения вещественной переменной b с точностью 12 знаков после запятой, необходимо написать printf("%1.12f",b).

Программа SciLab имеет много встроенных недоступных для изменения переменных, некоторые из них приведены ниже:

%i

— мнимая единица,

%pi

— число пи

%e

— число е (экспонента)

%eps

— условные ноль (самое близкое к нулю

 

вещественное число)

%inf

— бесконечность.

%t

— логическая истина,

%f

— логическая ложь.

Для ввода текстового комментария необходимо ввести знак двойного слеша //, затем вводить текст.

Программа SciLab имеет много встроенных элементарных функций. В таблице 1 приведены наиболее часто используемые из них. Полный перечень элементарных функций доступен в справочной системе пакета.

3

Таблица 1

Элементарные функции пакета SciLab.

Имя

Описание

функции

 

 

 

abs

модуль числа или длина вектора

 

 

acos

арккосинус

 

 

acosh

арккосинус гиперболический

 

 

and

логическая И

 

 

asin

арксинус

 

 

asin

арксинус гиперболический

 

 

atan

арктангенс

 

 

atanh

арктангенс гиперболический

 

 

ceil

округление вверх

 

 

cos

косинус

 

 

cosh

косинус гиперболический

 

 

cotg

котангенс

 

 

coth

котангенс гиперболический

 

 

exp

экспонента

 

 

eye

формирование единичной матрицы

 

 

factor

разложение на простые множители

 

 

floor

округление вниз

 

 

log

натуральный логарифм

 

 

log10

десятичный логарифм

 

 

log2

логарифм по основанию 2

 

 

4

Имя

Описание

функции

 

 

 

max

максимальное значение вектора

 

 

min

минимальное значение вектора

 

 

not

логическое НЕ

 

 

or

логическое ИЛИ

 

 

rand

генератор случайного числа

 

 

round

округление

 

 

sign

знак аргумента

 

 

sin

синус

 

 

sinc

sin(x)/x

 

 

sinh

синус гиперболический

 

 

sqrt

квадратный корень

 

 

tan

тангенс

 

 

tanh

тангенс гиперболический

 

 

Сессию работы со SciLab можно записать в файл. Для этого необходимо выполнить команду save('my_file'). Полученный файл в дальнейшем можно загрузить с помощью команды load.

Команда diary('file-name') служит для записи копии текущей сессии Scilab в текстовый файл, например, diary('D:/slon/my_example.txt') // открыли сессию записи

...// Работаем в SciLab, все записи главного окна копируются

...//в текстовый файл

diary(0) // закрыли сессию записи

5

Все, что находится в главном окне Scilab между командой diary('file-name'), открывающей запись сессии, и командой diary(0), закрывающей запись, будет записано в файл.

Задание. Вычислите значения функций

 

 

 

 

 

1

 

 

 

arctg

2

(x)

 

æ

 

 

x 2

ö

y =

4 x +

 

 

 

 

 

 

 

 

 

 

 

 

y = lnç

2e

2

÷

 

 

 

 

 

 

 

, y =

 

 

 

,

ç

 

 

÷

 

 

 

 

3

 

 

 

2

 

 

 

ç

 

 

 

÷

 

 

 

 

x +

x

8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

è

 

 

 

ø

для трёх значений x=4,5,6 .

Векторы и матрицы. Программа SciLab обладает богатыми возможностями работы с векторами и матрицами. Более того, все переменные она считаем матрицами. Обычная скалярная переменная — это матрица (или вектор) из одного компонента. Чтобы переменной v присвоить значение векто-

ра-строки необходимо писать v=[3 5 6 4 8]. Здесь квадратные

скобки обозначают вектор, элементы разделяются пробелом или запятыми. Вектор-столбец определяется либо с помощью

транспонирования (операция апостроф) v1=[3 5 6 4 8]', либо элементы вектора разделяются точкой с запятой v1=[3; 5; 6; 4; 8].

Матричные переменные задаются аналогично. При этом элементы одной строки отделяются друг от друга пробелом или запятыми, а строки отделяются точкой с запятой. Например, переменная М — есть матрица размером 3х3, а переменная N — вектор-столбец размером 3x1:

-->M=[1 2 3; 4 6 8; -1 2 4]

M=

1.2. 3.

4.6. 8.

1. 2. 4.

6

-->N=[4; 6; 1] N =

4.

6.

1.

1

2

3

,

4

.

M= 41

26

84

N= 61

SciLab позволяет выполнить все допустимые операции с матрицами. Например, обратную матрицу получаем, указав (–1) степень, а операция транспонирования обозначается апострофом.

-->M^(-1) ans =

4.- 1. - 1.

-12. 3.5 2.

7.- 2. - 1.

-->M' ans =

1.4. - 1.

2.6. 2.

3.8. 4.

 

æ 4

- 1

- 1ö

 

 

æ

1

4

- 1ö

M − 1

ç

- 12

3.5

2

÷

,

M Т

ç

2

6

2

÷

= ç

÷

= ç

÷

 

ç

7

- 2

 

÷

 

 

ç

3

9

4

÷

 

è

- 1ø

 

 

è

ø

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

7

при помощи круглых скобок. Например, значения компонентов вектора N можно вывести так:

-->N(1) ans = 4. -->N(2) ans = 6. -->N(3) ans = 1.

Двумерный массив имеет уже два индекса, также отсчитываемые от 1, первый из них нумерует строки, второй — столбцы. Так, для матрицы M имеем:

-->M(1,1) ans =

1. -->M(1,2) ans =

2. -->M(1,3) ans =

3.

Легко вычислить скалярное произведение векторов

-->[3 -8 2]*[-2 4 1]' ans =

- 36.

8

æ

3

ö

æ

- 2

ö

 

ç

- 8

÷

ç

4

÷

= - 36 .

ç

÷

× ç

÷

ç

2

÷

ç

1

÷

 

è

ø

è

ø

 

Поэлементные вычисления над матрицами выполняются с помощью операции векторизации. При этом операции производятся над каждым элементом вектора независимо:

-->[3 -8 2].*[-2 4 1]

 

 

 

ans =

 

 

 

- 6. - 32. 2.

 

 

.

3

−2

−6

28

. 41

= −232

В Scilab разрешены следующие операции над матрицами: ' транспонирование,

+сложение,

-вычитание,

*умножение,

\

левое деление,

/

правое деление,

^возведение в степень,

.*

поэлементный способ умножения,

.\

поэлементный способ левого деления,

./

поэлементный способ правого деления,

.^

поэлементный способ возведения в степень.

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

-->a=[1 5 4 8]; -->b=[-5 0 10 20]; -->c=[6 -125 2 3];

-->(-b+sqrt(b.^2-4*a.*c))./(2*a)

9

ans =

3. 5. - 0.2192236 - 0.1602753 -->(-b-sqrt(b.^2-4*a.*c))./(2*a) ans =

2. - 5. - 2.2807764 - 2.3397247

При определении вектора допустим следующий способ: x=[xmin:delta:xmax], например x=[0:0.1:4*%pi].

Построение графиков функций. Табулирование функций и построение их графиков можно выполнить двумя способами.

1 способ.

Задать интервал изменения аргумента в виде х=[Начальное_Значение:Шаг:Конечное_Значение]

Например,

-->х=[0:0.1:20].

Если Шаг=1, то его можно не использовать:

-->х=[0:20].

Теперь можно вычислить значения функции, например

-->y=x.*cos(x);

Здесь нужно иметь в виду, что х является вектором, поэтому для поэлементного вычисления значений функции необходимо использовать соответствующие поэлементные математические операции (здесь поэлементное умножение .*). Далее для построения графика необходимо воспользоваться командой plot(x,y). Откроется графическое окно с графиком. Свойства графика (цвет, толщина, стиль линий, настройка осей) можно изменять с помощью меню графического окна. Повторный вызов команды plot с другим вектором y добавляет еще одину линию, например

-->y=x.*sin(x);

10