MATLAB -- how to create a parabolic arc?
18 次查看(过去 30 天)
显示 更早的评论
Example, I have three points x1, x2, and x3.
x1 is the start point of the arc; x3 is the end point of the arc; x2 is the critical point of the arc (where the tangent slope is zero).
If x2<x1, then the arc is a U-shaped (smiley); If x2>x1, then the arc is a upside-down-U-shaped (upside smiley).
Any ideas?
1 个评论
Youssef Khmou
2013-4-15
编辑:Youssef Khmou
2013-4-15
that condition is done automatically by the equation ax²+bx+c
采纳的回答
Youssef Khmou
2013-4-15
编辑:Youssef Khmou
2013-4-15
hi,
The parabola's equation is defined y=ax²+bx+c, you need to set the coefficients a,b,and c so as the line passes through the three points x1,x2 and x3 :
x1=[0,0];
x2=[5,5];
x3=[10,0];
Y=[x1(2);x2(2);x3(2)]
A=[x1(1)^2 x1(1) 1;x2(1)^2 x2(1) 1;x3(1)^2 x3(1) 1]
X=inv(A)*Y
x=x1(1):0.1:x3(1);
Y=X(1)*x.^2+X(2)*x;
figure, plot(x,Y), grid on,
hold on
text(x1(1),x1(2), ' POINT X1')
text(x2(1),x2(2), ' POINT X2')
text(x3(1),x3(2), ' POINT X3')
hold off
5 个评论
Tyler Clausen
2018-2-15
how would you do this with the points (-15,2), (1,4), and (3,5)? I keep getting wrong y coordinates when I plot.
更多回答(3 个)
Jim Riggs
2018-2-15
编辑:Jim Riggs
2018-2-15
This is a simple polynomial curve fit problem. If you have the curve fitting toolbox, the problem is solved by:
x = [0 5 10];
y = [0 5 0];
fit(x,y,'poly2');
This will give the coefficients for the second order polynomial. With only 3 point, the fitted curve will pass exactly through all three points. This function will work for any three points, as long as they are no colinear.
If you do not have the curve fitting toolbox, its not too hard to build a function which will perform polynomial curve fitting. If you are interested, I will help you work out the equations.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Interpolation 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!