[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: regarding leasqr
From: |
rina |
Subject: |
Re: regarding leasqr |
Date: |
Mon, 4 Jul 2011 07:09:00 -0700 (PDT) |
thanks Olaf for ur post....yes u were right I should use p(6) non zero. but I
tried with the same and find no difference.
my function is
___________________________________________________________________________________________________
function F = conv_fnc(x,p) % Diffusive time-decay profile
if nargin~=2
error('This function is waiting for 2 arguments')
end
nr=length(x);
g0=0;%num
g1=1000;%num
g3=0.000000003;%in s
g2 = p(1); % or t0 in s
tabs=0.000000002; %in sec
L=0.005; %%% IN METER
n=1.01;
A = p(6);
D0=p(2);
tloc=p(3);
a=p(4);
m=p(5);
c=p(7);
D=(D0.*tloc.^(a))./(tloc.^(m).+x.^(m)).^(a./m);
%gaussian function; pulse
z=g0+g1.*exp(-((x-g2)./g3).^ 2);
%exponential decay
s=A.*exp(-x./tabs).*(D./D0).^2.*exp(-(pi*pi).*(D.*x)./L.^2);
%% model function: convolution
F =conv(z,s)+c;
F=F(1:nr);
___________________________________________________________________________
and the main program is
nr=240;
nc=320;
t=linspace(0,1.97694 ,nr);
lambda=linspace(479.4845 ,557.5614, nc); %
tri=load( "fivemm_2ns_60g.dat"); %
%% other configuration (default values):
tolerance = .00001;
max_iterations = 1000;
weights = ones (1, nr);
dp = [.01; .0001; .0001; .0001; .0001; 0.0001; 0.0001]; % bidirectional
numeric gradient stepsize
dFdp = 'dfdp'; % function for gradient (numerical)
%initial values and bounds
pin = [0.5 25 0.000000005 1 7 1000 1000]; % g2, Do in m squre per sec,
tloc, a, m, and A, c
options.bounds=[0 10; 0 50; 0 0.0000001; 0 2; 0 10; 0 10000; 0 10000];
y=zeros(nr,1);
%--lambda fit loop ------------------------------------------------------
for i=1:nc% i is the LAMBDA VARIABLE
y=y+tri(:,i);
end
%% start leasqr, be sure that 'verbose' is not set
global verbose; verbose = false;
[f, p] = leasqr(t, y, pin,'conv_fnc', tolerance, max_iterations,
weights,
dp, dFdp, options);
%t0=P(1);
D0 = p(2);
%off = p(2);
tloc= p(3);
a=p(4);
m=p(5);
A=p(6);
c=p(7);
fit = f;
figure(10)
i=100;
h1=semilogy(t,y,'o')
hold on
h2=semilogy(t,f,'r')
--
View this message in context:
http://octave.1599824.n4.nabble.com/regarding-leasqr-tp3643564p3643704.html
Sent from the Octave - General mailing list archive at Nabble.com.
Re: regarding leasqr, preeti gaikwad, 2011/07/05
Re: regarding leasqr, Martijn, 2011/07/04