Using summation containing function for curve fitting
14 views (last 30 days)
Show older comments
I was trying to fit my data in an equation given below:
where a=1,, also summation upto 250 terms is enough.
k & Cs are fitting parameters. I have data for t & S(t).
I tried the curve fitting tool. It doesnt support for summation functions.
Can you help me to code for this for this fit ?
I am attaching the data file.
0 Comments
Accepted Answer
Stephan
on 9 Jan 2019
Hi,
you can use this script:
x0 = [12 3];
x = lsqcurvefit(@(x,t)equation_fit(x,t),x0,t,S)
S_calculated = equation_fit(x,t);
plot(t,S,t,S_calculated)
function S_calc = equation_fit(x,t)
n = 1:250; % Number of sumations
a = 1; % define a
w2n = n.^2.*pi^2./4000; % Definition of omega_n_squared
% Fitting values
Cs = x(1);
k = x(2);
% Determine function
sum_parts = ((1-(-1).^n)./(n.^2)).*(exp(-w2n.*t)+...
(k.*(1-(1+w2n.*t).*exp(-w2n.*t)))./(w2n+k.*(1-exp(-w2n.*t))));
S_calc = 1 + a.*Cs.*(1 - (4/pi^2 .* sum(sum_parts,2)));
end
But the resulting fit appears not to be a very good result to me:
Note that the last two lines of your data file contain invalid informations - i deleted them and attached the needed .mat-file to this answer, so that if you load the .mat-file to workspace you can execute the script and check the results by yourself. The result of sum_parts is a matrix with 89425x250 (number of samples of S(t) x n). In the second step the sum is build, so that you sum up from n=1...250 and the result is the S_calc with the needed dimenstion of 89425x1. This is the way you can solve this summation problem for curve fitting in Matlab.
Best regards
Stephan
More Answers (1)
Andrew
on 23 Sep 2023
Edited: Andrew
on 24 Sep 2023
Dear Stephan,
I am trying to fit the attached data to the following model
using the curve fitting tool in Matlab without success. For the equation, t = time (min), l = 0.0023 m and n = 0 to infinity while D is the fitting parameter or unknown constant to be found once the data is fitted. Could you please help me with a code to fit the data? Thanks in anticipation to your positive response.
Kind regards,
Andrew
0 Comments
See Also
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!