comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Voigt function fit using MPFIT
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Return to the default flat view Create a new topic Submit Reply
Re: Voigt function fit using MPFIT [message #86089 is a reply to message #86086] Wed, 02 October 2013 05:47 Go to previous messageGo to previous message
Helder Marchetto is currently offline  Helder Marchetto
Messages: 520
Registered: November 2011
Senior Member
On Wednesday, October 2, 2013 1:12:55 PM UTC+2, Sreelakshmi S wrote:
> Hi,
>
>
>
> I have a set of observed data of flux vs wavelength.I am trying MPFIT to fit a voigt function. I defined the function as
>
>
>
> FUNCTION fit,p,X=x2,Y=nflux2
>
>
>
> model=double((voigt(p[0],p[1])*1e-13)/(p[3]*sqrt(!pi)))
>
> return,(Y-model)/err
>
>
>
> END
>
>
>
> But when I run this, the following errors are coming
>
>
>
> FUNCTION fit,x2=X,nflux2=Y,p
>
> ^
>
> % Programs can't be compiled from single statement mode.
>
>
>
>
>
> return,(Y-model)/1
>
> ^
>
> % Syntax error.
>
>
>
> Why is this happening?

Well, there are a number of things wrong.
1) If you define the function with
FUNCTION Fit, Y=nFlux2
then you must use nFlux2 in your code, not Y.
Try making a function like this:
FUNCTION Fit, Y=nFlux2
PRINT, (N_ELEMENTS(Y) NE 0)?'Y Exist':'Y does not exist'
PRINT, (N_ELEMENTS(nFlux2) NE 0)?'nFlux2 Exist':'nFlux2 does not exist'
RETURN, ''
END
and look at the result of the following commands:
print, Fit(Y=5)
print, Fit(/Y)
print, Fit()
print, Fit(nFlux2=5)
This way you should learn something about passing variables.

2) How are you calling the function? I have the feeling that this is not happening from inside another program or from within IDL.

3) Are you sure there is no other function named fit? The first line of the function you wrote and the one showed are different.

4) In your Voigt function you use parameters p[0], p[1], p[3]. Is there a reason for skipping [2]?

5) The variable "err" is not defined in the function. This will for sure through an error. (well what should an err variable do anyway!)

6) Passing two scalar values to the function will return a scalar value. Is that what you want? I don't think so...

7) I think that the NASA library has some Voigt fit functions... did you look at those?

Regards,
Helder
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Previous Topic: plotting different sized circles
Next Topic: ENVI kml file generation

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Wed Oct 08 20:07:06 PDT 2025

Total time taken to generate the page: 0.76700 seconds