L'intégration numérique à l'aide de la Règle de Simpson sur des données discrètes
Je suis à la recherche pour l'intégration numérique avec matlab. Je sais qu'il y a un trapz fonction dans matlab, mais la précision n'est pas assez bon. Par la recherche en ligne, j'ai trouvé il y a un quad fonction de là, il semble accepter l'expression symbolique comme entrée. Mes données sont discrètes et unidimensionnel. Est-ce une façon d'utiliser quad sur mes données? Merci.
quad()
est une mise en œuvre de la règle de Simpson, qui est à l'école secondaire en mathématiques. Est-il rien de vous empêche de mise en œuvre de la règle de Simpson-vous?- s'agit-il seulement d'utiliser les simpson est la règle, je pense que c'est adaptative Simpson en quadrature. Mais de toute façon, je ne sais pas pourquoi, le quad est plus rapide que ma mise en œuvre. J'ai beaucoup de données à intégrer et à la recherche d'un moyen plus rapide.
- Il a été quelques années depuis que mes méthodes numériques sûr, mais autant que je me souvienne, la seule différence entre la règle de Simpson et l'adaptation du genre, c'est que Adaptative de la règle de Simpson s'applique à une variable d'espace entre les points d'échantillonnage. Puisque vous n'êtes pas l'intégration d'une expression symbolique vous ne pouvez pas varier l'intervalle d'échantillonnage - vous avez déjà vos données et vous ne pouvez pas interpoler des points de plus entre elle. Donc régulier de la règle de Simpson sera aussi bon que vous pouvez obtenir.
- Concernant la vitesse: Avez-vous envisagé d'utiliser l'exécution en parallèle des outils disponibles dans les nouvelles versions de MATLAB? La boucle for parallèle,
parfor
, est mort, facile à utiliser et diffuser votre charge CPU le plus grand nombre de cœurs (ou nœuds d'exécution) que possible.
Vous devez vous connecter pour publier un commentaire.
La réponse à votre question serait non. Le seul moyen d'effectuer l'intégration numérique pour les données avec aucune expression dans Matlab en utilisant la
trapz
fonction. Si ce n'est pas assez précis pour vous, essayez d'écrire votre propre quad fonction de Li-aung dit, c'est très simple, cette peut aider.Une autre méthode que vous pouvez faire est d'essayer d'utiliser le puissant Outil d'ajustement de la Courbe
cftool
pour faire l'ajustement, puis utilisez leintegrate
fonction qui peut fonctionner surcfit
objets (il a un drôle de convention, la limite supérieure est le premier argument!). Je ne pense pas que vous aurez beaucoup de réponses précises quetrapz
, il dépend de l'ajustement.Utiliser la fonction spline dans MATLAB pour interpoler vos données, puis d'intégrer ces données. C'est la méthode standard pour l'intégration des données dans la forme discrète.
Vous pouvez utiliser
quadl()
pour l'intégration de vos données, vous devez d'abord créer une fonction dans laquelle vous interpoler entre eux.Et puis les nourrir à la
quadl()
fonction:L'intégration d'une fonction d'une variable est le calcul de l'aire sous la courbe du graphique de la fonction. Pour cette réponse, je vais laisser de côté le méchant fonctions et le coin affaires et de tous les rebondissements que le voyage jusqu'à des écrivains de l'intégration numérique des routines, dont la plupart sont probablement pas pertinentes ici.
La règle de Simpson est une approche de l'intégration numérique d'une fonction pour laquelle vous avez un code pour évaluer la fonction en des points dans son domaine. C'est hors de propos ici.
Supposons que vos données représente un moment de la série de valeurs recueillies à intervalles réguliers. Ensuite, vous pouvez tracer vos données sous forme d'histogramme avec des barres de largeur égale. L'intégrande que vous cherchez est la somme des surfaces des barres de l'histogramme entre les limites qui vous intéresse.
Vous devriez être en mesure d'appliquer cette approche à des ensembles de données où l'axe des x (c'est à dire la largeur des barres de l'histogramme) ne montre pas de temps, à la situation où les bars ne sont pas d'égale largeur, à la situation où les données croise l'axe des x, et le plus raisonnable des ensembles de données, assez facilement.
La discrétisation de vos données établit une limite à la précision du résultat que vous pouvez obtenir. Si, par exemple, de votre série est échantillonné à 1sec les intervalles que vous ne pouvez pas intégrer sur un intervalle qui n'est pas un nombre entier de secondes par cette approche. Mais alors, vous n'avez pas vraiment avoir les données pour calculer un chiffre avec plus de précision par toute approche. Bien sûr, vous pouvez utiliser Matlab (ou autre chose) pour générer plus de chiffres de précision, mais ils ne portent pas de sens.
trapz
pour des fonctions continues; la règle de Simpson ou Romberg intégration / etc peut certainement faire mieux, même avec des échantillons fixe, pour la plupart des fonctions.n
polynomiale de degré; puisn
ou plus de l'échantillon de points sont suffisantes pour une connaissance parfaite de la fonction et donc, pour obtenir illimité de précision, alors que votre revendication est que l'approximation rectangulaire est le meilleur que vous pouvez éventuellement faire, ce qui est clairement faux. Bien que vous habituellement ne sais pas que c'est un polynôme, la continuité des hypothèses (et, par exemple, de Stone-Weierstrass, qui dit: aucun fonction continue est la limite d'une suite de polynômes) signifie que de meilleures approximations, vous obtiendrez de meilleurs résultats.