Это мой код:Найти точки пересечения MATLAB
%cirkel
t=linspace(0,2*pi);
r1=2;
x1=r1.*cos(t);
y1=r1.*sin(t);
cirkel=plot(x1,y1);
set(cirkel,'color','g')
axis equal
hold on
%cardeoide
t=linspace(0,2*pi);
r2=2*(cos(t)+1);
x2=r2.*cos(t);
y2=r2.*sin(t);
cardeoide=plot(x2,y2);
set(cardeoide, 'color','r')
hold off
Мне нужно найти точки, где эти кривые пересекаются. Я попробовал это, выполнив y1 == y2 и x1 == x2, но не получив хорошего результата (получил матрицу, полную чисел). Затем я попытался пересечь (x1, x2). Также не приятный результат. Тогда я прибегнул к этому code. Это дает довольно точный результат. Но мне не разрешено использовать этот код (из школы). Поэтому мне было интересно, есть ли более простое решение?
ТНХ заранее
Вы попробовали? Потому что я получаю эту ошибку: ??? Ошибка при использовании ==> min MIN с двумя матрицами для сравнения и два выходных аргумента не поддерживаются. – Ojtwist
Действительно, произошла небольшая ошибка. Я обновил его. – Oli
ОК, что частично делает трюк x1 и y1 кажущимся правильным (0,2), но второй, который, как вы видите на графике, имеет явный отрицательный y, имеет 4 вместо -2. (Я также думаю, что x и y переключаются, так как оба значения x должны быть около 0, а не 2 и 4) – Ojtwist