【发布时间】:2019-01-09 19:34:54
【问题描述】:
这里我写了一个动态函数:
function dAx = dynamic(t,x)
global u;
g = 9.8;
l = 0.5;
m = 0.5;
h = 2;
dx(1,1) = x(2);
dx(2,1) = g/l*sin(x(1))-h/(m*l^2)*x(2)+1/(m*l)*cos(x(1))*u(1,1);
dx(3,1) = g*lcos(x(3))-u(2,1);
A = [x(1)*x(2)+10*x(1);10*x(2)-5*x(1);x(3)]
dx = 1e-3
dAx = [(((x(1)+dx)+(x(1)-dx))*((x(2)+dx)+(x(2)-dx)))/(2*dx)+(10*(x(1)+dx)+(x(1)-dx))/(2*dx);
((10*(x(2)+dx)+(x(2)-dx))-5*((x(1)+dx)+(x(1)-dx)))/(2*dx);
((x(3)+dx)+(x(3)-dx))/(2*dx)]; % dA/dx using central derivative method computation
这里有一个矩阵A (3*1),函数输出是与系统状态相关的derivative of matrix A。
我尝试使用中心差分法。我的导数矩阵计算是否正确?
【问题讨论】:
-
我投票决定将此问题作为题外话结束,因为这是与数学相关的问题。
-
@lahidj 您希望我们校对您的 MATLAB 代码或数学?
-
如果可能的话,两个都可以。
标签: matlab math differential-equations