Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
15-21.docx
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
38.16 Кб
Скачать

20. Решение систем оду средствами системы SciLab. Особенности решения жестких дифференциальных задач.

Решение систем ОДУ:

[y,w,iw]=ode([type],y0,t0,t [,rtol [,atol]],f [,jac] [,w,iw]),

для которой обязательными входными параметрами являются: y0 - вектор начальных условий; t0 - начальная точка интервала интегрирования; t - координаты узлов сетки, в которых происходит поиск решения; f - внешняя функция, определяющая правую часть уравнения или системы уравнений; y – вектор решений.

Type - параметр, с помощью которого можно выбрать метод решения или тип решаемой задачи, указав stiff (для решения жестких задач);

rtol, atol - относительная и абсолютная погрешности вычислений, вектор, размерность которого совпадает с размерностью вектора y;

jac - матрица, представляющая собой якобиан правой части жесткой системы дифф. уравнений, задают матрицу в виде внешней функции вида J=jak(t,y);

w, iw - векторы, предназначенные для сохранения информации о параметрах интегрирования, которые применяют для того, чтобы последующие вычисления выполнялись с теми же параметрами.

21. Построение двумерных графиков в системе SciLab. Основные функции и типы графиков.

  1. Plot(X,y,[xcap,ycap,caption])

Здесь x - массив абсцисс; y - массив ординат; xcap, ycap, caption – подписи осей X, Y и графика соответственно.

Пример 1. Построение графика функции y = sin(cos(x))

x=-2*%pi:0.1:2*%pi; y=sin(cos(x))’;

plot(x,y,’X’,’Y’,’plot function y=sin(cos(x))’);

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

x=-2*%pi:0.1:2*%pi; plot([sin(cos(x));cos(sin(x));exp(sin(x));exp(cos(x))]); Для построения нескольких графиков в одной системе координат можно обратиться к функции plot следующим образом:

plot(x1,y1,x2,y2,...xn,yn), где x1, y1 - массивы абсцисс и ординат первого графика; x2, y2 - массивы абсцисс и ординат второго графика и т.д.

Или использовать команду mtlb_hold(’on’) заблокирует режим создания нового окна.

В Scilab 4 можно выводить несколько графиков в одном окне, не совмещая их в одних координатных осях. Для формирования области в графическом окне служит команда plotframe:

plotframe(rect, tics [,grid, title, x-leg, y-leg, x, y, w, h])

где rect - вектор [xmin, ymin, xmax, ymax], который определяет границы изменения x и y-координат области; tics - вектор [nx, mx, ny, my], который определяет количество линий сетки по оси X (mx) и Y (my), величины nx и ny должны определять число подинтервалов по осям X и Y ; grid - логическая переменная, которая определяет наличие (%t) либо отсутсутствие координатной сетки (%f). Этот параметр следует указывать для обеих осей, например, [%t,%t]; bound - логическая переменная, которая при значении true позволяет игнорировать параметры tics и tics; title - заголовок, который будет выводится над графической областью; x-leg, y-leg - подписи осей графика X и Y ; x, y - координаты верхнего левого угла области в графическом окне, w - ширина, h-высота окна. Значения x, y, w, h измеряются в относительных единицах и лежат в диапазоне [0, 1].

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

Еще одним способом изображения нескольких графиков в одном окне является использование функции subplot(m,n,p) или subplot(mnp) – окно разбивается на m окон по вертикали и n окон по горизонтали, текущим окном становится окнос номером p.

  1. plot2d([logflag],x,y’,[key1=value1,key2=value2,...,keyn=valuen]

где logflag - строка из двух символов, каждый из которых определяет тип осей; x - массив абсцисс; y - массив ординат или матрица, каждый столбец которых содержит массив ординат очередного графика; keyi=valuei - последовательность значений свойств графика, определяющих его внешний вид.

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

x=[0:0.1:2*%pi]’; plot2d(x,[sin(x) sin(2*x) sin(3*x)]); Построение точечных графиков: plot2d(x,y,d),

где d - отрицательное число, определяющее тип маркера.

Построение графиков в виде ступенчатой линии: plot2d2(x,y).

X и Y могут быть независимыми друг от друга функциями, важно лишь, чтобы массивы X и Y были разбиты на одинаковое количество интервалов.

  1. polarplot(fi,ro,[key1=value1,key2=value2,...,keyn=valuen]),

где fi - полярный угол; ro - полярный радиус; keyn=valuen - последовательность значений свойств графика.