Программирование - это просто
Advertisement
Главная arrow Разное arrow Хитрости и секреты arrow Scilab для чайников. arrow Scilab для чайников. Урок 4. Графики
19.10.2018 г.
Главное меню
Главная
Системный подход
Интернет магазин
Биржевые роботы
Программные продукты
Математика и информатика
1С:Предприятие
C#, Delphi, VB, F#, Web и пр.
Искусственный интеллект
Услуги
Ча. Во. (FAQ)
Платный раздел
Наука для чайников
Разное
Размышления
Карта сайта
Друзья сайта
Excel-это не сложно
Все о финансах
Scilab для чайников. Урок 4. Графики Печать E-mail
Автор megabax   
23.07.2018 г.
New Page 1

Scilab для чайников. Урок 4. Графики

Хотя с графиками мы познакомили на уроках Scilab для чайников. Урок 1. Начало работы и Scilab для чайников. Урок 3. Решение многочлена, тем не менее, еще есть много графических возможностей Scilab, нами еще не изученных. Поэтому сегодняшний урок мы посвятим графикам.

Рассмотрим функцию xsetech. При помощи нее мы можем задавать местоположение графика в графическом окне. Давайте рассмотрим пример:

t=(0:0.05:5)';
xsetech([0,0,0.5,0.5]);
plot2d(t,2*sin(t));
xgrid();
xsetech([0.5,0,0.5,0.5]);
plot2d3(t,1.5+cos(t));
xgrid();
xsetech([0,0.5,1,0.5]);
plot2d(t, [2*sin(t) 1.5+cos(t)],[12 10]);
xgrid();

Он выдаст нам вот такой результат:

Scilab для чайников. Урок 4. Графики

В качестве аргумента функции xsetech задается вектор, состоящий из четырех чисел. Первые два числа координаты начала. За единицу считается весь размер окна. Вторые два числа - длина и ширина графика. Например, если в последнем xsetech  мы задавим такие аргументы [0.5,0.5,0.5,0.5], то график будет выглядеть так:

Scilab для чайников. Урок 4. Графики

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

Теперь попробуем построить трехмерный график:

t=[0:0.3:2*%pi]';
z=sin(t)*cos(t');
plot3d(t,t,z);

Данный пример выдаст:

Scilab для чайников. Урок 4. Графики

моет возникнуть вопрос, а почему в формуле z=sin(t)*cos(t') стоит апостроф в аргументе косинуса? Дело в том, что мы не моем перемножить вектор на вектор. Поэтому мы во втором сомножителе вектор сводим к его значениям. И у нас получается, что мы каждое значение первого вектора умножаем на каждое значение второго вектора и получаем новый вектор. Сравните, график функции для z=sin(t)*t':

Scilab для чайников. Урок 4. Графики

и z=t*sin(t'):

Scilab для чайников. Урок 4. Графики

Теперь нарисуем трехмерный тор:

[a,b]=meshgrid(-%pi:%pi/20:%pi);
x=sin(a).*(2+sin(b));
y=cos(a).*(2+sin(b));
z=cos(b);
xgrid();
mesh(x,y,z);

После запуска этой программы мы увидим такую вот трехмерную модель тора:

Scilab для чайников. Урок 4. Графики

Функция meshgrid создает двумерный массив с заданным диапазоном и шагом. Символ ".*" - означает поэтапное умножение. В отличии от просто звездочки, звездочка с точкой служит именно для поэтапного унижения векторов. Если мы таким же образом попытаемся умножить скалярные величины, то это будет простое умножение, как если бы мы использовали просто звездочку.

Функция mesh строит аксонометрическое изображение поверхности, заданное последовательностями значений координат. Для создание разукрашенной поверхности используется функция surf:

[x,y]=meshgrid(-10:0.5:10);
z=0.1*exp(-(0.05*x.^2+0.01*y.^2))-0.7*exp(-(0.1*x.^2+0.3*y.^2))+exp(-(0.25*x.^2+0.9*y.^2));
surf(x,y,z)

Данная программа создает вот такую вот интересную картинку:

Scilab для чайников. Урок 4. Графики

Или вот другой вариант поверхности, если задать формулу вот так z=0.1*exp(-(0.05*x.^2+0.01*y.^2))-0.7*exp(-(0.2*x.^2+0.3*y.^2))+exp(-(0.25*x.^2+0.5*y.^2)):

Scilab для чайников. Урок 4. Графики

 Функция surf позволяет также задать схему затенения, попробуем, например, так surf(x,y,z,'facecol','interp') и увидим несколько иную картинку:

Scilab для чайников. Урок 4. Графики

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

Последнее обновление ( 23.07.2018 г. )
 
« След.   Пред. »
 
© 2018 Программирование - это просто
Joomla! - свободное программное обеспечение, распространяемое по лицензии GNU/GPL.
Русская локализация © 2005-2008 Joom.Ru - Русский Дом Joomla!
Design by Mamboteam.com | Powered by Mambobanner.de
Я принимаю Яндекс.Деньги
Мы принимаем
Банковские карты
Оплатите покупку в интернет-магазине банковскими картами VISA и Mastercard любого банка.
узнать больше
Электронный кошелек
Моментальная оплата покупок с помощью вашего электронного кошелька RBK Money.
узнать больше
Банковский платеж
Оплатите покупку в любом российском банке. Срок зачисления средств на счет - 3-5 рабочих дней.
узнать больше
Денежные переводы
Оплата покупок через крупнейшие системы денежных переводов CONTACT и Unistream.
узнать больше
Почтовые переводы
Оплатите покупку в любом отделении Почты России. Срок зачисления платежа - 3-4 рабочих дня.
узнать больше
Платежные терминалы
Оплата покупок в терминалах крупнейших платежных систем в любом городе России - быстро и без комиссии.
узнать больше