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

Определение корней полинома

Вычисление корней полинома в Scilab возможно командой roots. В следующем примере вычислим корни полинома h2 из предыдущего примера

-->a=roots(h2)

a =

- 0.75

1.

Функция roots возвращает вектор-столбец, содержащий корни аргумента.

Индексирование элементов в матрицах

Индексирование матрицы может осуществляться указанием сквозного номера элемента или раздельным указанием номеров строки и столбца.

Рассмотрим матрицу

-->a=[3 1 4;5 7 0]

a =

3. 1. 4.

5. 7. 0.

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

-->m=a(2)

m =

5.

-->m=a(3)

m =

1.

-->m=a(5)

m =

4.

Рассмотрим более естественный способ индексации элементов матрицы с помощью указания номеров строк и столбцов матрицы. При этом сначала указывается номер строки, затем номер столбца. Нумерация строк и столбцов начинается с единицы.

-->m=a(1,2)

m =

1.

-->m=a(2,3)

m =

0.

Возможно выделение единственной строки или единственного столбца матрицы. Выделим третий столбец и вторую строку.

-->m=a(:,3)

m =

4.

0.

-->m=a(2,:)

m =

5. 7. 0.

Программирование в Scilab

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

== равно

< меньше

> больше

<= меньше или равно

>= больше или равно

<> или ~= не равно

Определены следующие типы циклов: for и while. Цикл for определён следующим образом

for i=n1:step:n2,

<тело цикла>,

end

Здесь i – переменная цикла, n1 и n2 – начальное и конечное значения переменной цикла, step – шаг изменения переменной цикла. Если шаг цикла step=1, его можно не указывать.

Пример

-->x=1;

-->for k=1:2:10,x=x*k,end

x =

1.

x =

3.

x =

15.

x =

105.

x =

945.

Отметим, что если после любого действия в теле цикла не следует символ ";", то результат действия будет выведен на экран, что может быть не удобно при большом числе итераций цикла. Перепишем предыдущий пример следующим образом

-->x=1;

-->for k=1:2:10,x=x*k;end

-->x

x =

945.

Синтаксис цикла while.

while <тело цикла> end

Пример цикла while.

-->x=0;

-->while x<14, x=x*2+1,end

x =

1.

x =

3.

x =

7.

x =

15.

Циклы while и for могут быть прерваны с помощью оператора break.

Допустимы следующая условная конструкция if-then-else

Синтаксис

if expr1 then statements

elseif expri then statements

....

else stataments

end,

end

-->for i=1:10, x=2*i, ..

-->if x> 10 then break end

-->end

x =

2.

x =

4.

x =

6.

x =

8.

x =

10.

x =

12

2D графика

Самый простой способ построения графика функции y(x) является использование команды plot, которая имеет следующий формат.

1. plot(y)

2. plot(x,y)

Параметры x,y - два вектора одинакового размера

Рис. 2 Результат работы функции plot(y)

Рис. 3 Результат работы функции plot(x,y)

Следующая последовательность команд позволит построить график, изображённый на рис. 2

-->x=[-5:1:5]

x =

-5. -4. -3. -2. -1. 0. 1. 2. 3. 4. 5.

-->y=x^2

y =

25. 16. 9. 4. 1. 0. 1. 4. 9. 16. 25.

-->plot(y)

Результат работы команды plot(x,y) показан на рис. 3

Последовательность команд plot позволяет разместить два графика в одних осях координат

-->plot(x,2*x+10)

-->plot(x,x.*x)

Либо возможен второй вариант

-->plot(x,[2*x+10;x.*x])

В этом случае графики отображаются разным цветом.

Более гибко управлять процессом отображения графика функции позволяет команда plot2d и её разновидности.

Синтаксис команды plot2d следующий

plot2d(x,y)

Параметры x и у могут быть векторами или матрицами. Если х и у векторы, то их размерности должны совпадать.

Существуют аналогичные функции:

plot2d1 эквивалентна команде plot2d.

plot2d2 аналогична команде plot2d, но выглядит как огибающая гистограммы.

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

plot2d4 аналогична команде plot2d, но кривая изображается стрелочками.

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