[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

*Subject*: Re: multiple non-linear regression analysis*From*: thompson(at)orpheus.nascom.nasa.gov (William Thompson)*Date*: 17 Apr 2001 21:39:54 GMT*Newsgroups*: comp.lang.idl-pvwave*Organization*: NASA Goddard Space Flight Center (skates.gsfc.nasa.gov)*References*: <6Y%C6.360$aC.145761@news.uswest.net>*Xref*: news.doit.wisc.edu comp.lang.idl-pvwave:24594

"Kenlo Nishida" <kenlo@ntsg.umt.edu> writes: >Dear IDL news group: >How can I make multiple non-linear regression analysis with IDL? >I know "LMFIT" command can make a non-linear regression analysis >for a single independent variable. However, I want to know >an appropriate command or function of IDL which provide me with >a fitting of an arbitrary non-linear function with two or more >independent variables. I mean, I want to determine the following >three parameters (a, b, c): >y=f(x1, x2, x3; a, b, c) >Here x1, x2, and x3 are arrays of independent variables each >containing n data. y is an array of dependent variable with >n data. a, b, and c are scalars (parameters) which determine >the non-linear function f(x1, x2, x3). The simplest way to do this is to define your function so that the input array is a structure. For example, suppose that x1, x2, x3 are all floating point arrays of size N. You could then define your structure via s = {x1: 0.0, x2: 0.0, x3: 0.0} s = replicate(s, n_elements(x1)) s.x1 = x1 s.x2 = x2 s.x3 = x3 Thus, s is a structure array of N elements, and an individual element s(i) contains x1(i), x2(i), and x3(i). For example IDL> help,s S STRUCT = -> <Anonymous> Array[100] IDL> help,s(0),/str ** Structure <403eeb48>, 3 tags, length=12, refs=2: X1 FLOAT -0.923884 X2 FLOAT 0.192019 X3 FLOAT -0.277066 You could then write your function along the lines of function myfunc, s, a return, a[0] + a[1]*s.x1 + a[2]*s.x2 + a[3]*s.x3 end You can then put this function into a fitting routine in the normal manner. (With appropriate changes for whatever peculiarities a particular fitting routine may require. For example, LMFIT wants the partial derivatives returned as extra dimensions in the result.) Bill Thompson

**Follow-Ups**:**Re: multiple non-linear regression analysis***From:*Kenlo Nishida

**References**:**multiple non-linear regression analysis***From:*Kenlo Nishida

- Prev by Date:
**Re: multiple non-linear regression analysis** - Next by Date:
**Re: something like perl's 'require 5.4'** - Prev by thread:
**Re: multiple non-linear regression analysis** - Next by thread:
**Re: multiple non-linear regression analysis** - Index(es):