matlab - 关于斜率(衍生物)的问题

时间:2013-02-06 18:41:35

标签: matlab math

我有一个函数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 =>谷,x = -2,-1峰,x = -1,0谷,x = 0.2谷,x = 2,4峰。

这是对的吗?另外,为了绘制斜率,我使用ezplot(der)

2)我需要找到斜率的下降(y的最大和最小值之间的差异)。 我怎么能找到它,因为y是象征性的?

3)如果我想找到度数的斜率,我该怎么办?

4)如果我有x和t数据(位置和时间)并且我想计算速度,我就这么做?

v=x./t;
result=diff(v)

-------- UPDATE ---------------

对于我的上一个问题:

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。为什么会这样?

1 个答案:

答案 0 :(得分:2)

我对matlab并不熟悉,但我会给你一些关于数学的指示。你定义:

 y(x) = 0.025*x^2 - 0.24*x + (1/(x^2+1))

这是添加图片中的蓝色曲线。我们可以采用x的导数来找到:

 dy(x)/dx = 0.1*x - 0.24 - (2*x/(1+x^2)^2)

这是紫色曲线。我真的不知道你的意思是什么?峰值'和'山谷'但如果您分别指y(x)的最大值和最小值,则答案不正确。通过查找导数y(x)为零的x值,可以找到dy/dx中的最大值或最小值。你可以通过查看图片来确认这一点。在x=3红色曲线为零,因为y(x)具有最小值。 (注意,通过找到导数为零的点x,不会告诉您它实际上是最大值还是最小值,只是它是极值值。)

Plot of y(x) and the derivative with respect to x, dy/dx

2)您可以按如下方式找到曲线中的下降。首先确定最大值xx1 x2的{​​{1}}值(即求解dy(x)/dx == 0)。然后下降abs( y(x1) - y(x2) )

3)正式曲线没有一个斜率 - 它是弯曲的,因此其斜率随x变化。但是,如果您的意思是最大和最小之间的平均斜率,那么它就是简单的几何形状。您在xy中有位移,查看函数tan,您就能找到答案。

祝你好运