【发布时间】:2016-10-30 21:21:23
【问题描述】:
我想用matlab计算一个函数的一阶导数。但是,我不知道函数的公式,我只能访问它的输入和输出。 例如:
f([1 2 3 4 5]) = [1 4 9 16 25]; %Square function for the example
我对以下输出不满意:
diff([1 2 3 4 5]) %Which is [3 5 7 9]
我在这个论坛上看到,我不是唯一一个尝试用 matlab 计算函数的一阶导数的人。但是因为我不知道我的函数的数学公式,所以我不能使用符号数学工具箱。
所以我的问题是:
- 如何只知道函数的输入和输出,在 matlab 中计算函数的导数?
- 我能否找到一种方法来检索我的函数的数学公式,以便我可以使用符号数学工具箱?
感谢您的帮助。
【问题讨论】:
-
为什么对
diff不满意?它有什么具体问题? -
@Luis 它没有给你
[2, 4, 6, 8, 10],它是x^2:P的派生词 -
@JaneDoe 严肃地说:有一个应用数学领域称为“数值微分”。如果您不知道基础功能,则必须进行近似。用这个关键字谷歌,看看你找到了什么。
-
你可以做一个
polyfit然后区分它? -
您正在寻找有限差分近似:en.wikipedia.org/wiki/Finite_difference。还有一个巧妙的变体,它使用通常具有更高精度的复杂步长微分:blogs.mathworks.com/cleve/2013/10/14/…
标签: matlab diff derivative