Эффективные алгоритмы численного решения уравнений, систем, расчета производных, интегралов в Scilab
Выполнила
Сачкова Юлия МДМ-213
Scilab — это математическая система для выполнения технических (числовых) расчетов, которая по характеру работы и принципам архитектуры схожа с известной математической системой MATLAB. Основным элементом данных в системе является массив, то есть система с самого начала ориентирована именно на работу с данными в табличном виде.
Пакет поддерживает основные элементарные и множество специальных функций, применяемых в математике. Scilab содержит также мощный набор средств для работы с полиномами — как обычными, так и матричными. Например, имеются операторы для создания полинома с заданными корнями или коэффициентами, вычисления корней полинома (до сотой степени), деления двух полиномов, нахождения наибольшего общего делителя и наименьшего общего кратного нескольких полиномов и выполнения десятков других важных операций над полиномами.
Особенностью пакета является то, что он предназначен почти исключительно для реализации численных методов и по умолчанию оперирует с любыми значениями как с числами с плавающей точкой. Если мы введем какое-нибудь целочисленное выражение, например сумму 1 + 2, Scilab возвратит результат в виде числа с плавающей точкой. Для того чтобы система воспринимала подобные выражения как целые числа, необходимо использовать специальные команды.
- Scilab – это система компьютерной математики, которая предназначена для выполнения инженерных и научных вычислений, таких как:
- решение нелинейных уравнений и систем;
- решение задач линейной алгебры;
- решение задач оптимизации;
- дифференцирование и интегрирование;
- задачи обработка экспериментальных данных (интерполяция и аппроксимация, метод наименьших квадратов);
- решение обыкновенных дифференциальных уравнений и систем.
- Кроме того, Scilab предоставляет широкие возможности по созданию и редактированию различных видов графиков и поверхностей.
- Не смотря на то, что система Scilab содержит достаточное количество встроенных команд, операторов и функций, отличительная ее черта это гибкость. Пользователь может создать любую новую команду или функцию, а затем использовать ее наравне со встроенными.
- К тому же, система имеет достаточно мощный собственный язык программирования высокого уровня, что говорит о возможности решения новых задач.
Решение уравнений
- Для формирования полиномов используется функция poly . Так, для описания из нашего примера обращение к функции poly будет выглядеть следующим образом: g=poly ([-8, 0, 0, 1],’x’,’c’) .
- Последний этап вычисления корней уравнения состоит в вызове встроенной функции Scilab c именем roots (корни, англ.):
- res=roots(g).
- Приведен более короткий вариант реализации того же алгоритма, но теперь уже применительно к решению квадратного уравнения:
- roots ( poly ([-2,-1,1],’x’,’c’)).
- Задание для Scilab выглядит аналогично:
- roots(poly([12, 0, -13, 0, 1],’x’,’c’)).
Решение систем линейных уравнений
- Прежде чем приступить к формированию задачи для Scilab, необходимо привести систему уравнений к виду
- Для нашего примера система будет выглядеть следующим образом:
- Для решения подобных систем уравнений в Scilab существует функция linsolve . Обращение к ней выглядит следующим образом:
- linesolve( K,k ) .
- Общий вид K :
- K=
- Для решаемой системы:
- K=
- Общий вид k : k=
- Для решаемой системы:
Интегрирование в Scilab
- Вычислить определенный интеграл в Scilab можно при помощи функции int (a, b, f) , где а и b —нижний и верхний пределы интегрирования соответственно, f — имя подынтегральной функции.
- Рассмотрим использование функции int на примере вычисления определенного интеграла:
- В данном примере
Вычисление производной в Scilab
- В Scilab можно вычислять производную функции в заданной точке. Вычисление происходит при помощи команды numdiff(f,x 0 ) , где f — имя дифференцируемой функции переменной х, x 0 — координата точки в которой необходимо вычислить производную. Рассмотрим пример применения команды numdiff .
- Вычислим производную функции: