Вычисление производной отаналитической функции
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Версия системы 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, полученные двумя способами, полностью совпали.

 

--> // Вычисление производной от функции f(x) в точке х=3 --> --> deff('[y] = f(x)','y = 2^x – 4 * x'); // Описаниеисходной функции --> --> numderivative(f, 3) // Вычисление производной функции f в точке х=3  ns = 1.5451774 --> --> // Вычисление производной, заданной аналитическим выражением в точке -->deff('[y1] = f1(x)','y1 = 2^x*log(2) - 4'); // Производная функции --> f1(3)                                  // Значение в точкех=3  ans = 1.5451774

 

Рис. 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.

 

--> // Вычисление частных производных функции трех переменных --> --> deff('s = f(x)', 's = x(1)^2*x(2) + x(2)^2*x(3) + x(3)^2*x(1)') --> -->x = [1 3 6];    // Вектор значений переменных -->numderivative(f, x, 2) // Вычисление второй производной ans = 42. 37. 21.

 

Рис.2.3.2-3. Вычисление значений частных производных от функции трех переменных с использованием функции numderivative

 

    Вычислить дифференциальную ёмкость нелинейного элемента с ВАХ:
q=2u3+u2+5 в точке U0=1 В. Решение приведено на рис. 2.3.2-4.

 

-->// Вычисление дифференциальной ёмкости Cd ВАХ нелинейного элемента -->Uo = 1; --> // Загрузка и выполнение сценария РИС2324 --> exec('РИС2324.sce', 0) --> mprintf('Cd = %g ' ,Cd);  Cd = 8

 

Рис.2.3.2-4. Вычисление дифференциальной ёмкости нелинейного элемента

    Построить касательную к функцииf ( x )= ( 3*x2-7 ) / ( 2*x+1 ) (рис. 2.3.2-4).

 

 

Рис.2.3.2-5. Построение уравнения и графика производной функции



Дата: 2019-11-01, просмотров: 971.