private function FindSpline ():void
{
var n:int;
var i:int;
var j:int;
var k:int;
var iIndex:int;
var h:Array = new Array ();
var a:Number;
var b:Number;
var c:Number;
var d:Number;
var sum:Number;
var s:Array = new Array ();
var x:Array = new Array ();
var F:Array = new Array ();
var f:Array = new Array ();
var p:Number;
var m:Array = [];
var temp:Number;
for (iIndex = 0; iIndex < 10; iIndex++)
{
s.push(0);
}
for (iIndex = 0; iIndex < arrGraphPoints.length; iIndex++)
{
x.push(arrGraphPoints.getItemAt(iIndex).Flow);
f.push(arrGraphPoints.getItemAt(iIndex).Height);
}
n = x.length;
for(i=n-1;i>0;i--)
{
F[i]=(f[i]-f[i-1])/(x[i]-x[i-1]);
h[i-1]=x[i]-x[i-1];
}
//*********** formation of h, s , f matrix **************//
for(i=1;i<n-1;i++)
{
m [i] = [];
m[i][i]=2*(h[i-1]+h[i]);
if(i!=1)
{
m[i][i-1]=h[i-1];
m[i-1][i]=h[i-1];
}
m[i][n-1]=6*(F[i+1]-F[i]);
}
//*********** forward elimination **************//
for(i=1;i<n-2;i++)
{
temp=(m[i+1][i]/m[i][i]);
for(j=1;j<=n-1;j++)
m[i+1][j]-=temp*m[i][j];
}
//*********** back ward substitution *********//
for(i=n-2;i>0;i--)
{
sum=0;
for(j=i;j<=n-2;j++)
sum+=m[i][j]*s[j];
s[i]=(m[i][n-1]-sum)/m[i][i];
}
p = Number (tiInput.text);
for(i=0;i<n-1;i++)
if(x[i]<=p&&p<=x[i+1])
{
a=(s[i+1]-s[i])/(6*h[i]);
b=s[i]/2;
c=(f[i+1]-f[i])/h[i]-(2*h[i]*s[i]+s[i+1]*h[i])/6;
d=f[i];
sum=a*Math.pow((p-x[i]),3)+b*Math.pow((p-x[i]),2)+c*(p-x[i])+d;
}
}
The above program runs fine when the arrGraphPoints.length is equal to 4 ,
when the length exceeds four , the program is not working properly .. Is
the 2 dimensonal array used is perfect ? let me know what is wrong in this
code.
--
You received this message because you are subscribed to the Google Groups "Flex
India Community" group.
To view this discussion on the web visit
https://groups.google.com/d/msg/flex_india/-/UPLzDMtMTeAJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/flex_india?hl=en.