Слайд 1Эффективные алгоритмы численного решения
алгебраических уравнений, расчета производных, решение
систем линейных алгебраических и
дифференциальных
уравнений в Scilab.
Выполнил : студент группы МДМ-115
Физико-математического факультета
Ерина Оксана
Проверила : Кормилицына Т.В.
Слайд 2Scilab
Scilab (/ˈsaɪlæb/) — пакет прикладных математических программ, предоставляющий открытое окружение для
инженерных (технических) и научных расчётов. Это самая полная общедоступная альтернатива MATLAB.
Слайд 3Возможности
Система позволяет :
решать задачи линейной алгебры;
решать нелинейные уравнения и системы;
решать
задачи оптимизации;
дифференцировать и интегрировать;
решать обыкновенные дифференциальные уравнения и системы.
обрабатывать экспериментальные данные (интерполяция и аппроксимация, метод наименьших квадратов);
создавать различные виды графиков и поверхностей.
Слайд 4Решение алгебраических уравнений
Любое уравнение P (x) = 0, где P
(x) это многочлен, отличный от нулевого, называется алгебраическим уравнением или полиномом. Решение алгебраического уравнения в Scilab состоит из двух этапов. Необходимо задать полином P (x) с помощью функции poly, а затем найти его корни, применив функцию roots.
Итак, определение полиномов в Scilab осуществляет функция poly(a, "x ["fl"]),
a-это число или матрица чисел, x-символьная переменная, fl-необязательная символьная переменная, определяющая способ задания полинома.
Слайд 5Пример решения алгебраических уравнений
пример отражает создание полинома p, имеющего в
качестве корня тройку, и полинома f с коэффициентом 3.
-->p=poly(3,’x’,’r’);
-->f=poly(3,’x’,’c’);
-->p p = - 3 + x
-->f
f = 3
Слайд 6Расчет производных
В Scilab можно вычислять производную функции в заданной точке.
Вычисление происходит при помощи команды
numdiff(f,x0),
гдеf — имя дифференцируемой функции переменнойх,x0 — координата точки в которой необходимо вычислить производную.
Слайд 7Пример нахождения производной
-->functionl=f(x),l=16/(sqrt(x^2-5*x+8))endfunction
После чего, воспользовавшись командой numdiff, вычислить производную функции в точкеx0=4
-->numdiff(f,4)
ans
=-3.0000001
Слайд 8СЛАУ
Система m уравнений с n неизвестными вида:
a11x1 + a12x2
+ · · · + a1nxn = b1 ,
a21x1 + a22x2 + · · · + a2nxn = b2,
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
am1x1 + am2x2 + · · · + amnxn = bm
называется системой линейных алгебраических уравнений (СЛАУ), причем xj — неизвестные, aij — коэффициенты при неизвестных, bi — свободные коэффициенты (i = 1 ... m, j = 1 ... n). Система из m линейных уравнений с n неизвестными может быть описана при помощи матриц:
A · x = b, где x — вектор неизвестных, A — матрица коэффициентов при неизвестных или матрица системы, b — вектор свободных членов системы или вектор правых частей. Совокупность всех решений системы (x1,x2,... ,xn) называется множеством решений или просто решением системы
Слайд 9Пример решение СЛАУ
Решить систему линейных уравнений методом Гаусса:
2x1 − x2
+ 5x3 = 0 ,
3x1 + 2x2 − 5x3 = 1 ,
x1 + x2 − 2x3 = 4 .
Слайд 10Диффиренциальные уравнения
Дифференциальным уравнением n-го порядка называется соотношение вида
H(t,x,x′ ,x′′,...,x(n)
) = 0
Решением дифференциального уравнения является функция x(t), которая обращает уравнение в тождество. Системой дифференциальных уравнений n-го порядка называется система вида:
x ′ 1 = f1(t,x1,x2,... ,xn)
x ′ 2 = f2(t,x1,x2,... ,xn)
· · ·
x ′ n = fn(t,x1,x2,... ,xn)
Решение системы — вектор, который обращает уравнения системы в тождества:
x(t) =
x1(t)
x2(t)
. . .
xn(t)
Дифференциальные уравнения и системы имеют бесконечное множество решений, которые отличаются друг от друга константами. Для однозначного определения решения требуется задать дополнительные начальные или граничные условия. Количество таких условий должно совпадать с порядком дифференциального уравнения или системы
Слайд 11Пример
Решить задачу Коши x ′ = cos(xy), y ′ =
sin(x + ty), x(0) = 0, y(0) = 0. на интервале [0; 10].
//Функция, описывающая систему дифференциальных уравнений
Function
dy=syst(t,y)
dy=zeros(2,1);
dy(1)=cos(y(1)*y(2));
dy(2)=sin(y(1)+y(2)*t);
endfunction
//Решение системы дифференциальных уравнений x0=[0;0];t0=0;t=0:*0.1*:10;y=ode(x0,t0,t,syst);
//Формирование графического решения
plot(t,y)
Слайд 12Вывод
На основе анализа теории и примеров можно сделать вывод, что
Scilab становится не просто «вычислялкой» отдельных небольших примеров, а настоящей «средой программирования с математическим уклоном», позволяющей создавать свои собственные математические «типы данных» — числовые системы, функционалы — и полноценные программные модули, которые могут использовать весь встроенный (или также собственноручно достроенный) функционал Scilab.