Как приблизить ar c длину кривой C, используя вычислительный метод? - PullRequest
0 голосов
/ 03 мая 2020

Используя эту формулу длины ar c:

Using this arc length formula

  1. Как заполнить код для вычисления расстояния?
  2. Как редактировать этот код для расчета 2D ar c длина эллипса с тем же количеством интервалов?
a=0;
b=1;
Nint=100;
Npoints=Nint+1;
tvals=linspace(a,b,Npoints);
p=zeros(Npoints,3); %2 for 2d

t_to_coord=@(t) [t,t^2,t^3];

for i=1:Npoints
    p(i,:)=t_to_coord(tvals(i));
end

plot3(p(:,1),p(:,2),p(:,3))

intervaldists=zeros(Nint,1);
%%calculate interval distance
for i=1:Nint
    intervaldists(i) = %complete here
end

curvelength = sum(intervaldists);

1 Ответ

0 голосов
/ 03 мая 2020

Не имея matlab, я не могу проверить свой синтаксис, но это идея:

for i=1:Nint-1
    intervaldists(i) = sqrt((p(i+1,1)-p(i,2))^2+(p(i+1,2)-p(i,1))^2+(p(i+1,3)-p(i,3))^2)
end

А именно, найти евклидово расстояние | p_ (i + 1) -p_i | используя sqrt ((x2-x1) ^ 2 + (y2-y1) ^ 2 + (z2-z1) ^ 2)

Вы, вероятно, можете сделать это без l oop, используя векторизованную способность Matlab, например что-то вроде

p_shifted = p[2:] 
intervaldists = sqrt(sum((p_shifted-p)^2))

, но вам придется позаботиться о последнем пункте - и я не слишком хорошо помню синтаксис Matlab, поэтому я не уверен, что у меня есть правильное индексирование.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...