Differences From Artifact [95da86a8fc]:

To Artifact [35b908fced]:


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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# Copyright (c) P.J.Gawthrop, 1996.

###############################################################
## Version control history
###############################################################
## $Id$
## $Log$



###############################################################

echo Creating $1_odesol.m
rm -f ode2odesol_m.log

if [ "$2" = "" ]; 
then
  PARAMS='t=[0:0.1:10]; x0=zeros(6,1);'
  echo Using default parameter $PARAMS
else
  PARAMS=$2;
fi

PARAMS="$PARAMS ;"


$MATRIX << EOF > ode2odesol_m.log

  [nx,ny,nu,nz,nyz] = $1_def;


  $PARAMS

  %Defaults
  if exist('t')==0
    t=[0:0.1:10]
  end;

  if exist('u0')==0
    u0 = ones(nu,1);
  end;

  if exist('x0')==0
    x0 = zeros(nx,1);
  end;

  [n,m]=size(t);
  if m>n
    t=t';
  end;

x = lsode('$1_ode', x0, t);

i=0;
for tt=t'
  i=i+1;
  y(i) = $1_odeo(x(i,:),t);
end;


write_matrix([t,y], '$1_odesol');

EOF












>
>
>







|











>
>



|
|
<
<
<
<






|

|


|


|

|


<
|







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
44
45
46




47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65

66
67
68
69
70
71
72
73
# Copyright (c) P.J.Gawthrop, 1996.

###############################################################
## Version control history
###############################################################
## $Id$
## $Log$
## Revision 1.1  1996/08/15 11:56:38  peter
## Initial revision
##
###############################################################

echo Creating $1_odesol.m
rm -f ode2odesol_m.log

if [ "$2" = "" ]; 
then
  PARAMS='T=[0:0.1:10]; x0=zeros(10,1);u=1'
  echo Using default parameter $PARAMS
else
  PARAMS=$2;
fi

PARAMS="$PARAMS ;"


$MATRIX << EOF > ode2odesol_m.log

  [nx,ny,nu,nz,nyz] = $1_def;
  t=0;	%Just in case it appears in the parameter list.

  $PARAMS

  %Defaults
  if exist('T')==0
    T=[0:0.1:10]




  end;

  if exist('x0')==0
    x0 = zeros(nx,1);
  end;

  [n,m]=size(T);
  if m>n
    T=T';
  end;

x = lsode('$1_ode', x0, T);

i=0;
for tt=T'
  i=i+1;
  y(i) = $1_odeo(x(i,:),tt);
end;


write_matrix([T,y], '$1_odesol');

EOF






MTT: Model Transformation Tools
GitHub | SourceHut | Sourceforge | Fossil RSS ]