File: derivat.sci

package info (click to toggle)
scilab 2.4-1
  • links: PTS
  • area: non-free
  • in suites: potato, slink
  • size: 55,196 kB
  • ctags: 38,019
  • sloc: ansic: 231,970; fortran: 148,976; tcl: 7,099; makefile: 4,585; sh: 2,978; csh: 154; cpp: 101; asm: 39; sed: 5
file content (43 lines) | stat: -rw-r--r-- 826 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
function p=derivat(p)
//pd=derivat(p)  computes the derivative of the polynomial or rational
//function marix relative to the dummy variable
//!
// Copyright INRIA
t=type(p)
if t==1 then p=0*p,return,end
if t==2 then
  [m,n]=size(p);var=varn(p);
  for i=1:m
    for j=1:n
      pij=p(i,j);nij=degree(pij);
      if nij==0 then
	p(i,j)=0
      else
	pij=coeff(pij).*(0:nij),p(i,j)=poly(pij(2:nij+1),var,'c')
      end;
    end;
  end;
  return
end;

//-compat t==15 retained for list/tlist compatibility  
if t==15|t==16 then
  p1=p(1);
  if p1(1)=='r' then
    num=p(2);den=p(3)
    [m,n]=size(num)
    for i=1:m
      for j=1:n
	num(i,j)=derivat(num(i,j))*den(i,j)...
	    -num(i,j)*derivat(den(i,j))
	den(i,j)=den(i,j)**2
      end;
    end;
    p=syslin(p(4),num,den)
    return
  end;
end;
error('incorrect data type')