diff options
author | Karl Berry <karl@freefriends.org> | 2009-05-16 00:19:13 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2009-05-16 00:19:13 +0000 |
commit | bab45528d65eaafe68a705dbb2a57075c7b7cbd8 (patch) | |
tree | 10b4ae2b5195c8dede153ab89359ec00f55f325f /Build/source/utils/asymptote/doc/leastsquares.asy | |
parent | 8643d90372e9c31e0f461c15c596b60a545bd7d3 (diff) |
asymptote 1.72 sources (not integrated into build yet)
git-svn-id: svn://tug.org/texlive/trunk@13110 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/utils/asymptote/doc/leastsquares.asy')
-rw-r--r-- | Build/source/utils/asymptote/doc/leastsquares.asy | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/Build/source/utils/asymptote/doc/leastsquares.asy b/Build/source/utils/asymptote/doc/leastsquares.asy new file mode 100644 index 00000000000..c2f3e027aae --- /dev/null +++ b/Build/source/utils/asymptote/doc/leastsquares.asy @@ -0,0 +1,55 @@ +size(400,200,IgnoreAspect); + +import graph; +import stats; + +file fin=line(input("leastsquares.dat")); + +real[][] a=dimension(fin,0,0); +a=transpose(a); + +real[] t=a[0], rho=a[1]; + +// Read in parameters from the keyboard: +//real first=getreal("first"); +//real step=getreal("step"); +//real last=getreal("last"); + +real first=100; +real step=50; +real last=700; + +// Remove negative or zero values of rho: +t=rho > 0 ? t : null; +rho=rho > 0 ? rho : null; + +scale(Log(true),Linear(true)); + +int n=step > 0 ? ceil((last-first)/step) : 0; + +real[] T,xi,dxi; + +for(int i=0; i <= n; ++i) { + real first=first+i*step; + real[] logrho=(t >= first & t <= last) ? log(rho) : null; + real[] logt=(t >= first & t <= last) ? -log(t) : null; + + if(logt.length < 2) break; + + // Fit to the line logt=L.m*logrho+L.b: + linefit L=leastsquares(logt,logrho); + + T.push(first); + xi.push(L.m); + dxi.push(L.dm); +} + +draw(graph(T,xi),blue); +errorbars(T,xi,dxi,red); + +crop(); + +ylimits(0); + +xaxis("$T$",BottomTop,LeftTicks); +yaxis("$\xi$",LeftRight,RightTicks); |