在Matlab中求解微分方程的值

时间:2014-08-09 12:40:25

标签: matlab math calculus differentiation

作为编程练习,我编写了一个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的任何帮助,或者使用不同的方法都将非常感激。

干杯:)

1 个答案:

答案 0 :(得分:-2)

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

你需要:

  1. 选择您的增量,例如dx = 0.01
  2. 选择您的范围,假设x = [0,2 * pi]。为该范围x = 0:dx:2*pi
  3. 创建变量
  4. 评估功能,例如y = cos(x)
  5. 使用diff功能
  6. 除以dx
  7. 剧情
  8. 其余的(在x = 2时得到y的导数值)一旦完成这些步骤就应该清楚了。