Differences From Artifact [3cb31be700]:

To Artifact [57b5993ee0]:


1
2


3
4
5
6
7
8
9


1
2
3
4
5
6
7
8
9
-
-
+
+







function [t,y,y_theta,x] = mtt_stime(system_name,theta,free);
  ## usage: [t,y,y_theta] = mtt_stime(system_name,theta);
function [t,y,y_theta,x,x_last] = mtt_stime(system_name,theta,free);
  ## usage: [t,y,y_theta,x,x_last] = mtt_stime(system_name,theta);
  ##
  ## Simulate system with name system_name and parameter vector theta
  ## The order of components in theta is determined in system_numpar.txt:
  ## y_theta contains the corresponding sensitivity functions
  ## Assumes system generated by the sBG approach
  ## Copyright (C) 1999 by Peter J. Gawthrop

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
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







+
+
+
+
+
-
-
+
+
+
+


-
-
-
+
+
+


-
-
-
-
-
-
+
+
+
+
+
+




  for i=free
    args=sprintf("%i",i);
    for j=1:length(theta)
      args = sprintf("%s %g",args, theta(j));
    endfor

    ## Run system and replace NaN by 1e30 -- easier to handle
    file_name = sprintf("%s_input.dat", system_name);
    if exist(file_name)==2	# Then use data from this file ...
      command = sprintf("./%s_ode2odes.out %s < %s | sed \'s/NAN/Inf/g\' >mtt_out_data.dat\n", \
			system_name, args, file_name);
    else
    command = sprintf("./%s_ode2odes.out %s | sed \'s/NAN/1e30/g\' >mtt_data.dat\n", \
    system_name, args);
      command = sprintf("./%s_ode2odes.out %s | sed \'s/NAN/Inf/g\' >mtt_out_data.dat\n", \
			system_name, args);
    endif
      
   system(command);

    ## Retrieve data
    load -force mtt_data.dat
    y_theta = [y_theta mtt_data(:,3:2:1+ny)];
    ## Retrieve out_data
    load -force mtt_out_data.dat
    y_theta = [y_theta mtt_out_data(:,3:2:1+ny)];
  endfor

  ## System data
  [n,m]=size(mtt_data);
  t = mtt_data(:,1);
  y = mtt_data(:,2:2:ny);
  x = mtt_data(:,3+ny:m);

  ## System out_data
  [n,m]=size(mtt_out_data);
  t = mtt_out_data(:,1);
  y = mtt_out_data(:,2:2:ny);
  x = mtt_out_data(:,3+ny:m);
  x_last = mtt_out_data(n,3+ny:m);
endfunction




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