Версия системы Scilab 6.01, к сожалению, не позволяет получить аналитических выражений производных от функции f ( x ). Однако в ней имеется функция Scilab numderivative, предназначенная для вычисления значений производных 1-го или 2-го порядка в заданных точках от аналитических функций. Эта функция имеет следующие форматы:
numderivative( f , x )
J =numderivative( f , x )
J=numderivative(f,x,h)
h=numderivative(f,x,h,order)
[J,H]=numderivative (f,x,h,order).
Входные параметры:
f – функция или список функций, от которых берутся производные;
х – вектор значений независимых переменных, в которых вычисляются производные;
h– шаг, используемый в конечно-разностных приближениях. Если h не указан, то шаг по умолчанию вычисляется в зависимости от х и порядка. Если h-матрица 1х1, то она расширяется до того же размера, что и х;
order– порядок конечных разностей (порядок по умолчанию равен 2), доступные значения order: 1, 2 или 4.
Выходные параметры:
J – матрица (необязательный параметр), для функции от одной переменной размером 1х1, для функции от двух переменных – 2х2 (значения частных производных выводятся на ее диагонали);
H– матрица (необязательный параметр), в которую выводятся частные производные второго порядка.
На рис.2.3.2-1 приведены два варианта вычисления значения производной в точке х=3 от функций, описанных с использованием оператора deff. Причем, в первом примере значение производной вычислено с помощью функции numderivative, а во втором – с использованием выражения производной, полученного заранее в явном виде. Как показали приведенные вычисления, числовые значения производных в точке х=3, полученные двумя способами, полностью совпали.
![]() |
Рис. 2.3.2-1. Вычисление производной в точке функцией numderivative
На рис. 2.3.2-2 приведены примеры получения выражений производной от полинома, созданного в аналитическом виде (использование функции derivat)и значения производных в точках x = [1 3 6] (использованиефункции numderivative).
--> // Вычисление производных полинома
-->
-->p = poly([1, 2, 3], "x", "c") // Определение полинома
p =
1 +2x +3x2
-->p1 = derivat(p) // Определение производной от полинома
p1 =
2 +6x
-->ps = pol2str(p) // Преобразование полиноминальное представление
-->// полинома в символьную строку функцией pol 2 str
-->
ps =
1+2*x+3*x^2
-->
-->deff('[sd] = fd(x)', 's = 1 + 2 * x + 3 * x^2') // Описаниефункции fd
--> x = [1 3 6];
--> numderivative(fd, x)
ans =
8. 0. 0.
0. 20. 0.
0. 0. 38.
-->
-->deff('sp = fp(x)', 'sp='+ ps) // Описание функции fp с использованием sp
--> numderivative(fp, x)
ans =
8. 0. 0.
0. 20. 0.
0. 0. 38.
Рис. 2.3.2-2. Вычисление производных от полинома
Функция numderivativeпозволяет вычислить и значения частных производных. На рис. 2.3.2-3приведен пример вычисления частных производных от функции трех переменных f ( x 1 , x 2 , x 3 )= x 1 2 x 2 + x 2 2 x 3 + x 3 2 x 1 при х1=1, x 2 =3 и х3=6.
![]() |
Рис.2.3.2-3. Вычисление значений частных производных от функции трех переменных с использованием функции numderivative
Вычислить дифференциальную ёмкость нелинейного элемента с ВАХ:
q=2u3+u2+5 в точке U0=1 В. Решение приведено на рис. 2.3.2-4.
![]() |
![]() |
Рис.2.3.2-4. Вычисление дифференциальной ёмкости нелинейного элемента
Построить касательную к функцииf ( x )= ( 3*x2-7 ) / ( 2*x+1 ) (рис. 2.3.2-4).
![]() |
![]() |
Рис.2.3.2-5. Построение уравнения и графика производной функции
Дата: 2019-11-01, просмотров: 1059.