Математична система Scilab
Базовые вычисления в Scilab
ВНИМАНИЕ! САЙТ ЛЕКЦИИ.ОРГ проводит недельный опрос. ПРИМИТЕ УЧАСТИЕ. ВСЕГО 1 МИНУТА.
Краткие теоретические сведения
Входной язык системы, т.е. набор правил и символов, на котором пользователь может запрограммировать свой алгоритм и получить результат, представлен данными, выражениями, операторами.
Данные – константы и переменные – записываются по общепринятым правилам. Они делятся на пользовательские и системные.
Основные системные переменные и константы, применяемые в Scilab:
%i или %j – мнимая единица (корень квадратный из –1);
%pi – число p=3,1415926…;
%inf – значение машинной бесконечности;
%e – число e=2.7182818;
ans – результат выполнения последней операции.
Действительные константы могут быть целыми, вещественными, с фиксированной и плавающей точкой. Возможно представление чисел в научном формате с указанием мантиссы и порядка числа. Дробная часть отделяется от целой точкой.
5 -45 – целые константы.
2.301 -897.999 – вещественные константы.
125.35е-25 17.06e-12 – вещественные константы с указанием мантиссы и порядка числа.
Символьная константа представляет собой набор символов, заключенных в двойные кавычки. Например: “Курить вредно!”, “Задайте элементы массива”.
Символ // используется для ввода комментариев к вычислениям.
L=2*pi*r // Вычисление длины окружности
//Программа табулирования функции
Имя переменной (идентификатор) должно соответствовать следующим требованиям:
– должно начинаться с буквы,
– может содержать буквы латинского алфавита, цифры и символ подчеркивания,
– Scilab различает большие и малые буквы.
Примеры допустимых имен переменных:
V1, sp, prim4, sum, rez1.
Выражения в Scilab делятся на арифметические и логические. Арифметическим выражением называется совокупность констант, переменных, стандартных функций, связанных знаками арифметических операций. Арифметические выражения могут содержать круглые скобки
Ниже приведен перечень основных арифметических операций.
В Scilab приоритет возведения в степень выше приоритетов умножения и деления, приоритет умножения и деления выше приоритета сложения и вычитания. Для изменения приоритета операций в математических выражениях используются круглые скобки. Степень вложения скобок не ограничивается.
Ниже приводятся некоторые часто употребляемые математические функции.
Приведем примеры записи арифметических выражений в системе Scilab.
Одним из основных операторов в Scilab является оператор присваивания. В программе этот оператор выполняет следующие функции – присваивает переменной, стоящей слева от знака «=» значение выражения, стоящего справа.
Общий вид оператора присваивания:
Имя_переменной = Выражение
В качестве параметра Имя_переменной может выступать имя простой переменной, структурированной переменной (вектора, матрицы), имя функции. В качестве параметра Выражениеприменяется арифметическое, логическое или строковое выражение.
Ниже приведен пример правильной записи оператора присваивания.
A = cos(x)+c-d^2*p^2+4.92
В SciLab в качестве оператора ввода используется функция input, которую, в силу ее значимости при программировании, принято называть оператором.
Она имеет следующий общий вид:
ИМЯ = input(Символьная константа)
Здесь ИМЯ –это имя простой переменной, Символьная константа –любой набор символов, заключенный в двойные кавычки. Символьная константа, как правило, разъясняет смысловое назначение вводимой переменной. Например:
S=input(“Задайте площадь”)
A=input(“Задайте значение А=”)
Оператор выполняется следующим образом: в командном окне выводится набор символов, стоящий в скобках после input (символьная константа), выполнение программы приостанавливается, и компьютер переходит в режим ожидания; пользователь вводит константу и введенная константа помещается в оперативной памяти в переменную, стоящую слева в операторе input.
При запуске на выполнение программы, содержащей оператор ввода, следует учитывать, что пока пользователь не ввел константу в ответ на запрос своей программы, оператор ввода продолжает свою работу. Система Scilab в это время блокирует выход и закрытие окна рабочего стола.
Если необходимо вывести данные на экран дисплея в определенной последовательности, применяется функция disp, которую принято называть оператором вывода. Оператор имеет следующий общий вид:
Disp( Выражение )
Здесь Выражение –это арифметическое, логическое или символьное выражение, частным случаем которого являются константы или переменные любого типа.
Каждый новый оператор disp выполняет вывод с новой строки командного окна, например (переменным a, b, k, d уже присвоены числовые значения):
Практическая часть
Задание 1. Вычисление арифметических выражений с присваиванием
Постановка задачи. Присвоить значения переменным и вычислить значение арифметического выражения с использованием оператора присваивания.
Последовательность выполнения задания такова.
Шаг 1. Создать программу и записать ее в редакторе SciNotes.
Шаг 2. Записать программу в файл на диск с именем, содержащим тип .sce, например, zadanie1.sce.
Шаг 3.Запустить программу на выполнение.
Если компиляция программы прошла успешно, то результаты выполнения программы будут отражены в командном окне.
Если в результате компиляции были найдены ошибки в программе, то необходимо вызвать программу в окно программы и повторить последовательность, начиная с п.1.
Индивидуальные задания приведены в таблице 2.1.
Математична система Scilab
SCILAB – это система компьютерной математики, которая предназначена для выполнения инженерных и научных вычислений, таких как:
– решение нелинейных уравнений и систем;
– решение задач линейной алгебры;
– решение задач оптимизации;
– дифференцирование и интегрирование;
– задачи обработка экспериментальных данных (интерполяция и аппроксимация,
– метод наименьших квадратов);
– решение обыкновенных дифференциальных уравнений и систем.
Кроме того, SCILAB предоставляет широкие возможности по созданию и редактированию различных видов графиков и поверхностей. Не смотря на то, что система SCILAB содержит достаточное количество встроенных команд, операторов и функций, отличительная ее черта это гибкость. Пользователь может создать любую новую команду или функцию, а затем использовать ее наравне со встроенными. К тому же, система имеет достаточно мощный собственный язык программирования высокого уровня, что говорит о возможности решения новых задач.
Рекомендуемый порядок работы с системой SCILAB:
1) запуск системы с помощью файла WScilex.exe (результат – отображение основного окна системы);
2) запуск редактора с помощью пункта меню Editor основного окна системы (результат – отображение окна редактора);
3) ввод и редактирование SCILAB программы в окне редактора (результат – текст программы в окне редактора);
4) выполнение SCILAB программы с помощью пункта меню редактора Execute, подпункт Load into SCILAB (результат отображается в основном окне системы);
5) Сохранение SCILAB программы с помощью пункта меню редактора File (результат – файл с расширением .sce).
Рассмотрим примеры решения математических задач, наиболее часто встречающихся при математическом моделировании электронных схем.
Пример решения системы линейных уравнений с помощью системы SCILAB.
Дано: система линейных алгебраических уравнений вида:
Требуется: найти корни системы уравнений.
Решение: для решениязадачи с помощьюSCILABнеобходимо преобразовать исходную систему уравнений в матричную форму AX=B:
.
Определение корней системы линейных уравнений вSCILABвозможно различными способами:
а) воспользоваться встроенной функцией решения систем линейных алгебраических уравнений LinSolve(A, B), которая возвращает вектор корней уравнения;
б) применить формальный метод решения с помощью обратной матрицы X = A -1 B, который в SCILAB будет иметь следующий вид: X=inv(A)*B, где inv – встроенная функция вычисления обратной матрицы.
Текст SCILABпрограммы для решения задачи, который необходимо ввести в окне редактора:
a11 = 0.3; a12 = 0.2; a13 = 6.6; a14 = -1.1;
a21 = 4.5; a22 = -1.8; a23 = -0.3; a24 = 6.5;
a31 = -7.3; a32 = 9.7; a33 = 10.9; a34 = -4.1;
a41 = 8.1; a42 = -2.7; a43 = 8.7; a44 = -8.7;
A = [a11 a12 a13 a14; a21 a22 a23 a24; a31 a32 a33 a34; a41 a42 a43 a44;];
b1 = 1; b2 = 6.5; b3 = -4.1; b4 = 8.9;
// Решение системы уравнений формальным методом
// Решение системы уравнений с помощью встроенной функции
Для получения результата рения необходимо выполнить программу с помощью пункта меню редактора Execute, подпункт Load into SCILAB . Результат отобразится в основном окне системы:
Пример решения системы нелинейных алгебраических уравнений с помощью системы SCILAB.
Дано: система нелинейных алгебраических уравнений вида:
Требуется: найти корни системы уравнений.
особенностью решения нелинейных алгебраических уравнений является применение численных (итерационных) методов, для которых требуется назначение начальных приближений корней. В SCILABдля решения данной задачи используется встроенная функция fsolve([x1, … xn], fun), где x1, … xn – начальные приближения корней, fun – подпрограмма функция, в которой описана решаемая система уравнений. Пред применением исходная система уравнений должна быть представлена в следующей в форме:
Текст SCILABпрограммы для решения задачи, который необходимо ввести в окне редактора имеет следующий вид:
[x]=fsolve([0.5 0.6 1], fun);
Для получения результата рения необходимо выполнить программу с помощью пункта меню редактора Execute, подпункт Load into SCILAB . Результат отобразится в основном окне системы:
x = 1.0271746 1.4642447 0.8606410.
На основе вышеприведенных программ возможно построение более сложных процедур для выполнения всестороннего анализа электронных схем.
Математические выражения в Scilab
Лекция 1
Возможности системы SCILAB
Scilab –интерактивная система автоматизации инженерных, научных и математических расчетов, построенная на расширенном представлении и применении матричных операций.
Пакет разработан Scilab Group INRIA-Rocquencourt Metalau Project. Свободно распространяемую версию пакета вместе с полной документацией на английском языке в формате pdf можно получить по адресу http://www.scilab.org.
Scilab поддерживается компанией Scilab Consortium, созданной в 2003 году. Scilab поддерживает язык программирования высокого уровня для организации технических вычислений.
Некоторые возможности системы:
· В области математических вычислений:
– матричные, векторные, логические, условные операторы;
– полиномиальные и рациональные функции;
– элементарные и специальные функции;
· В области реализации численных методов:
– решение дифференциальных уравнений;
– поиск корней нелинейных алгебраических уравнений;
– оптимизация функций нескольких переменных;
– одномерная и многомерная интерполяция;
– решение задач математической статистики.
· В области программирования:
– свыше 500 встроенных математических функций;
– интерфейс к Fortran, Tcl/Tk, C, C ++ , Java, LabView.
· В области визуализации результатов расчетов и графики:
– возможности создания и редактирования двухмерных и трехмерных графиков;
– проведение визуального анализа данных.
Scilab имеет схожий с MATLAB язык программирования, в составе имеется утилита, позволяющая конвертировать документы Matlab → Scilab.
Scilab позволяет работать с элементарными и большим числом специальных функций (Бесселя, Неймана, интегральные функции), имеет мощные средства работы с матрицами, полиномами (в том числе и символьно), производить численные вычисления (например, численное интегрирование) и решение задач линейной алгебры, оптимизации и симуляции, в его состав входят мощные статистические функции, а также средства для построения и работы с графиками.
Программа доступна для различных операционных систем, включая GNU/Linux и Microsoft Windows.
Отличия от некоторых коммерческих программ:
- Бесплатность
- Маленький размер (дистрибутив занимает менее 20Мб против более чем двухгигабайтного пакета MATLAB)
Scilab состоит из 3-х частей:
o библиотека функций (Scilab-процедуры)
o библиотека Fortran и С процедур
Работа с Scilab в режиме диалога
Сеанс работы с с Scilab по аналогии с Matlab будем называть сессией (session). В сессии имеются строки ввода, вывода и сообщений об ошибках. Входящие в сессию определения переменных и функций, расположенные в рабочей области памяти, можно записать на диск, используя команду save. Команда loadпозволяет считать с диска данные рабочей области. Фрагменты сессии можно оформить в виде дневника с помощью команды diary.
Основное окно системы Scilab – это командное окно (Command Window). В нем можно вводить команды, и в него Scilab выводит результат выполнения этих команд и свои служебные сообщения.
Очистить командное окно можно, нажав клавишу F2.
Система Scilab позволяет любые вычисления выполнять в интерактивном режиме. Работа с системой в этом случае реализуется по принципу «задал вопрос – получил ответ». Пользователь набирает на клавиатуре вычисляемое выражение, редактирует (при необходимости) его и завершает ввод нажатием клавиши Enter.
Если система готова к вводу данных, в командном окне появляется символ —> в начале строки. Данные вводят с помощью простейшего строчного редактора. Для блокировки вывода результата вычислений некоторого выражения после него нужно поставить ; (точку с запятой). Если не указать имя переменной, которой надо присвоить значение результата вычислений, то Scilab присвоит этой переменной имя ans. В качестве знака присваивания в системе используется знак равенства =. Встроенные функции (например, sin) вводят строчными буквами и указывают их аргументы в круглых скобках. Результат вычислений выводится в строках вывода (без знака —>). Переменные a и A в среде Scilab – это разные переменные.
—> v=[1 2 3 4]
—> m=[1, 2; 3, 4]
—> sin(v)
0.8414750 0.9092974 0.1411200 -0.7568025
Две записи вектора v=[1 2 3 4] и v=[1, 2, 3, 4] являются идентичными.
В некоторых случаях вводимое математическое выражение может не уместиться в одной строке. Часть выражения можно перенести на новую строку с помощью знака двоеточие, например:
Математические выражения в Scilab
Математические выражения состоят из чисел, констант, переменных, операторов, функций и спецзнаков. Числа могут быть целыми, дробными, с фиксированной и плавающей точкой. Примеры: -3 2.453 123.12е-3. Последнее число – это 123.12*10 -3 , т.е. 0,12312. Для разделения целой и десятичной части числа используется точка. Числа могут быть вещественными и комплексными. Кроме того, в Scilab существуют так называемые системные переменные и символьные константы:
· %i – мнимая единица (%i= );
· %pi – число π=3,1415927;
· %e –число е=2,71828184;
· %eps – 2.22d-16;
· %inf – значение машинной бесконечности;
· ans – переменная, хранящая результат последней операции;
· %nan – указание на нечисловой характер данных (not-a-number).
division by zero
division by zero
Системные переменные нельзя переопределить, например, переменной %eps нельзя присвоить другое значение:
—>%eps = 0.1
redefining permanent variable
Символьная константа – это цепочка символов, заключенная в апострофы, например, ‘Hello’.
В Scilab наглядность описания сложных выражений достигается с помощью текстовых комментариев, которые вводят с помощью символов //.
Переменная в Scilab может иметь имя, содержащее сколько угодно символов, но система запоминает и идентифицирует только первые 24 символа. Имя должно начинаться с буквы и может содержать буквы, цифры и символ подчеркивания _.
В памяти компьютера переменные занимают определенное место, называемое рабочим пространством (Workspace). Для очистки рабочего пространства используют функцию clear:
· clear – уничтожение определений всех переменных;
· clear x– уничтожение определения переменной x;
· clear a, b, c– уничтожение определений нескольких переменных.
—> v=[1 2 3 4 5];
—> clear v
undefined variable : v
Большинство операций в Scilab являются матричными операциями, а соответствующие им операторы относятся к матричным операторам. Например, с помощью операторов умножения * и деления / вычисляют произведение и частное от деления двух массивов (векторов или матриц). Есть ряд спецоператоров, например, оператор используют для деления справа налево, а операторы .* и ./ – для поэлементного умножения и деления массивов.
—> v1=[2 4 6 8]; v2=[1, 4, 12, 24]; p=v1/v2, t=v1.*v2, r=v1./v2, h=v1.v2
Математична система Scilab
Современная вычислительная математика связана с решением разного рода математических задач с применением ЭВМ. Решаемые математические задачи могут быть классифицированы на следующие основные группы:
– алгебраические (решение уравнений (линейных и нелинейных) и их систем, поиск собственных значений, обращение матриц);
– дифференциальные уравнения (задачи дифференцирования и интегрирования функций одной и нескольких переменных, решение обыкновенных дифференциальных уравнений);
– задачи оптимизации (поиск максимального и минимального значений функции на определенном множестве);
– задачи математического программирования – аппроксимации, интерполяции функций и т.д.
Безусловно, возрастающий объем задач требует автоматизации их решения. В этой связи становится весьма актуальным применение для их решения функциональных программных средств. К их числу относятся математические пакеты Matlab, Mathematica, Scilab и др. Все они содержат необходимый набор методов решения математических задач, а также средства для визуализации и отображения полученных результатов. Наиболее известным среди вышеперечисленных программных средств является математический пакет Matlab. Он позволяет производить различной сложности технические вычисления, содержит одноименный язык программирования, предоставляет большое количество функций анализа данных, связанных практически со всеми областями математики, используется более чем 1 000 000 инженерных работников, поддерживается большинством операционных систем. Однако данный пакет является коммерческим. Разумеется, этот факт затрудняет широкое использование пакета Matlab. Но существуют свободно распространяемые альтернативы данного пакета. В качестве примера можно привести программную систему Scilab.
Scilab – это система компьютерной математики, являющаяся самым полным аналогом пакета Matlab, предназначенная для выполнения научных и инженерных вычислений. В системе Scilab реализованы следующие методы решения вычислительных задач:
– задачи линейной алгебры;
– нелинейные уравнения и системы уравнений;
– обработка экспериментальных данных;
– интегрирование и дифференцирование;
– обыкновенные дифференциальные уравнения и их системы.
Scilab позволяет работать с большим числом специальных функций (Бесселя, Неймана и т.д.), имеет средства для построения и работы с графиками. Для выполнения численных расчётов могут использоваться библиотеки Lapack, LINPACK, Atlas и другие. Для решения нестандартных задач имеется встроенный объектно ориентированный язык программирования, sci-язык, с помощью которого пользователь может создавать свое визуальное приложение в виде отдельной программы. Кроме того, в состав Scilab входит утилита, осуществляющая конвертирование документов из Matlab в Scilab, что немаловажно при разработке программ в системе Scilab, использующих готовые модули пакета Matlab.
Рассмотрим более подробно основные возможности программной системы Scilab при решении различных задач вычислительной математики.
1. Решение задач линейной и нелинейной алгебры.
Система Scilab позволяет решать многие задачи линейной алгебры, к которым относятся операции над матрицами (сложение, вычитание, умножение матриц, умножение матрицы на число, возведение в степень, определение определителя, ранга, ядра матрицы, нормы квадратной матрицы, нахождение обратной и псевдообратной матриц, вычисление собственных значений и собственных векторов квадратной матрицы, треугольное разложение матрицы), решение систем линейных уравнений и др. Также Scilab предоставляет возможность решения задач нелинейной алгебры. Это задачи определения корней полинома, решения трансцендентных уравнений, решения систем нелинейных уравнений. Приведем примеры некоторых задач.
Стандартной задачей линейной алгебры является поиск решения системы линейных уравнений.
Допустим, необходимо найти решение системы линейных уравнений
Решение системы линейных уравнений в Scilab осуществляется по команде linsolve (A, b).
A = [1 2; 1 1]; b = [- 7; – 6].
Выполняем команду определения решения системы
и видим результат – значение вектора :
Безусловно, данная задача является одной из наиболее простых, но первоначальное знакомство с системой Scilab следует осуществлять на подобных задачах.
Рассмотрим задачу LU-разложения матрицы, т.е. представление матрицы А в виде А = C·L·U, где L и U – соответственно нижняя и верхняя треугольные матрицы, все четыре матрицы квадратные и одного порядка.
Пусть матрица А имеет вид
.
A = [2 -1 5;3 2 -5;1 1 -2].
Выполним команду LU-разложения:
Достаточно распространенным заданием нелинейной алгебры является поиск корней полинома. В качестве примера рассмотрим полином .
Первоначально зададим вектор коэффициентов полинома (в порядке возрастания степеней):
Определим полином р:
.
Найдем корни полинома:
X = (0.3788210 + 1.2819084i, 0.3788210 – – 1.2819084i, – 0.5454877 + 0.2748651i, – 0.5454877 – 0.2748651i)
2. Дифференцирование и интегрирование функций.
В системе Scilab реализованы часто применяемые функции численного интегрирования и дифференцирования. Рассмотрим примеры некоторых заданий.
Пусть требуется вычислить значение производной функции f(x) = 2×4 – 8×3 + 8×2 –1 в точке x = 3. Для этого в Scilab реализована команда g = numdiff(fun,x).
Сначала задаем функцию f:
function f = my(x), f = 2*x^4-8*x^3 + + 8*x^2-1, endfunction.
Далее выполняем команду для вычисления производной функции в точке:
Получаем значение производной:
Рассмотрим задачу вычисления определенного интеграла
.
Зададим подынтегральную функцию:
function y = f(x), y = x/sqrt(2 + cos(x)), endfunction.
Запишем команду вычисления определенного интеграла функции на отрезке от 0 до 5:
Значение определенного интеграла равно
Величина ошибки при этом er = 3.264D-09.
3. Дифференциальные уравнения.
В Scilab существует возможность решения обыкновенных дифференциальных уравнений, а также дифференциальных уравнений в частных производных.
Рассмотрим решение дифференциального уравнения
Отсюда .
Определим функцию, содержащуюся в правой части уравнения:
function yd = f(t, x), yd = – x + cos(t*x), endfunction.
Зададим начальное значение х, диапазон значений t.
x0 = 2; t0 = 0; t = 0:1:35.
Найдем решение дифференциального уравнения:
y = ode(x0, t0, t, f).
Построим график найденной функции – решения исходной задачи:
4. Обработка экспериментальных данных.
В системе Scilab реализованы сплайн-интерполяция, метод наименьших квадратов, расчет коэффициентов регрессии и другие функции, используемые для обработки результатов эксперимента.
Рис. 1. Графическое решение дифференциального уравнения
Рис. 2. Графическая интерпретация задачи
Рассмотрим решение задачи построения аналитической зависимости, наиболее точно описывающей результаты экспериментов, методом наименьших квадратов.
Система уравнений
Нужно решить систему уравнение в Scilab.
Перерыл уже все форумы и все объяснения, но так и не могу понять, как и с помощью чего решать это?
система уравнений
cos(x-1) + y = 0,5
x – cos(y) = 3
Есть какие-то идеи или мб что почитать по этому поводу?
Система уравнений
Подскажите пожалуйсто, как в Scilab решать систему уравнений с двумя неизвестными?
Система нелинейных уравнений в Scilab
Здравствуйте. Сразу скажу, что я только начал изучать Scilab. Пытаюсь решить систему нелинейных.
Система уравнений.
помогите решить систему уравнений y-3x=-5 2y+5x=23
система уравнений
не могу понять как закончить систему уравнений. Помогите разобраться
Посмотрел. Не нашел нужного мне там.
Добавлено через 37 минут
Точнее не так. Там есть нечто похожее. Но я не знаю как это применить, иначе бы уже решил. По этому хочу узнать у форумчан. Мне решать через function?
То есть нечто такое.
Дальше нужно узнать точки пересечения графиков. Но как их тут построить – я не знаю :/
Добавлено через 1 минуту
да и саму функциюю, скорее всгео тоже не правильно указал.
Читал. Но опять же, как построить график функции этого всего?
Добавлено через 13 минут
Да и если даже прогонять программу из примера, то там выдает ошибку размеров.
Добавлено через 17 часов 34 минуты
Больше никакого материала нет? Или хотя бы подсказки?
Чего-же там непонятного? Все подробно разьяснено в главе из книги. Воспроизведите, покажите код, какие ошибки появляются.
fsolve: перехвачено исключение в подпрограмме ‘fct’.
либо такая :
fsolve: перехвачено исключение в подпрограмме ‘fct’.
на строке 2 функции fun
во встроенных fsolve
Подматрица некорректно определена.
Тоже самое появляется теперь, когда свою прогу пытаюсь сделать.
Примеры из книги (задачи 6.8 и 6.9) решаются без проблем – проверено.
Без привязки к коду, трудно понять где появляется ошибка. Воспроизведите Ваш код здесь.
Как это делать?
В соседней теме написано, что fsolve не допускает ограничения области определения аргумента, может ли это быть из-за этого (в задании указано, что решить нужно именно с помощью fsolve)?
Может, я неправильно выразил y? Изначально были даны уравнения:
График во вложении.
Я неправильно задал функцию. Нужно было так:
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.
Система уравнений!
Может помочь кто нибудь? Буду весьма благодарен Графически решить систему уравнений.
система уравнений
такая проблема – маткад не считает систему уравнений. как я понимаю, ему не нравится одно из.
Система уравнений в Zp
Доброго дня всем! Решить систему в Zp(p – простое) и найти p, при котором решение единственное.
Система уравнений
Помогите розвязать систему уравнений
Обзор математических пакетов ( Mathad, Matlab, Scilab и др.)
Содержание
1 Обзор математических пакетов ( Mathad, Matlab. Scilab и др.) 3
2 Краткая характеристика пакета Scilab 8
3 Примеры выполнения различных операторов в Scilab 10
3.1 Арифметические выражения 10
3.3 Работа с одномерными и двумерными массивами 11
3.4 Решение систем линейных уравнений 14
3.5 Построение двумерных графиков функций 16
3.6 Решение алгебраических уравнений 18
3.7 Решение систем нелинейных уравнений 19
3.8 Нахождение определённых интегралов 19
3.9 Нахождение производных ‘ 20
Обзор математических пакетов ( Mathad, Matlab, Scilab и др.)
Mathcad — система компьютерной алгебры из класса систем автоматизированного проектирования, ориентированная на подготовку интерактивных документов с вычислениями и визуальным сопровождением, отличается лёгкостью использования и применения для коллективной работы.
Mathcad имеет интуитивный и простой для использования интерфейс пользователя. Для ввода формул и данных можно использовать как клавиатуру, так и специальные панели инструментов.
Несмотря на то, что эта программа, в основном, ориентирована на пользователей-непрограммистов, Mathcad также используется в сложных проектах, чтобы визуализировать результаты математического моделирования путём использования распределённых вычислений и традиционных языков программирования. Также Mathcad часто используется в крупных инженерных проектах, где большое значение имеет трассируемость и соответствие стандартам.
Среди возможностей Mathcad можно выделить:
– решение дифференциальных уравнений, в том числе и численными методами;
– построение двумерных и трёхмерных графиков функций (в разных системах координат, контурные, векторные и т. д.);
– использование греческого алфавита как в уравнениях, так и в тексте;
– выполнение вычислений в символьном режиме;
– выполнение операций с векторами и матрицами;
– символьное решение систем уравнений;
– поиск корней многочленов и функций;
Mathcad относится к системам компьютерной алгебры, то есть средств автоматизации математических расчетов. В этом классе программного обеспечения существует много аналогов различной направленности и принципа построения.
Разработчики Mathcad сделали ставку на расширение системы в соответствии с потребностями пользователя. Для этого назначены дополнительные библиотеки и пакеты расширения, которые можно приобрести отдельно и которые имеют дополнительные функции, встраиваемые в систему при установке, а также электронные книги с описанием методов решения специфических задач, с примерами действующих алгоритмов и документов, которые можно использовать непосредственно в собственных расчетах. Кроме того, в случае необходимости и при условии наличия навыков программирования вC, есть возможность создания собственных функций и их прикрепления к ядру системы через механизм DLL.
MATLAB
MATLAB — пакет прикладных программ для решения задач технических вычислений и одноимённый язык программирования, используемый в этом пакете. MATLAB предоставляет пользователю большое количество (несколько сотен) функций для анализа данных, покрывающие практически все области математики, в частности:
– матрицы и линейная алгебра — алгебра матриц, линейные уравнения, собственные значения и вектора, сингулярности, факторизация матриц и другие;
– многочлены и интерполяция — корни многочленов, операции над многочленами и их дифференцирование, интерполяция и экстраполяция кривых и другие;
– математическая статистика и анализ данных — статистические функции, статистическая регрессия, цифровая фильтрация, быстрое преобразование Фурье и другие;
– дифференциальные уравнения — решение дифференциальных и дифференциально-алгебраических уравнений, дифференциальных уравнений с запаздыванием, уравнений с ограничениями, уравнений в частных производных и другие;
– разреженные матрицы — специальный класс данных пакета MATLAB, использующийся в специализированных приложениях.
MATLAB предоставляет удобные средства для разработки алгоритмов, включая высокоуровневые с использованием концепций объектно-ориентированного программирования. В нём имеются все необходимые средства интегрированной среды разработки, включая отладчик и профайлер. Функции для работы с целыми типами данных облегчают создание алгоритмов для микроконтроллеров и других приложений, где это необходимо.
Для MATLAB имеется возможность создавать специальные наборы инструментов (англ. toolbox), расширяющие его функциональность. Наборы инструментов представляют собой коллекции функций, написанных на языке MATLAB для решения определённого класса задач. Компания Mathworks поставляет наборы инструментов, которые используются во многих областях, включая следующие:
– цифровая обработка сигналов, изображений и данных: DSP Toolbox, Image Processing Toolbox, Wavelet Toolbox, Communication Toolbox, Filter Design Toolbox — наборы функций, позволяющих решать широкий спектр задач обработки сигналов, изображений, проектирования цифровых фильтров и систем связи;
– системы управления: Control Systems Toolbox, µ-Analysis and Synthesis Toolbox, Robust Control Toolbox, System Identification Toolbox, LMI Control Toolbox, Model Predictive Control Toolbox, Model-Based Calibration Toolbox — наборы функций, облегчающих анализ и синтез динамических систем, проектирование, моделирование и идентификацию систем управления, включая современные алгоритмы управления, такие как робастное управление, H∞-управление, ЛМН-синтез, µ-синтез и другие;
Scilab
Scilab — пакет прикладных математических программ, предоставляющий открытое окружение для инженерных (технических) и научных расчётов. Это самая полная общедоступная альтернатива MATLAB. Scilab был спроектирован как открытая система, и пользователи могут добавлять в него свои типы данных и операции путём перегрузки. системе доступно множество инструментов:
– 2D и 3D графики, анимация;
– линейная алгебра, разреженные матрицы (sparse matrices);
– полиномиальные и рациональные функции;
– симуляция: решение ОДУ и ДУ;
– scicos: гибрид системы моделирования динамических систем и симуляции;
– дифференциальные и не дифференциальные оптимизации;
– работа с компьютерной алгеброй.
Scilab позволяет работать с элементарными и большим числом специальных функций (Бесселя, Неймана, интегральные функции), имеет мощные средства работы с матрицами, полиномами (в том числе и символьно), производить численные вычисления (например, численное интегрирование) и решение задач линейной алгебры, оптимизации и симуляции, мощные статистические функции, а также средство для построения и работы с графиками.
В состав пакета также входит Scicos — инструмент для редактирования блочных диаграмм и симуляции (аналог simulink в пакете MATLAB). Имеется возможность совместной работы Scilab с программой LabVIEW. Программа доступна для различных операционных систем, включая Linux и Microsoft Windows.