我有一个问题要解决:
考虑一个系统的动力学给出。
xdot=x^3-7x^2+7x+15其中x是位置,xdot是速度。
如何生成MATLAB代码,为这个系统绘制流程图xdot和x,并确定三个平衡点。我的解应该是一个名为"eq_points“的向量,其中x=eq_points(i)是一个平衡点。
x=?
xdot=?
eq_points=?我试过这个:
xdot=@(x)(x^3-7*x^2+7*x+15)然后
fplot(xdot,[-1000 1000])我看到了情节,但我如何回答这三个问题:
x=?
xdot=?
eq_points=?请让我在Matlab新手,任何帮助都将是伟大的。
发布于 2014-10-15 06:45:12
这是一个简单的多项式。在这种情况下,平衡点是多项式的根。通过生成系数向量,在Matlab中进行多项式表示。
% xdot=x^3-7*x^2+7*x+15;
p = [1, -7, 7, 15]; % polynomial representation in Matlab
x = [-2:0.1:6]; % good xrange for visualization
figure
plot(x, polyval(p, x)) % evaluate polynomial p at x and plot
r = roots(p); % roots of polynomial (5, 3 and -1)
hold on;
plot(r, polyval(p, r), 'ro') % polyval(p, r) should be very close to [0, 0, 0]结果如下:

编辑:备选方案
您还可以通过fzero(xdot, x0)使用匿名函数一次查找一个根,其中x0是迭代的起点。根据起点的不同,您可以找到不同的根。作为例子
xdot=@(x)(x^3-7*x^2+7*x+15);
fzero(xdot, 0)
ans =
-1
fzero(xdot, 2)
ans =
3
fzero(xdot, 10)
ans =
5.0000https://stackoverflow.com/questions/26375306
复制相似问题