Моделирование в MATLAB/Simulink и SCILAB/Scicos - page 229

227
полиномом Ньютона (7.2), построенном для системы узлов
(
)
n kx xx
k
,...,
,
1 0
, и
вычисляют производные
( )
x f
y
′ =′
,
( )
x f
y
′′ =′′
и т.д.
−∆ = ′
5 4 3 2
1 ) (
0
5
0
4
0
3
0
2
0
0
y
y
y
y
y
h
xy
(24.2)
В Scilab численное дифференцирование реализовано командой
dy=diff(y[,n])
где
y
– значения функции
y
(
x
) в виде вектора вещественных чисел,
n
– порядок
дифференцирования. Результат работы функции – вектор вещественных чисел
dy
,
представляющий собой разности порядка
n
интерполяционного полином
Ньютона
y
y y
k
∆ ∆∆
,
,
2
.
Пример 24.5.
Найти
y'
(50) функции
( )
y lg x
=
, заданной в виде таблицы.
Для решения задачи следует записать последовательность операторов
-->h=5;
-->x=50:5:65
x =
50. 55. 60. 65.
-->y=log10(x)
y =
1.69897 1.7403627 1.7781513 1.8129134
-->dy=diff(y)
dy =
0.0413927 0.0377886 0.0347621
-->dy2=diff(y,2)
dy2 =
- 0.0036041 - 0.0030265
-->dy3=diff(y,3)
dy3 =
0.0005777
-->//Приближенное значение y'(50) по формуле (6.2)
-->Y=(dy(1)-dy2(1)/2+dy3(1)/3)/h
Y =
0.0086775
24. 5. Вычисление производной функции в точке. Приближенное
вычисление частных производных
Более универсальной командой дифференцирования является команда
g=numdiff(fun,x),
где
fun
– имя функции, задающей выражение для дифференцирования. Функция
должна быть задана в виде
[
]
(
)
n
p ppx fun y
,...,
, ,
2 1
=
, где
x
– переменная по
которой будет проводиться дифференцирование. Если параметры
n
p pp
,...,
,
2 1
присутствуют в описании функции, то должны быть обязательно определены
при вызове, например так:
g=numdiff(list(fun,p
1
,p
2
,..p
n
),x).
Результат работы функции – матрица.
1...,219,220,221,222,223,224,225,226,227,228 230,231,232,233,234,235,236,237,238,239,...286
Powered by FlippingBook