Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab1(Scilab).docx
Скачиваний:
54
Добавлен:
09.04.2015
Размер:
335 Кб
Скачать
☆

Генератор случайных чисел

Команда rand генерирует последовательность случайных чисел.

Синтаксис

rand(m1,m2,.. [,key])

rand(x [, key])

rand()

rand(key)

rand("info")

Параметры

mi : integers

key : символьная переменная (character string), принимающая значение "uniform" и "normal". Значение "uniform" соответствует равномерному распределению, а "normal" - Гауссовскому.

x: матрица. Во внимание принимается только ее размер.

Примеры использования.

-->a=rand(2,5)

a =

0.5376230 0.2256303 0.7608433 0.6723950 0.3911574

0.1199926 0.6274093 0.0485566 0.2017173 0.8300317

rand() без аргументов дает случайное скалярное число, случайным образом

изменяющееся при следующем вызове.

-->a=rand()

a =

0.4829179

rand("info") возвращает текущий тип генератора случайных чисел (равномерный или нормальный)

-->str=rand("info")

str =

uniform

Операции над числовыми матрицами

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

A+B Сложение

A-B Вычитание

c*A Умножение на число

A*B Умножение матрицы на матрицу

A.*B Поэлементное умножение матриц

A' Транспонирование (поменять местами строки и столбцы)

matrix Преобразование вектора или матрицы в матрицу (вектор) другого размера

Пример

-->a=[1 2 3;4 5 6]

a =

1. 2. 3.

4. 5. 6.

-->b=matrix(a,1,6)

b =

1. 4. 2. 5. 3. 6.

Нахождение суммы и произведения элементов матрицы

y=sum(x)

y=sum(x,'r') или y=sum(x,1)

y=sum(x,'c') или y=sum(x,2)

Параметры

x : вектор или матрица

y : скаляр или вектор

sum(x) даcт сумму всех элементов вектора или матрицы x, .

-->a=[1 2 3;4 5 6]

a =

1. 2. 3.

4. 5. 6.

-->sum(a)

ans =

21.

y=sum(x,'r') или, эквивалентно, y=sum(x,1) есть строка, равная поэлементной сумме элементов столбцов.

-->sum(a,'r')

ans =

5. 7. 9.

y=sum(x,'c') или, эквивалентно, y=sum(x,2) есть столбец, равный поэлементной сумме элементов строк.

-->sum(a,'c')

ans =

6.

15.

Аналогичным образом работает команда нахождения произведения элементов матрицы prod

y=prod(x,'r') или y=prod(x,1)

y=prod(x,'c') или y=prod(x,2)

Нечисловые (символьные) матрицы

Символьные матрицы - это матрицы, элементы которых имеют строковый тип (strings).

Строковые элементы должны быть заключены в апострофы или кавычки.

-->a=['a1','a2';'a3','a4']

a =

!a1 a2 !

! !

!a3 a4 !

Символьные матрицы можно складывать друг с другом. При этом происходит слияние соответствующих элементов.

-->b=['b1','bbb2';'b3','b4']

b =

!b1 bbb2 !

! !

!b3 b4 !

-->c=a+b

c =

!a1b1 a2bbb2 !

! !

!a3b3 a4b4 !

Полиномы и полиномные матрицы Алгебраический полином можно определить командой poly

Способ 1.

p=poly(a,"x", ["flag"])

a : матрица или действительное число

x : символьная переменная. Переменная полинома.

"flag" : строковая переменная, принимающая значение "roots" или "coeff". По

умолчанию принимает значение "roots".

Можно писать сокращенно: "flags"= "r" или "c".

Флаг "c" означает, что параметр a будет иметь смысл коэффициентов полинома. Флаг "r" означает, что параметр a будет иметь смысл корня полинома.

Например, объявим полином p=1-3x+2x2

-->q1=poly([1,-3,2],'x','c')

q1 =

1 - 3x + 2x2

Или объявим полином, заданный своими корнями p=(x-1)(x-2)

-->q1=poly([1,2],'x','r')

q1 =

2 - 3x + x2

Полиномиальную дробь можно задать следующими способами

-->h=poly([1,-2],'x','c')/poly([3,1,-4],'x','c')

h =

1 - 2x

----------

3 + x - 4x2

или

-->h1=poly([1,-2],'x','c');

-->h2=poly([3,1,-4],'x','c');

-->h=h1/h2

h =

1 - 2x

-----------

3 + x - 4x2

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