Bonsoir,
Après avoir recherché activement dans le forum et ses archives, j'ouvre ce sujet afin de profiter de votre expérience.
J'utilise la fonction ode45 afin de résoudre un système de 22 équations et la résolution s'effectue parfaitement. L'étape suivante consiste donc en la complexification du système avec l'ajout de paramètres non linéaires à la place de certaines constantes.
Je dispose d'un tableau qui contient des valeurs en x et y et qui me permettent (à l'aide de l'outil d'interpolation interp1) de retrouver une valeur de mon paramètre à partir de n'importe quelle valeur d'entrée. L'interpolation fonctionne dans la fenêtre de commande.
Mon but est d'utiliser cette interpolation dans la fonction ode, et là cela coince. Car le point où je dois interpoler se trouve être la valeur de la dérivée d'une des fonction recherchées, appelée z(2)=dz(1) dans la fonction ode. Bon cela ne marche pas mais le problème semble venir de plus loin, car même lorsque le point où j'interpole est une constante Matlab me renvoie une erreur alors que le même code marche en dehors de cette fonction ode.
Le message d'erreur étant le fameux "Index exceeds matrix dimensions".
Donc ma première question est : pensez-vous qu'il est possible d'effectuer une interpolation interp1 à l'intérieur même de la fonction ode ?
Je vous remercie d'avoir pris le temps de me lire et pour les futures réponses
Partager