Quelle est la meilleure façon de calculer un nombre dérivé en MATLAB?

(Note: Ceci est destiné à être une communauté Wiki.)

Supposons que j'ai un ensemble de points xi = {x0,x1,x2,...xn} et la fonction correspondante des valeurs fi = f(xi) = {f0,f1,f2,...,fn}, où f(x) est, en général, une fonction inconnue. (Dans certains cas, nous pourrions savoir f(x) à l'avance, mais nous voulons le faire en général, depuis que nous avons souvent ne pas savoir f(x) à l'avance.) Ce qui est une bonne façon d'approximer la dérivée de f(x) à chaque point xi? C'est, comment puis-je estimer les valeurs de dfi == d/dx fi == df(xi)/dx à chacun des points xi?

Malheureusement, MATLAB n'ont pas une très bonne usage général, numérique de la différenciation de la routine. Partie de la raison pour cela est probablement parce que le choix d'une bonne routine peut être difficile!

Alors, quels types de méthodes sont là? Ce que les routines d'exister? Comment peut-on choisir une bonne routine pour un problème particulier?

Il y a plusieurs considérations lors du choix de la façon de différencier dans MATLAB:

  1. Ne vous ont une fonction symbolique ou d'un ensemble de points?
  2. Est votre grille de manière uniforme ou inégalement espacées?
  3. Votre domaine est périodique? Pouvez-vous supposer périodique des conditions limites?
  4. Quel niveau de précision que vous recherchez? Avez-vous besoin de calculer les dérivées à l'intérieur d'une tolérance?
  5. Est-il important pour vous que votre dérivés est évaluée sur les mêmes points que votre fonction est définie?
  6. Avez-vous besoin de calculer plusieurs commandes de produits dérivés?

Quelle est la meilleure façon de procéder?

  • Bon travail de mettre cela ensemble! Cependant, je soupçonne que ce sujet pourrait être trop large pour un Q&A, comme le meilleur moyen dépendra fortement de la situation.
InformationsquelleAutor jvriesem | 2015-04-06