How to fit a smooth curve on discrete data.
조회 수: 23 (최근 30일)
이전 댓글 표시
Hello all, I want to produce an equation that can develop a continous smooth curve (does not matter whether it follow any distribution or any plot) which connect the data given below. Using that equation I can interpolate data in between but I want a smoooth curve not a discrete curve. Can anyone please help me with this.
x = [3, 2.5, 2, 1.5, 1, 0.5]
y = [1.8, 1.75, 1.71, 1.55, 0.8, 1.25]
plot(x,y)
댓글 수: 0
채택된 답변
Torsten
2022년 10월 19일
Maybe something like this:
x = [3, 2.5, 2, 1.5, 1, 0.5];
y = [1.8, 1.75, 1.71, 1.55, 0.8, 1.25];
plot(x,y)
xx = linspace(x(1),x(end),100);
yy = interp1(x,y,xx,'cubic');
hold on
plot(xx,yy)
hold off
댓글 수: 4
Torsten
2022년 10월 20일
편집: Torsten
2022년 10월 20일
Alex's idea is to approximate your data by a curve. This curve does not pass exactly through each of your data points, but gives a good approximation over the complete interval with a small number of coefficients.
x = [3, 2.5, 2, 1.5, 1, 0.5];
y = [1.8, 1.75, 1.71, 1.55, 0.8, 1.25];
fun = @(p,x) p(1)./(p(2)+(x-p(3)).^2)+p(4) ;
fun1 = @(p) fun(p,x)-y;
p0 = [-0.1;0.1;0.9;2] ;
sol = lsqnonlin(fun1,p0)
hold on
plot(x,y,'o')
xx = x(1):-0.01:x(end);
plot(xx,fun(sol,xx))
hold off
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Linear and Nonlinear Regression에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!