J'ai deux équations:Comment trouver l'intersection de deux ellipses dans Matlab
ellipseOne = '((x-1)^2)/6^2 + y^2/3^2 = 1';
et
ellipseTwo = '((x+2)^2)/2^2 + ((y-5)^2)/4^2 = 1';
et je les ai comploté:
ezplot(ellipseOne, [-10, 10, -10, 10])
hold on
ezplot(ellipseTwo, [-10, 10, -10, 10])
title('Ellipses')
hold off
Maintenant, je suis en train pour trouver l'intersection des deux ellipses. J'ai essayé:
intersection = solve(ellipseOne, ellipseTwo)
intersection.x
intersection.y
pour trouver les points où ils se croisent, mais Matlab me donne une matrice et une équation comme une réponse que je ne comprends pas. Quelqu'un pourrait-il me diriger dans la bonne direction pour obtenir les coordonnées de l'intersection?
La façon dont vous utilisez ici à résoudre est incorrect; l'appel est supposé être S = solve (eqn, var). La façon la plus simple de gérer cela, puisque les deux équations sont égales à 1, est de mettre les deux équations les unes par rapport aux autres et de les soustraire. Donc ellipseDiff = '((x-1)^2)/6^2 + y^2/3^2 - ((x + 2)^2)/2^2 - ((y-5)^2)/4^2 = 0 '. –
@IanRiley L'utilisation générale de 'solve' est en fait' S = résoudre (eqn1, eqn2, ... eqnM, var1, var2, ... varN); Cette utilisation est réellement correcte. Omettre les variables 'var *' détermine automatiquement les variables. Cependant, la documentation actuelle de 'solve' est comme vous l'avez dit ... ce qui est plutôt bizarre. Faire 'help solve' dans MATLAB R2015b me donne la première façon d'invoquer. Je suppose que la première voie sera finalement obsolète, mais son utilisation est toujours correcte ici. – rayryeng
Huh; bizarre de trouver une telle lacune dans la documentation. Merci pour l'astuce @rayryeng –