Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
matlab72_core.doc
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆
  1. Построить контурный график на основе базиса (u,V) и матрицы значений в, которая содержит высоты «гор». Площадь построения – [-2;2]× [-2;2].

>> % Вначале создадим функцию растягивания координат, поскольку 0<ui&vi<1

>>stretch=@(x) 4/(max(max(x))-min(min(x)))*x- 2*(max(max(x))+min(min(x)))/(max(max(x))-min(min(x)));

> > % Построим первоначальную сетку

>> [Xbig,Ybig]=meshgrid(u,v)

Xbig =

0.4740 0.9090 0.5962 0.3290

0.4740 0.9090 0.5962 0.3290

0.4740 0.9090 0.5962 0.3290

0.4740 0.9090 0.5962 0.3290

Ybig =

0.4782 0.4782 0.4782 0.4782

0.5972 0.5972 0.5972 0.5972

0.1614 0.1614 0.1614 0.1614

0.8295 0.8295 0.8295 0.8295

>> % Построим подробную сетку в области, заданной векторами u,v. Эта область обязана не превосходить существенно предыдущую область [Xbig Ybig]

>> [X,Y]=meshgrid(linspace(min(u),max(u),100),linspace(min(v),max(v),100));

>> % Проведем интерполяцию с использование кубических полиномов

Z=griddata(Xbig,Ybig,B,X,Y,'cubic');

>> % Построим контурный график с заливкой для квадратной площадки

contourf(stretch(X),stretch(Y),Z)

Для того, чтобы скопировать рисунок в буфер обмена, исполнить пункт Edit – Copy Figure меню графического окна, а если хотим скопировать его вместе с фоном, то поставить галочку File – Preferences – File Copy Template – Copy Options – Use Figure Color. Чтобы добавить расшифровку цветов, исполнить Insert – Colorbar. Можно цветовую гамму выбрать монотонной; для этого имеется пункт Edit – Colormap…, а в появившемся окне можно выбрать осеннюю гамму цветов (Tools – Standart colormaps – autumn) – см. рис. Сверху-справа. Для того, чтобы обрезать у рисунка неиспользуемые поля – поставить галочку File – Export Setup – (Properties=Size) – Expand Axes….

  1. Построить поверхность площадей S(a,b,c), вычисленную для изопериметрических треугольников (т.е. a+b+c=1).

>> % Подготовим сетки и значения, цвет выберем потом

>> a=0:0.01:1;b=0:0.01:1; [X,Y]=meshgrid(a,b);Z=geron1(X,Y,1-X-Y);

>> % Инициализируем графический объект и построим в первом приближении. Функция surf позволяет указывать вектора вместо матриц, т.е. как бы функция meshgrid выполняется автоматически

>> figure(5);Hsur=surf(a,b,Z)

>> % Обычно цветом отмечается высота точки. Введем свои цвета (в палитре RGB) и немного изменим угол зрения. Также уберем линии сетки поверхности.

>> C=cat(3,X,Y,1-X-Y); set(Hsur,'CData',C, 'LineStyle','none'); view([23.5 36]);

>> xlabel('Сторона А','Color',[1 0 0]); ylabel('Сторона В','Color',[1 0 0]); zlabel ('Величина площади', 'Color',[1 0 0],'Rotation', 90);

>>title('Площадь','BackgroundColor',[0.9412 0.9412 0.9412],..

'EdgeColor',[1 0 0],'FontSize',14,'FontWeight','bold','LineWidth',1);

>>axis([0 1 0 1 0 0.5]); box('on');

Примечание: Укажите ошибку вычислений при выполнения п.8. Как ее исправить? См. п.10.

  1. Построить в декартовых координатах кривую, заданную параметрически на [-π;π]:

, «тильда»– первые три компонента одноименных векторов.

>> MyCurve1=@(t) u(1)*sin(t)+v(1)*cos(t); MyCurve2=@(t) u(2)*sin(t)+v(2)*cos(t);

>> % Обратите внимание, что мы здесь не делаем матриц, используя облегченный вызов функции-рисовалки – поэтому не можем применять индексацию по осям

>> MyCurve3=@(t) u(3)*sin(t)+v(3)*cos(t); ezplot3(MyCurve1,MyCurve2,MyCurve3,[-pi,pi])