MATLAB Answers

How to find Area Under the Curve of a Smoothing Spline Curve Fitted Model from Discrete Data Points ?

3 views (last 30 days)
Sambit Supriya Dash
Sambit Supriya Dash on 4 Sep 2021
Answered: darova on 5 Sep 2021
For example: I have 12 y values for different 12 x values and by using MATLAB inbuild app of Curve Fitting I got very good result. But now I want to read these coefficients in an equation (which I don't have) and want to know the area under the curve ?
M = [0.3 0.55 0.6 0.7 0.8 1.2 1.4 2.0 2.5 3.0 3.5 4.0];
Cd = [0.0010640542,0.0010009253,0.00097260155,0.0013098622,...
0.0019386101,0.027396185,0.033348465,0.041169242,0.040609591,...
0.040801537,0.041328469,0.042925609];
Got these as outputs after using the Curve Fitting App (Smoothing Spline):
Smoothing spline:
f(x) = piecewise polynomial computed from p
Smoothing parameter:
p = 0.99999298
Goodness of fit:
SSE: 6.345e-09
R-square: 1
Adjusted R-square: 1
RMSE: 0.0001337
Got the coefficients as:
fittedmodel1.p.coefs
ans =
-0.0017 0 -0.0002 0.0011
0.2595 -0.0013 -0.0005 0.0010
-0.2389 0.0376 0.0013 0.0010
0.9024 -0.0340 0.0017 0.0013
-0.3322 0.2367 0.0219 0.0020
0.2633 -0.1620 0.0518 0.0274
-0.0088 -0.0040 0.0186 0.0334
0.0184 -0.0199 0.0042 0.0412
-0.0063 0.0077 -0.0019 0.0406
0.0037 -0.0018 0.0011 0.0408
-0.0024 0.0037 0.0020 0.0413

Answers (1)

darova
darova on 5 Sep 2021
Use code instead of application
x = [0.3 0.55 0.6 0.7 0.8 1.2 1.4 2.0 2.5 3.0 3.5 4.0];
y = [0.0010640542,0.0010009253,0.00097260155,0.0013098622,...
0.0019386101,0.027396185,0.033348465,0.041169242,0.040609591,...
0.040801537,0.041328469,0.042925609];
x1 = linspace(x(1),x(end)); % new x mesh
y1 = spline(x,y,x1); % inrpolation with splin
plot(x,y,'.r')
line(x1,y1)
trapz(x1,y1) % trapezoid summation
ans = 0.1174

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!