Subsections


2D interpolation

\epsfig{file=INTRP2BLK_f.eps,width=90.00pt}

Library

Non_linear

Description

The output of this block is a function of the inputs obtained by bilinear interpolation. This block has two scalar inputs and a single scalar output. The $ X(i)$ and $ Y(i)$ give respectively the $ X$ coordinate and the $ Y$ coordinate of the $ i$-th data point to be interpolated and $ Z(Y(i),X(i))$ its value.

Dialog Box

Set Interpolation block parameters
X coord. [0;1]
Y coord. [0;1]
Z values [0,1;1,2]

Default properties

Interfacing function

scilab/macros/scicos_blocks/nonlinear/INTRP2BLK_f.sci

Computational function (type 1)


      subroutine intrp2(flag,nevprt,t,xd,x,nx,z,nz,tvec,ntvec,
     &     rpar,nrpar,ipar,nipar,u1,nu1,u2,nu2,y1,ny1)
c     Copyright INRIA

c     Scicos block simulator
c     ipar(1) : the number of input
c
      double precision t,xd(*),x(*),z(*),tvec(*),rpar(*)
      double precision y1,u1,u2
      double precision vx1,vx2,vy1,vy2,vz1,vz2,vz3,vz4
      integer flag,nevprt,nx,nz,ntvec,nrpar,ipar(*),i
      integer nipar
c
c    
      do 100 i=2,ipar(1)
         if (u1.le.rpar(i)) goto 200 
 100  continue
      i=ipar(1)
 200  do 300 j=2,ipar(2)
         if (u2.le.rpar(j+ipar(1))) goto 400 
 300  continue
      j=ipar(2)
 400  continue
      vy1=rpar(ipar(1)+j-1)
      vy2=rpar(ipar(1)+j)
      vz1=rpar(ipar(1)+ipar(2)+(i-2)*ipar(2)+j-1)
      vz4=rpar(ipar(1)+ipar(2)+(i-2)*ipar(2)+j)
      vz2=rpar(ipar(1)+ipar(2)+(i-1)*ipar(2)+j-1)
      vz3=rpar(ipar(1)+ipar(2)+(i-1)*ipar(2)+j)
      vx1=rpar(i-1)
      vx2=rpar(i)     
      y1=(1.0d0-(u2-vy1)/(vy2-vy1))*(vz1+(vz2-vz1)*(u1-vx1)/(vx2-vx1))
     $     +((u2-vy1)/(vy2-vy1))*(vz4+(vz3-vz4)*(u1-vx1)/(vx2-vx1))
      return
      end


Ramine Nikoukhah 2004-06-22