Je n’arrête pas de me heurter aux murs en ce qui concerne ma simulation du tissu ! En lisant cet article sur la dynamique basée sur la position, je suis tombé sur le concept de linéarisation locale des fonctions non linéaires. L’auteur a mentionné que :
Il est important de noter que PBD linéarise également la fonction de contrainte, mais individuellement pour chaque contrainte. L’équation de contrainte est approchée par :
Le problème, comme toujours, c’est que ce concept m’était inconnu. 🤦♂️
Nous avons déjà parlé des fonctions non linéaires lorsque nous avons abordé le sujet des fonctions contraintes dans cet article. Nous poursuivrons cette discussion dans le contexte de simplifier ces fonctions en les linéarisant.
Pourquoi devrais-je m’en soucier ? 🙋 La résolution de fonctions non linéaires peut être une tâche coûteuse, en fonction de sa complexité. Grâce à la linéarisation, il est possible de partitionner des parties linéaires d’une fonction non linéaire pour les résoudre avec des équations linéaires beaucoup plus simples. C’est pour les résoudre plus facilement et à moindre coût en ressources !
⚠️ Bien que j’aie décrit la linéarisation d’une fonction non linéaire comme une sorte de booster de performance magique, assurez-vous qu’il est raisonnable de l’utiliser pour votre application !
Linéarisation avec des plans tangentiels
Pour commencer, définissons rapidement la différence entre une fonction linéaire et une fonction non linéaire :
- Linéaire - une fonction qui fait une ligne droite lorsqu’elle est tracée. Par exemple, examinons ce graphique pour la fonction :
Remarquons que ces fonctions prennent la forme :
Par exemple :
Vous pouvez aussi remarquer que les dérivées partielles sont constantes. Par exemple - une fonction comme aura des dérivées partielles constantes :
💡 Il est intéressant de noter que les fonctions linéaires qui ne passent pas par l’origine sont techniquement appelées fonctions affines, car les fonctions linéaires doivent passer par l’origine.
- Non linéaire - il s’agit des fonctions qui ne prennent pas les lignes droites lorsqu’elles sont tracées. Voici la fonction non linéaire :
Contrairement aux fonctions linéaires, les dérivées partielles d’une fonction non linéaire ne sont pas entièrement constantes. Voici les dérivées partielles d’une fonction :
La linéarisation d’une fonction non linéaire peut être résumée en disant que nous aimerions trouver un plan tangent à un point sur un graphique d’une fonction non linéaire. Cette fonction plane sert de fonction linéaire en ce point donné.
Pour clarifier, voici le graphique pour la fonction non linéaire (bleu) et un plan tangent représenté par la fonction (violet) :
Au point , les deux fonctions se croisent. Nous pouvons dire qu’au point la fonction est linéarisée comme .
Cependant, cette linéarisation empirera au fur et à mesure que nous nous éloignons du point . C’est pour cela que nous devrions dire que la fonction est linéarisé localement au point .
Vu que nous sommes désormais plus familiers avec le concept de linéarisation, nous pouvons l’examiner plus en détail. Rappelez-vous que notre objectif est de comprendre cette équation :
Le plan tangent
Dans la section dernière, j’ai utilisé une fonction pour décrire un plan. Cependant, il semble un peu trop magique. 🪄
Comment trouver l’équation d’un plan ? Pour commencer, voici l’équation d’un plan dans son intégralité :
En utilisant un vecteur normal et deux points qui se trouvent sur le plan, il est possible de trouver son équation.
où et . se trouve entièrement sur le plan.
Nous savons que le produit scalaire entre deux vecteurs perpendiculaires est 0. Cela nous laisse avec la forme suivante .
Enfin, je vais réécrire cette équation sous une forme où le vecteur est la position d’intersection du plan et d’une fonction non linéaire :
Gardez cette équation à l’esprit parce que nous la verrons dans la prochaine partie !
💡 Cette équation s’écrit souvent où comme suit :
Linéarisation locale
Vu que nous connaissons l’équation d’un plan - nous pouvons ajouter à cette connaissance. Supposons que nous voulions approximer la fonction précédente en trouvant son approximation linéaire locale.
Pour ce faire, nous voulons trouver une fonction d’un plan qui est tangente à la fonction au point .
Les entrées de la fonction nous donnent la valeur . Nous pouvons donc dire que le plan et la fonction se croisent au point .
Ensuite, nous pouvons réécrire l’équation d’un plan pour se débarrasser de la variable et pour séparer :
Comment allons-nous continuer ? 🤔
Une caractéristique importante d’une courbe tangentielle
Eh bien, la chose la plus importante à retenir lorsqu’on parle des courbes tangentielles est qu’une courbe et sa contrepartie tangentielle doivent avoir la même pente au point d’intersection !
Sinon, elles ne peuvent pas être tangentielles. Regardez ces deux graphiques 2D :
-
Le graphique du haut montre deux courbes qui se croisent à peine à un seul point - , ce qui signifie que la courbe bleue est tangente à la courbe rouge. ✅
-
Le graphique du bas a deux intersections ce qui signifie que la ligne bleue n’est pas tangente à la courbe rouge. ⛔
Vous vous posez peut-être la question :
Comment trouver la pente de ? 🤔
La pente est le gradient ! Rappelons que le gradient se compose des dérivées partielles d’une fonction de plusieurs variables.
En utilisant les dérivées partielles de - et - nous pouvons supposer que :
Enfin, nous réécrivons cette équation en sachant que les deux points se croisent au point et en posant pour être clair que la fonction est l’approximation linéaire locale de :
Réécriture de la fonction
Rappelons que la fonction linéaire que nous avons utilisée est la suivante :
Nous pouvons réécrire notre fonction sous cette forme en utilisant et :
…qui est la même forme de la fonction contrainte de l’introduction, mais où et :