0

作为编程练习,我编写了一个 Matlab 函数,它使用有限差分法找到函数的导数。在一个脚本中,我调用了该函数并希望使用内置函数对其进行检查,除非我无法实现它。

为了进行检查,我使用 diff(eqn) 来获得微分方程,但是我不确定如何使用该方程来求解特定值,例如。x = 2。

这是我的代码:

syms x

eqn= cos(x);

%set value for the derivative to be evaluated at
x2 = 2; 

%create function handle
f = @(x) cos(x); 

%call finite difference function
yderiv = derivative(f,x2) 

%use built-in to get differentiated function
ycheck = diff(eqn) 

输出:

yderiv = -0.9093

ycheck =
-sin(x)

任何有关如何在 x2 处解决 ycheck 或不同使用方法的帮助将不胜感激。

干杯:)

4

1 回答 1

-2

要计算具有有限差分的导数,您不需要正在使用的符号表达式。

你需要:

  1. 选择您的增量,例如dx = 0.01
  2. 选择你的范围,假设 x = [0, 2*pi]。为该范围创建一个变量x = 0:dx:2*pi
  3. 评估功能,例如y = cos(x)
  4. 使用diff功能
  5. 除以您的dx.
  6. 阴谋

完成这些步骤后,其余部分(在 x = 2 处获取 y 的导数)应该很清楚。

于 2014-08-09T13:45:50.197 回答