Fitting function involving an integral
- From: "Raffaello Ferone" <raffaello.ferone.nospam@xxxxxxxxxxxxx>
- Date: Fri, 28 Sep 2007 14:27:38 +0000 (UTC)
Hello
I have a problem in fitting data with a
function involving an integral.
The function I have is:
G(exdata)=INTEGRAL[((f(1)./0.296).*(((f(3).^2)./(((x+f(4).*exdata(i)-f(2)).^2)+((f(3)).^2))).*((sech((1./(2*0.296)).*x)).^2)))
dx]
where f(i)s are the fitting parameters, x is the variable I
want to integrate over. exdata contains my experimental data.
I defined in an m-file the function in the following way:
function y=fitfunction(f,exdata)
for i=1:length(exdata)
t(i)=quad(@(x)((f(1)./0.296).*(((f(3).^2)./(((x+f(4).*exdata(i)-f(2)).^2)+((f(3)).^2))).*((sech((1./(2*0.296)).*x)).^2))),-15,15,1.0e-10);
y=t';
end
I stress that I wrote exdata(i) and t(i) because exdata is a
vector of several points, and Matlab needs a scalar to
perform the integral. In this way, it performs the integral
for each value of exdata. In this way, the vector y is built.
Then I use the previous function to fit my data by means of
the command: lsqcurvefit(@fitfunctionLorentzian, x0, xdata,
ydata,[],[],options) which appears in an another m-file.
The problem is that when I try to perform the fit, the value
I get for the fitting parameters are completely meaningless.
The experimental data represent a peak, and the Matlab for
some reason is not able at all to recognize even the center
of the peak. And not even the order of magnitude. I do not
know whether I make some mistakes or not. Generally, I got
very good results for the fits thanks to Matlab.
Could someone help me, please?
Thanks a lot for your help.
Raffaello
.
- Follow-Ups:
- Re: Fitting function involving an integral
- From: Randy Poe
- Re: Fitting function involving an integral
- Prev by Date: WYSIWYG - not
- Next by Date: Re: XPC target CAN I/O
- Previous by thread: WYSIWYG - not
- Next by thread: Re: Fitting function involving an integral
- Index(es):
Relevant Pages
|