Я пытаюсь сопоставить 3D-точки данных (> 1000) с неявной функцией цилиндра (5 параметров: a, b, c, d, r):
-r + sqrt((x-(x+a*(-b+y)+c*(-d+z))/(1+a^2+c^2))^2+(-b+y-(a*(x+a*(-b+y)+c*(-d+z)))/(1+a^2+c^2))^2+(-d+z-(c*(x+a*(-b+y)+c*(-d+z)))/(1+a^2+c^2))^2) == 0
Я не могу найти хороший способ реализовать это с помощью Matlab (мои знания в синтаксисе Matlab пока очень поверхностны). Конечно, с явной функцией было бы намного проще. Я много искал в сети, и я не нашел конкретного ответа.
У меня также есть параметрическая функция цилиндра, использующая те же параметры, если вы знаете способ напрямую подогнать параметрическое уравнение?
x = v-(c*r*cos(u))/(sqrt(1+c^2))-(a*r*sin(u))/((1+c^2)*sqrt(1+(a^2)/(1+c^2)));
y = b+a*v+(r*sin(u))/(sqrt(1+(a^2)/(1+c^2)));
z = d+c*v+(r*cos(u))/(sqrt(1+c^2))-(a*c*r*sin(u))/((1+c^2)*sqrt(1+(a^2)/(1+c^2)));
Заранее большое спасибо.