Операторы, вычисляющие значение функции
Ниже приводится пример вычисления интеграла .
Фрагмент программы function y=f(x) y=2*x./(sin(x)+1.5)endfunctionz=intg(2,5.3,f), disp(z) | Результат 30.437056 |
Для решения нелинейных уравнений в Scilab используется функция
fsolve(x0,f) ,
где x0 –начальное приближение корня, f– функция, описывающая левую часть уравнения f(x)=0.
Например, для решения уравнения для начального приближения нужно выполнить следующие команды:
Фрагмент программы deff('y=F(x)', 'y=sin(2*x)-cos(3*x.^2)-sin(3*x)')root=fsolve(7,F)disp(root) | Результат 6.9755674 |
Для решения полиномиальных уравнений вида используется функция
roots(a),
где а – вектор коэффициентов перед неизвестными полинома размерностью n+1(n – порядок полинома).
Результатом работы этой функции будет вектор корней полинома размерностью n.
Пример решения полиномиального уравнения приведен ниже.
Фрагмент программы v=[3 1 -10 -8]R=roots(v)disp(R) | Результат 2. - 1.3333333 - 1. |
Для уравнения два корня – комплексные.
Фрагмент программы v=[3 1 -10 8]R=roots(v)disp(R) | Результат - 2.2935835 0.9801251 + 0.4494650i 0.9801251 - 0.4494650i |
Функция rootsможет также принимать в качестве параметра полином, созданный функциейpolyи представляющий собой левую часть уравнения :
poly(a, x, f1 ),
где a –вектор коэффициентов полинома записанных в обратном порядке, x - символьная переменная, f1– символьная переменная, принимающая значения 'c' или 'r' (roots или coeff).
Например, чтобы создать полином , нужно использовать команду
Фрагмент программы p=poly([3 -2 1 0 4],'x','c')disp(p) | Результат |
Для решения уравнения можно выполнить следующие команды:
Фрагмент программы p=poly([-8 -10 1 3],'x','c')R=roots(p)disp(R) | Результат 2. - 1.3333333 - 1. |
Для решения систем линейных уравнений в Scilab есть следующие способы:
- применение операции левого матричного деления;
- использование обратной матрицы.
Если задана система линейных алгебраических уравнений вида:
AX=B,
где А – матрица коэффициентов перед неизвестными системы, В – вектор свободных членов, то решение системы может быть найдено в виде:
Х=А \ B
То же самое решение может быть получено с помощью обратной матрицы, например:
X=inv(A)*B
Например, решить систему уравнений
можно так:
Фрагмент программы A=[3 1;-3 5]; B=[-4 ;36]; X=inv(A)*B, disp(X)или X1=A\B , disp(X1) | Результат - 3.1111111 5.3333333 |
Для решения систем нелинейных уравнений можно использовать функцию
fsolve(x0,f),
где x0 –вектор начальных приближений для неизвестных, f –функция, определяющая систему
Например, решение системы можно выполнить следующим образом:
Фрагмент программы function [y]=fun(x) y(1)=2*x(1)+x(2)-6 y(2)=x(1)^2+x(2)^2-14endfunctionX0=[1;1]R=fsolve(X0,fun)disp(R) | Результат 1.2338096 3.5323808 |
Практическая часть
Задание 1. Вычисление определенного интеграла