help-octave
[Top][All Lists]

Re: Help in leasqr

 From: Doug Stewart Subject: Re: Help in leasqr Date: Fri, 26 Aug 2016 10:32:15 -0400

On Fri, Aug 26, 2016 at 6:17 AM, Bharath R wrote:
Hello all,

Thank you very much for such a helpful forum. I am using Octave for the past couple of days. I have been working to get the parameters that best fit my function.

Function:   g=@(x,p) [(p(1).*p(2).*x(:,1)+(p(3).*x(:,2))+(p(4)*p(5)))./((p(1)*p(2))+p(3))]

where p indicates the parameters , x indicates the independent variables and y is measured variable.
[pin]=1.0000e-002
1.0000e+003
1.0000e+002
1.0000e-002
1.0000e+003

[x]=21.33700    0.80000
21.28800    0.10000
20.55900   -0.80000
21.21800   -1.40000
20.68600   -1.70000

[y] = 19.545
19.300
19.300
19.137
19.000

When I run this function ([f, p, cvg, iter]=leasqr(x,y,pin,g)) with leasqr function it gives me the following result:

CONVERGENCE NOT ACHIEVED!
f =

19.710
19.578
18.827
19.326
18.824

p =

1.6953e-001
1.6258e+003
4.0087e+001
7.8664e-002
3.9346e+003

cvg = 0
iter =  20

I would like to know what does "f" in result give as output. Is it giving me the output of function "g" after implementing the newly calculated parameters or is it something else? If it is the output of g, then I feel it is relatively closer to the measured data (y). yet it is showing " CONVERGENCE NOT ACHIEVED!".

Also , I would like to know how do I implement a differential equation in leasqr to calculate the parameters. I look forward to your answer.

Thanks and regards,
Bharathy

I tried your data and see what you said.

I then set pin to the resultant p and ran it 2 more times and got it to converge whit this result

f =

19.703
19.577
18.828
19.339
18.834

p =

4.0188e-02
5.8681e+03
3.1513e+01
3.2001e-02
6.5753e+03

cvg = 1
iter =  1

So you are on the correct  path, just use the result of one run for a better starting point for the next run.
HTH

--
DAS