【发布时间】:2013-01-22 02:00:48
【问题描述】:
我有一个函数y=0.05*x.^2 - 0.24*x+(1/(x.^2+1))。
1) 我想找到 x [-4,4] 的斜率,所以我这样做了
syms x;
y=0.05*x.^2 - 0.24*x+(1/(x.^2+1))
der=diff(y)
matrix=subs(der,x,-4:4)
我正在为 x 的不同值找到 y'(x) 的值。 (结果是:-0.6123 -0.4800 -0.2800 0.1600 -0.2400 -0.6400 -0.2000 0 0.1323)
现在,我想确定斜坡的所有峰和谷。 为了找到这个,我从结果中得出对于 x=3 我有 y'(3)=0 => 我有一个临界点。
所以,要找到山峰和山谷,我需要从第 3 点左右看到标志,对吧? 所以,对于 x=-4,-2 =>valley , x=-2,-1 peak, x=-1,0 valley, x=0,2 valley , x=2,4 peak。
这是对的吗?另外,为了绘制斜率,我使用ezplot(der)?
2) 我需要找到斜率的下降(y 的最大值和最小值之间的差异)。 我怎么能找到它,因为 y 是象征性的?
3) 如果我想找到以度为单位的斜率,我该怎么做?
4) 如果我有 x 和 t 数据(位置和时间)并且我想计算速度,我会这样做吗?
v=x./t;
result=diff(v)
--------更新---------------
对于我的最后一个问题,我有:
time=linspace(0,1.2,13);
position=[41,52,61,69,73,75,74,66,60,55,43,27,27];
v=position./time;
vel=diff(v)
plot(time,vel)
但问题是 vel 向量导致 1x12 向量而不是 1x13。为什么会这样?
【问题讨论】:
-
time(1) = 0;在计算v时显然会产生Inf。这就解释了为什么vel有 12 个值而不是 13 个。 -
@fpe:有没有办法制作情节?
-
避免导致
vel(1) = Inf的time(1),您可以致电plot(time(2:end),vel)。顺便说一句,vel代表什么?在我看来这是一种加速