Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИС-лабраб-методичка.doc
Скачиваний:
19
Добавлен:
06.02.2016
Размер:
534.02 Кб
Скачать

Лабораторная работа №2

Элементы высокоуровневой графики.

Цель работы: научиться управлять элементами графических окон и графиков.

1.Представление векторных данных.

Построим столбчатую диаграмму, содержащую результаты измерений в некоторые моменты времени.

Time=[0.0 0.1 0.2 0.4 0.5 0.8 1.1 1.3]; data=[2.85 2.93 2.99 3.26 3.01 2.25 2.09 1.79]; bar(time,data)

Для построения круговой диаграммы используем функцию pie: pie(data)

parts=[0 0 0 0 0 1 0 0]; pie(data,parts)

2.Представление матричных данных.

Предположим, что в матрице Data размером 4*3 содержатся результаты измерений 3 величин за 4 момента времени. Для построения столбчатой диаграммы данных примените функцию bar:

Data=[1.2 1.4 1.1

3.7 3.5 3.1

2.0 2.8 2.2

4.2 4.7 4.1];

bar(Data)

bar(Data,’stack’)

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

3.Графики функций.

Построим график функции у=sin(2*pi*x), 0<=х<=5, выполнив:

x=0:le-3:5; y=sin(2*pi*x); plot(y) plot(x,y) grid

Следующие команды выводят графики изменения курсов пары валют:

time=[0 4 7 9 10 11 12 13 13.5 14 14.5 15 16 17 18 20 22];

temp1=[14 15 14 16 18 17 20 22 24 28 25 20 16 13 13 14 13];

temp2=[12 13 13 14 16 18 20 20 23 25 25 20 16 12 12 11 10];

plot(time, temp1,’ro-’, time, temp2,’go-’)

grid on title(‘USB/EUR’) xlable(‘время(час)’) ylable(‘пункты’)

legend(’20 февраля’,’21 февраля’)

Оформление графиков цветом.

x=linspace(0,l,20); k=.l:.l:.8; y=k'*x; plot(x,y)

Здесь определяется вектор-строка x=0:20, затем вектор-строка k из 8 угловых коэффициентов, далее получается матрица y=k *х как произведение вектора-столбца k' на вектор-строку х. Строки этой матрицы состоят из точек соответствующих прямолинейных отрезков. Наконец, строятся графики этих отрезков как функций от х - первая нижняя линия (она - синяя соответствует k=.1, последняя, тоже синяя, - для k= 8.

Отредактируем команду plot:

plot(x,y,'g.'),

т.е. добавим там третий (текстовый) аргумент. Все кривые на рисунке станут зелеными (green), а линии будут изображаться отдельными точками. Аналогично используются и другие цвета из этого списка - по первой букве. В текстовом аргументе может быть до трех символов.

ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОЙ РАБОТЫ

Задание 1. Отобразите функцию sin(t)*e^t на отрезке [-1,1] в виде столбчатой диаграммы без промежутков.

Задание 2. Напишите команды построения диаграммы с отделенным сектором, соответствующим максимальному значению среди элементов вектора, автоматически создав вспомогательный вектор.

Задание 3. Постройте поверхность z(x,y)=4sin(2*pi*x)cos(1.5*pi*y)(1-x^2)y(1-y) на прямоугольной области определения x:[-1,1], y:[0,1]. При построении используете следующие функции: mesh, surf, colorbar, meshc, surfc. Постройте линии уровня данной поверхности.

Лабораторная работа №3 Графический способ решения уравнений. Минимум функции. Интегрирование.

Цель работы: усвоить различные способы решения уравнений, особенности интегрирования, работы с m-файлами.

1.Решение уравнений.

Для начала рассмотрим простой пример: найти корни уравнения x*sin(x^2)=0 на отрезке [0,3]. Программа:

х=0:.01:3; f=x.*sin(x.^2); plot(x,[f;0*f]), grid ginput

В команде ginput точка снимается нажатием левой клавиши мыши, Enter - выход из ginput.

Проверим это другим способом:

nx=length(x); w=l:nx-l; x(find(f(w).*f(w+l)<0|f(w)==0)) Отв: О, 1.77,2.5.

Эту строку можно упростить:

nx=length(x); w=l:nx-l; x(f(w).*f(w+l)<0|f(w)==0)

Рассмотрим более сложный пример с неявными функциями. Построим график неявной функции f(x,y)=x3y-2xy2+y-0.2=0, x,y=[0,1]. Это выполнит программа

h=.02; x=0:h:l; [X,Y]=meshgrid(x); f=X.^3.*Y-2*X.*Y.^2+Y-.2;

v=[0,0]; contour(x,x,f,v) grid

На графике зеленая линия (справа она двузначная) представляет искомый результат. Область в первом квадранте между этими кривыми обозначим через G. Эту задачу совсем непросто сделать в других системах программирования прежде всего потому, что вычисление образующих линии уровней точек - в общем случае очень сложная процедура.

Выясним, какой знак имеет f в области G, для чего выполним:

mesh(x,x,f.*(f>0))