Thank you. That helped me a lot. I&#39;d like to calculate steady-state concentrations at different concentration of particular specie in my model too. Whereas it worked perfectly up to some concentration, it  raised me this warning (Warning: The iteration is not making good progress, as measured by the improvement from the last ten iterations.) from that concentration on. Do you know, how could I improve that? And I will definitely check pysces. It looks exactly what I need.<div>
<br></div><div>Cheers,</div><div><br></div><div>Peter<br><br><div class="gmail_quote">On Tue, Oct 13, 2009 at 4:01 AM, Johann Rohwer <span dir="ltr">&lt;<a href="mailto:jr@sun.ac.za">jr@sun.ac.za</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Sending again - my previous reply doesn&#39;t seem to have made it to the<br>
list...<br>
<div class="im"><br>
On Tuesday 13 October 2009, Peter Cimermančič wrote:<br>
&gt; I&#39;m trying to model system that is described with few ODEs.<br>
&gt; Function, where ODEs are in, is given as def function(y,t). It<br>
&gt; takes two arguments as you can see. y is an array of different<br>
&gt; species in the model, whereas t is an array of time steps. Then,<br>
&gt; I&#39;d like to calculate steady state using fsolve, which takes<br>
&gt; function with one argument only. When trying to solve steady state,<br>
&gt; this error is raised: &quot;TypeError: There is a mismatch between the<br>
&gt; input and output shape of diff_equations.&quot;. How could I solve my<br>
&gt; problem?<br>
<br>
</div>Here is a self-contained example of 2 simple ODEs with mass action<br>
kinetics, that calculates a time course with odeint and then uses the<br>
final point of the time course as an initial estimate for a steady-<br>
state calculation with fsolve. As you can see, the arguments of the<br>
function de are handled OK between odeint and fsolve.<br>
<br>
BTW if you are interested in this problem in a more general way, you<br>
might want to look at our PySCeS software (<a href="http://pysces.sf.net" target="_blank">http://pysces.sf.net</a>) which<br>
is for simulation of (bio)chemical kinetic networks. It has high-level<br>
functions to calculate time courses and steady states automatically<br>
(amongst others) and runs on top of scipy.<br>
<br>
Regards<br>
Johann<br>
<br>
---------------------8-&lt;--------------------------------<br>
<br>
import scipy<br>
scipy.pkgload(&#39;optimize&#39;, &#39;integrate&#39;)<br>
import pylab<br>
<br>
k1 = 10<br>
k2 = 5<br>
k3 = 8<br>
<br>
def de(X,t):<br>
    Xdot = scipy.zeros((2),&#39;d&#39;)<br>
    Xdot[0] = k1 - k2*X[0]<br>
    Xdot[1] = k2*X[0] - k3*X[1]<br>
    return Xdot<br>
<br>
init_val = scipy.array([10.,0.1])<br>
t_range = scipy.linspace(0,1,21)<br>
<br>
t_course = scipy.integrate.odeint(de, init_val, t_range)<br>
fin_t_course = scipy.copy(t_course[-1])<br>
<br>
ss = scipy.optimize.fsolve(de, fin_t_course, args=None)<br>
print ss<br>
<br>
pylab.plot(t_range, t_course[:,0], t_range, t_course[:,1])<br>
pylab.show()<br>
<div><div></div><div class="h5"><br>
<br>
_______________________________________________<br>
SciPy-User mailing list<br>
<a href="mailto:SciPy-User@scipy.org">SciPy-User@scipy.org</a><br>
<a href="http://mail.scipy.org/mailman/listinfo/scipy-user" target="_blank">http://mail.scipy.org/mailman/listinfo/scipy-user</a><br>
</div></div></blockquote></div><br></div>