我有一个函数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。为什么会这样?
答案 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
,不会告诉您它实际上是最大值还是最小值,只是它是极值值。)
2)您可以按如下方式找到曲线中的下降。首先确定最大值x
和x1
x2
的{{1}}值(即求解dy(x)/dx == 0
)。然后下降abs( y(x1) - y(x2) )
。
3)正式曲线没有一个斜率 - 它是弯曲的,因此其斜率随x
变化。但是,如果您的意思是最大和最小之间的平均斜率,那么它就是简单的几何形状。您在x
和y
中有位移,查看函数tan
,您就能找到答案。