【问题标题】:matlab - questions about slope (derivattives)matlab - 关于斜率(导数)的问题
【发布时间】: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 代表什么?在我看来这是一种加速

标签: matlab math


【解决方案1】:

我对 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的值(即求解dy(x)/dx == 0)。然后下降是abs( y(x1) - y(x2) )。

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

祝你好运

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-13
    • 2011-07-09
    • 2011-07-25
    相关资源
    最近更新 更多