Федеральное агентство связи Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования «Московский технический университет связи и информатики» Факультет РиТ Кафедра информатики ЛАБОРАТОРНАЯ РАБОТА №1 «Рабочая среда Scilab и простейшие вычисления» по Математическим Пакетам Выполнил: Молчанов Владислав Михайлович БИК2003 Проверил: Юсков Игорь Олегович Москва 2021 г. 1. Основы работы с математическим пакетом Scilab 1.1. Практическое занятие по теме «Рабочая среда Scilab и простейшие вычисления» Цель работы: Изучение основных элементов Рабочей среды, объектов и правил вычислений арифметических выражений в Командном окне системы Scilab. 1.1.1. Элементы системы Scilab, подлежащие изучению 1) Графический интерфейс пользователя и элементы Рабочей среды. 2) Правила работы в Командном окне. 3) Назначение основных окон рабочей среды: Обозревателя переменных, Журнала команд и Обозревателя файлов при работе в Командном окне. 4) Установка свойств Рабочей среды системы Scilab. 5) Основные объекты системы Scilab. 6) Правила записи и вычисления арифметических выражений. 7) Создание и использование в Командном окне встроенных функций пользователя при вычислении выражений. 1.1.2. Общее задание 1) Изучить материал учебника [1] (п.п. 1.1-1.2). 2) Выбрать вариант индивидуального задания из табл. 1.1.3-1. 3) При выполнении задания вводить перед каждым пунктом задания соответствующие комментарии. 4) Выполнить команды clear и clc для очистки окна Обозревателя переменных и Командного окна. 5) Задать переменным x и y допустимые числовые значения. 6) Проанализировать информацию, возникшую в окне Обозреватель переменных. 7) Ввести арифметическое выражение для вычисления и получить результат. 8) Изменить значения исходных данных. 9) Изменить формат вывода результата, выполнив команду, например, format(16), и произвести перерасчет выражения. 10) Изменить формат вывода данных, например,format(6). 11) Описать с помощью оператора deff функцию fd(x), правая часть которой будет заданным арифметическим выражением, и вычислить её значение при тех же значениях х иy. 12) Описать с помощью оператораfunctionфункцию ff(x),правая часть которой будет заданным арифметическим выражением, и вычислить её значение при тех же значениях х иy. 13) Изменить значение переменной y, вывести на экран значения описанного (в п.7)арифметического выражения и функции ff(x). 14) Объяснить, почему изменение значения y не привело к изменению значения арифметического выражения, но повлияло на значение функции. 15) Задать диапазон изменения аргумента функции с шагом, позволяющим получить таблицу значений функции fd(x) и ff(x)(порядка 8-10 точек), вывести вначале значения функции fd(х) в строку, а затем значения функции ff(х)в столбец. 16) Cохранить переменные Рабочей области, обнулить Рабочую область, а затем восстановить ее. 17) Выполнить команду who_user и проанализировать выведенную информацию о данных. 18) Сохранить текст рабочего окна на внешнем носителе в Word. 19) Предоставить результаты работы преподавателю и, ответить на поставленные вопросы. 20) Оформить отчет по выполненной работе. 1) Пример индивидуального задания : 2) Результат выполнения задания : Запуск программы: загрузка исходного окружения --> Практическое занятие 1.1 по теме Неопределённая переменная: Практическое -->// «Рабочая среда Scilab и простейшие вычисления» --> //Задание начальных значений x и y --> x=4.55; --> y=1.5; --> // Ввод арифметического выражения --> z=((PI/3)+log(pow(x,3)))/((3*y-x)+(x*sin(pow(x,2))) z=((PI/3)+log(pow(x,3)))/((3*y-x)+(x*sin(pow(x,2))) ^^ Ошибка: syntax error, unexpected end of file --> z=((pi/3)+log(pow(x,3)))/((3*y-x)+(x*sin(pow(x,2))) z=((pi/3)+log(pow(x,3)))/((3*y-x)+(x*sin(pow(x,2))) ^^ Ошибка: syntax error, unexpected end of file --> z=((PI/3)+log(pow(x,3)))/((3*y-x)+(x*sin(pow(x,2))); z=((PI/3)+log(pow(x,3)))/((3*y-x)+(x*sin(pow(x,2))); ^ Ошибка: syntax error, unexpected ; --> z=((PI/3)+ln(pow(x,3)))/((3*y-x)+(x*sin(pow(x,2))) z=((PI/3)+ln(pow(x,3)))/((3*y-x)+(x*sin(pow(x,2))) ^^ Ошибка: syntax error, unexpected end of file --> z=((pi/3)+ln(pow(x,3)))/((3*y-x)+(x*sin(pow(x,2))) z=((pi/3)+ln(pow(x,3)))/((3*y-x)+(x*sin(pow(x,2))) ^^ Ошибка: syntax error, unexpected end of file --> help --> ((%pi/3)+ln(pow(x,3)))/((3*y-x)+(x*sin(pow(x,2))) ((%pi/3)+ln(pow(x,3)))/((3*y-x)+(x*sin(pow(x,2))) ^^ Ошибка: syntax error, unexpected end of file --> ((%pi/3)+log(pow(x,3)))/((3*y-x)+(x*sin(pow(x,2))) ((%pi/3)+log(pow(x,3)))/((3*y-x)+(x*sin(pow(x,2))) ^^ Ошибка: syntax error, unexpected end of file --> ((%pi/3)+log(x^3)))/((3*y-x)+(x*sin(x^2))) ((%pi/3)+log(x^3)))/((3*y-x)+(x*sin(x^2))) ^^ Ошибка: syntax error, unexpected ), expecting end of file --> (%pi/3)+log(x^3)/((3*y-x)+(x*sin(x^2)) (%pi/3)+log(x^3)/((3*y-x)+(x*sin(x^2)) ^^ Ошибка: syntax error, unexpected end of file --> ((%pi/3)+log((x)^3))/(3*y-x)+x*sin(y^2) ans = -108.31135 --> z=((%pi/3)+log((x)^3))/(3*y-x)+x*sin(y^2) z = -108.31135 --> //Изменение значений x и y --> x=8.8;y=5.5; --> //Изменение формата вывода результата --> format(16); --> //Перерасчет выражения --> z=((%pi/3)+log((x)^3))/(3*y-x)+x*sin(y^2) z = -7.1052469615046 --> format(6); --> //Описание функции fd с использованием deff --> deff('f1 = fd(x)','f1 = ((%pi./3)+log((x).^3))./(3*yx)+x.*sin(y.^2); deff('f1 = fd(x)','f1 = ((%pi./3)+log((x).^3))./(3*yx)+x.*sin(y.^2); ^~~~^ Ошибка: Unexpected end of file in a string. --> deff('f1 = fd(x)','f1 = ((%pi/3)+log((x).^3))./(3*yx)+x.*sin(y.^2); deff('f1 = fd(x)','f1 = ((%pi/3)+log((x).^3))./(3*yx)+x.*sin(y.^2); ^~~~^ Ошибка: Unexpected end of file in a string. --> deff('f1 = fd(x)','f1 = ((%pi./3)+log((x).^3))./(3.*yx)+x.*sin(y.^2); deff('f1 = fd(x)','f1 = ((%pi./3)+log((x).^3))./(3.*yx)+x.*sin(y.^2); ^~~~^ Ошибка: Unexpected end of file in a string. --> deff('f1 = fd(x)','f1 = ((%pi./3)+log((x).^3))./(3*yx)+x.*sin(y.^2)'); --> //Вызов функции fd и вычисление ее значения --> f1=fd(x) f1 = -7.105 --> //Описание функции ff с использованием function --> function [f2]=ff(x) > f2=((%pi./3)+log((x).^3))./(3*y-x)+x.*sin(y.^2)'); > end > //Вызов функции ff и вычисление ее значения f2=((%pi./3)+log((x).^3))./(3*y-x)+x.*sin(y.^2)'); ^^ Ошибка: syntax error, unexpected ), expecting end or endfunction --> f2=(((%pi./3)+log((x).^3))./(3*y-x)+x.*sin(y.^2)'); --> end end ^~~^ Ошибка: syntax error, unexpected end --> f2=(((%pi./3)+log((x).^3))./(3*y-x)+x.*sin(y.^2)'); --> f2=ff(x) Неопределённая переменная: ff --> function [f2]=ff(x) > f2=(((%pi./3)+log((x).^3))./(3*y-x)+x.*sin(y.^2)'); > end --> f2=ff(x) f2 = -7.105 --> //Изменение значения y --> y=0.1; --> //Вычисление значения выражения при новом значении y --> z z = -7.105 --> //Вычисление значения выражения при новом значении y --> f2=ff(x) f2 = -0.803 --> f2=ff(x) f2 = -0.803 --> //Задание диапазона изменения переменной x --> x=2:0.2:3.8 x = 2. 2.2 2.4 2.6 2.8 3. 3.2 3.4 3.6 3.8 --> //Вычисление функции fd для заданного диапазона аргумента и вывод полученного результата в строку --> fd(x) ans = column 1 to 9 -1.819 -1.774 -1.725 -1.676 -1.626 -1.579 -1.532 -1.488 1.446 column 10 -1.405 --> //Вычисление функции ff для заданного диапазона аргумента х и вывод в столбец --> ff(x)' ans = -1.819 -1.774 -1.725 -1.676 -1.626 -1.579 -1.532 -1.488 -1.446 -1.405 --> who Ваши переменные: %e %eps %fftw %gui %i %inf %io %nan %pi %s %tk %z PWD SCI SCIHOME TMPDIR WSCI annealinglib ans arnoldilib assertlib atomsguilib atomslib cacsdlib compatibility_functilib consolelib corelib data_structureslib datatipslib deff demo_toolslib development_toolslib differential_equationlib dynamic_linklib elementary_functionslib enull evoid external_objectslib f1 f2 fd ff fileioguilib fileiolib functionslib geneticlib graphicslib guilib help helptoolslib home integerlib interpolationlib iolib jnull jvmlib jvoid linear_algebralib m2scilib matiolib modules_managerlib neldermeadlib optimbaselib optimizationlib optimsimplexlib output_streamlib overloadinglib parameterslib polynomialslib preferenceslib randliblib scicos_autolib scicos_scicoslib scicos_utilslib scinoteslib signal_processinglib soundlib sparselib special_functionslib spreadsheetlib statisticslib stringlib tclscilib timelib uitreelib umfpacklib webtoolslib windows_toolslib x xcoslib xmlGetValues xmllib y z используется 0 элементов из 7993. и 94 переменных из 0. Ваши глобальные переменные: %helps %modalWarning %toolboxes %toolboxes_dir используется 0 элементов из и 4 переменных из 0. --> whos Название %e %eps %fftw %gui %helps %i %inf %io Тип constant constant boolean boolean constant* constant constant constant Размер 1x1 1x1 1x1 1x1 0x0 1x1 1x1 1x2 7993. Байт 216 216 212 212 208 224 216 224 %modalWarning boolean* 1x1 212 %nan constant 1x1 216 %pi constant 1x1 216 %s polynomial 1x1 264 %tk boolean 1x1 212 %toolboxes constant* 0x0 208 %toolboxes_dir string* 1x1 282 %z polynomial 1x1 264 annealinglib library 1190 ans constant 10x1 288 arnoldilib library 336 assertlib library 1142 atomsguilib library 466 atomslib library 2488 cacsdlib library 10106 compatibility_functilib library 9610 consolelib library 338 corelib library 1184 data_structureslib library 954 datatipslib library 1314 deff function 2665 demo_toolslib library 1134 development_toolslib library 922 differential_equationlib library 784 dynamic_linklib library 1816 elementary_functionslib library 7026 enull _EObj ? 884 evoid _EVoid ? 886 external_objectslib library 414 f1 constant 1x1 216 f2 constant 1x1 216 fd function 1061 ff function 1088 fileioguilib library 872 fileiolib library 998 functionslib library 1090 geneticlib library 1662 graphicslib library 10536 guilib library 1114 help function 6368 helptoolslib library 1420 home string 1x1 252 integerlib library 3240 interpolationlib library 502 iolib library 554 jnull _EObj ? 884 jvmlib library 488 jvoid _EVoid ? 886 linear_algebralib library 2560 m2scilib library 536 matiolib library 474 modules_managerlib library 2110 nargin constant 1x1 216 nargout constant 1x1 216 neldermeadlib library 2706 optimbaselib library 2478 optimizationlib library 1094 optimsimplexlib library 3164 output_streamlib library 342 overloadinglib library 39288 parameterslib library 702 polynomialslib library 1802 preferenceslib library 446 PWD string 1x1 272 randliblib library 688 SCI string 1x1 264 scicos_autolib library 468 scicos_scicoslib library 9260 scicos_utilslib library 976 SCIHOME string 1x1 318 scinoteslib library 448 signal_processinglib library 3778 soundlib library sparselib library special_functionslib library spreadsheetlib library statisticslib library stringlib library tclscilib library timelib library TMPDIR string 1x1 uitreelib library umfpacklib library webtoolslib library whos function windows_toolslib library WSCI string 1x1 x constant 1x10 xcoslib library xmlGetValues function xmllib library y constant 1x1 z constant 1x1 990 1014 736 342 2612 1054 5024 812 324 1010 784 288 18484 348 264 288 2016 11136 416 216 216 //конец сессии Контрольные вопросы 1. 1) Строка меню, является элементом управления, обеспечивающим доступ ко всем функциональным возможностям программы: Файл, Правка, Управление, Инструменты, Справка. Более подробно все категории строки меню будут рассмотрены ниже. 2) Панель инструментов позволяет выполнить команды: Открыть SciNotes , Открыть файл, Вырезать, Скопировать, Вставить, Очистить командное окно, Печать, Управление модулями, Xcos , Настройки Scilab , Примеры и Справочная. Все команды отображаются на панели в форме кнопок с соответствующим изображением, подсказывающим их назначение. 3) Командное Окно отображает вводимые команды, результаты их выполнения, а также сообщения об ошибках. 4) Окно Обозреватель переменных отображает содержимое рабочего пространства объектов Scilab, и, позволяет выполнять определенные действия с объектами этого пространства (скалярными переменными, векторами, матрицами, функциями и др.). 5) Окно Журнал команд осуществляет просмотр и повторный вызов ранее введенных команд. 6) Окно Обозреватель файлов предназначен для просмотра путей доступа файловой системы. В нем перед работой в Scilab с конкретным файлом (чтение или запись файла на внешний носитель), расположенным в определенной папке, необходимо указать путь 7) 8)Сессия. 9)Сделать два клика. 10)Сделать два клика в окне журнала команд, а далее заменить в табличке переменную. 11) является основным инструментом для записи, сохранения и выполнения сценариев (программ). 12) Зайти в настройки scilab далее выбрать шрифты и менять их. 13) Для уточнения тех или иных тем, которые вызывают у пользователя сомнения . 14) Кликнуть на символ вопросика в командном окне. 15) F1 16) Вернется первая или предыдущая строка. 17); 18)… 19) 6. 20) любой 21) Описание функции с помощью deff используется, как правило, если функция имеет один или два выходных параметра, а выражения для их вычислений достаточно короткие. В противном случае описание функции либо полностью не видно в Командном окне, либо строка должна быть перенесена с использованием символов три точки (…), что затрудняет чтение и контроль за правильностью ввода. Громоздкие выражения принято вычислять по частям, но тогдадля вычисления значения одного выходного параметра требуется не один, а несколько операторов, что не соответствует формату описания функции с помощью deff. Описание функции с помощью function в данном случае предпочтительнее, поскольку оно может занимать несколько строк.