<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mintoc.de/index.php?action=history&amp;feed=atom&amp;title=Gravity_Turn_Maneuver_%28Casadi%29</id>
	<title>Gravity Turn Maneuver (Casadi) - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mintoc.de/index.php?action=history&amp;feed=atom&amp;title=Gravity_Turn_Maneuver_%28Casadi%29"/>
	<link rel="alternate" type="text/html" href="https://mintoc.de/index.php?title=Gravity_Turn_Maneuver_(Casadi)&amp;action=history"/>
	<updated>2026-06-09T08:09:21Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://mintoc.de/index.php?title=Gravity_Turn_Maneuver_(Casadi)&amp;diff=1039&amp;oldid=prev</id>
		<title>SebastianSager: case sensitive category</title>
		<link rel="alternate" type="text/html" href="https://mintoc.de/index.php?title=Gravity_Turn_Maneuver_(Casadi)&amp;diff=1039&amp;oldid=prev"/>
		<updated>2015-12-15T10:01:54Z</updated>

		<summary type="html">&lt;p&gt;case sensitive category&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 10:01, 15 December 2015&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l457&quot;&gt;Line 457:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 457:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;CasADi&lt;/del&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Casadi&lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>SebastianSager</name></author>
	</entry>
	<entry>
		<id>https://mintoc.de/index.php?title=Gravity_Turn_Maneuver_(Casadi)&amp;diff=1033&amp;oldid=prev</id>
		<title>MirkoHahn at 13:14, 13 December 2015</title>
		<link rel="alternate" type="text/html" href="https://mintoc.de/index.php?title=Gravity_Turn_Maneuver_(Casadi)&amp;diff=1033&amp;oldid=prev"/>
		<updated>2015-12-13T13:14:47Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://mintoc.de/index.php?title=Gravity_Turn_Maneuver_(Casadi)&amp;amp;diff=1033&amp;amp;oldid=1032&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>MirkoHahn</name></author>
	</entry>
	<entry>
		<id>https://mintoc.de/index.php?title=Gravity_Turn_Maneuver_(Casadi)&amp;diff=1032&amp;oldid=prev</id>
		<title>MirkoHahn: Corrected due to error in derivative of angle to vertical; added comments and intermediate expressions</title>
		<link rel="alternate" type="text/html" href="https://mintoc.de/index.php?title=Gravity_Turn_Maneuver_(Casadi)&amp;diff=1032&amp;oldid=prev"/>
		<updated>2015-12-13T13:09:04Z</updated>

		<summary type="html">&lt;p&gt;Corrected due to error in derivative of angle to vertical; added comments and intermediate expressions&lt;/p&gt;
&lt;a href=&quot;https://mintoc.de/index.php?title=Gravity_Turn_Maneuver_(Casadi)&amp;amp;diff=1032&amp;amp;oldid=990&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>MirkoHahn</name></author>
	</entry>
	<entry>
		<id>https://mintoc.de/index.php?title=Gravity_Turn_Maneuver_(Casadi)&amp;diff=990&amp;oldid=prev</id>
		<title>MirkoHahn at 15:03, 9 December 2015</title>
		<link rel="alternate" type="text/html" href="https://mintoc.de/index.php?title=Gravity_Turn_Maneuver_(Casadi)&amp;diff=990&amp;oldid=prev"/>
		<updated>2015-12-09T15:03:34Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 15:03, 9 December 2015&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This page contains a discretized version of the OCP [[Gravity Turn Maneuver]] in [http://www.casadi.org CasADi 2.4.2] format. The continuous model was discretized using a direct multiple shooting approach with 300 shooting nodes distributed equidistantly over a variable time horizon. The control grid is equal to the DMS grid.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This page contains a discretized version of the OCP [[Gravity Turn Maneuver]] in [http://www.casadi.org CasADi 2.4.2] format. The continuous model was discretized using a direct multiple shooting approach with 300 shooting nodes distributed equidistantly over a variable time horizon. The control grid is equal to the DMS grid&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;. An initial solution is chosen by linearly interpolating between initial and terminal state&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== CasADi ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== CasADi ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l104&quot;&gt;Line 104:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 104:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Results ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Results ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;The solution is calculated using IPOPT (3.11.9, default settings with tolerance 1e-5, using linear solver MUMPS in sequential mode on Ubuntu 15.10 for x86-64 with Linux 4.2.0-19-generic, Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz, 16 GB RAM). The objective function value is &amp;lt;math&amp;gt;9.63924&amp;lt;/math&amp;gt;. IPOPT finds the solution in 22 iterations (20.085 seconds proc time).&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;!--=== Bonmin ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;!--=== Bonmin ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>MirkoHahn</name></author>
	</entry>
	<entry>
		<id>https://mintoc.de/index.php?title=Gravity_Turn_Maneuver_(Casadi)&amp;diff=973&amp;oldid=prev</id>
		<title>MirkoHahn: Created page with &quot;This page contains a discretized version of the OCP Gravity Turn Maneuver in [http://www.casadi.org CasADi 2.4.2] format. The continuous model was discretized using a dire...&quot;</title>
		<link rel="alternate" type="text/html" href="https://mintoc.de/index.php?title=Gravity_Turn_Maneuver_(Casadi)&amp;diff=973&amp;oldid=prev"/>
		<updated>2015-12-09T13:16:30Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;This page contains a discretized version of the OCP &lt;a href=&quot;/index.php?title=Gravity_Turn_Maneuver&quot; title=&quot;Gravity Turn Maneuver&quot;&gt;Gravity Turn Maneuver&lt;/a&gt; in [http://www.casadi.org CasADi 2.4.2] format. The continuous model was discretized using a dire...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;This page contains a discretized version of the OCP [[Gravity Turn Maneuver]] in [http://www.casadi.org CasADi 2.4.2] format. The continuous model was discretized using a direct multiple shooting approach with 300 shooting nodes distributed equidistantly over a variable time horizon. The control grid is equal to the DMS grid.&lt;br /&gt;
&lt;br /&gt;
=== CasADi ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Python&amp;quot;&amp;gt;&lt;br /&gt;
# ----------------------------------------------------------------&lt;br /&gt;
# Gravity Turn Maneuver with direct multiple shooting using CVodes&lt;br /&gt;
# (c) Mirko Hahn&lt;br /&gt;
# ----------------------------------------------------------------&lt;br /&gt;
from casadi import *&lt;br /&gt;
&lt;br /&gt;
N = 300&lt;br /&gt;
vel_eps = 1e-6&lt;br /&gt;
&lt;br /&gt;
m0   = 11.3&lt;br /&gt;
m1   = 1.3&lt;br /&gt;
g0   = 9.81e-3&lt;br /&gt;
r0   = 6.0e2&lt;br /&gt;
Isp  = 300.0&lt;br /&gt;
Fmax = 600.0e-3&lt;br /&gt;
&lt;br /&gt;
cd  = 0.021&lt;br /&gt;
A   = 1.0&lt;br /&gt;
H   = 5.6&lt;br /&gt;
rho = (1.0 * 1.2230948554874)&lt;br /&gt;
&lt;br /&gt;
h_obj = 75&lt;br /&gt;
v_obj = 2.287&lt;br /&gt;
q_obj = 0.5 * pi&lt;br /&gt;
&lt;br /&gt;
x = SX.sym(&amp;#039;[m, v, q, h, d]&amp;#039;)&lt;br /&gt;
u = SX.sym(&amp;#039;u&amp;#039;)&lt;br /&gt;
T = SX.sym(&amp;#039;T&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
ode = [&lt;br /&gt;
    -(Fmax / (Isp * g0)) * u,&lt;br /&gt;
    (Fmax * u - 0.5e3 * A * cd * rho * exp(-x[3] / H) * x[1]**2) / x[0] - g0 * (r0 / (r0 + x[3]))**2 * cos(x[2]),&lt;br /&gt;
    g0 * (r0 / (r0 + x[3]))**2 * sin(x[2]) / x[1] - x[1] * cos(x[2]) / (r0 + x[3]),&lt;br /&gt;
    x[1] * cos(x[2]),&lt;br /&gt;
    x[1] * sin(x[2]) / (r0 + x[3])&lt;br /&gt;
]&lt;br /&gt;
quad = u&lt;br /&gt;
&lt;br /&gt;
dae = SXFunction(&amp;quot;dae&amp;quot;, daeIn(x=x, p=vertcat([u, T])), daeOut(ode=T*vertcat(ode), quad=T*quad))&lt;br /&gt;
I = Integrator(&amp;quot;I&amp;quot;, &amp;quot;cvodes&amp;quot;, dae, {&amp;#039;t0&amp;#039;: 0.0, &amp;#039;tf&amp;#039;: 1.0 / N})&lt;br /&gt;
&lt;br /&gt;
p_min  = [120.0]&lt;br /&gt;
p_max  = [600.0]&lt;br /&gt;
p_init = [120.0]&lt;br /&gt;
&lt;br /&gt;
u_min  = [0.0]&lt;br /&gt;
u_max  = [1.0]&lt;br /&gt;
u_init = [0.5]&lt;br /&gt;
&lt;br /&gt;
x0_min  = [m0, vel_eps,       0.0, 0.0, 0.0]&lt;br /&gt;
x0_max  = [m0, vel_eps,  0.5 * pi, 0.0, 0.0]&lt;br /&gt;
x0_init = [m0, vel_eps, 0.05 * pi, 0.0, 0.0]&lt;br /&gt;
&lt;br /&gt;
xf_min  = [m1, v_obj, q_obj, h_obj, 0.0]&lt;br /&gt;
xf_max  = [m0, v_obj, q_obj, h_obj, inf]&lt;br /&gt;
xf_init = [m1, v_obj, q_obj, h_obj, 0.0]&lt;br /&gt;
&lt;br /&gt;
x_min  = [m1, vel_eps, 0.0, 0.0, 0.0]&lt;br /&gt;
x_max  = [m0,     inf,  pi, inf, inf]&lt;br /&gt;
x_init = [0.5 * (m0 + m1), 0.5 * v_obj, 0.5 * q_obj, 0.5 * h_obj, 0.0]&lt;br /&gt;
&lt;br /&gt;
np = 1&lt;br /&gt;
nx = x.size1()&lt;br /&gt;
nu = u.size1()&lt;br /&gt;
ns = nx + nu&lt;br /&gt;
&lt;br /&gt;
V = MX.sym(&amp;#039;X&amp;#039;, N * ns + nx + np)&lt;br /&gt;
P = V[0]&lt;br /&gt;
X = [V[np+i*ns:np+i*ns+nx] for i in range(0, N+1)]&lt;br /&gt;
U = [V[np+i*ns+nx:np+(i+1)*ns] for i in range(0, N)]&lt;br /&gt;
&lt;br /&gt;
G = []&lt;br /&gt;
F = 0.0&lt;br /&gt;
&lt;br /&gt;
x0 = p_init + x0_init&lt;br /&gt;
for i in range(0, N):&lt;br /&gt;
    Y = I({&amp;#039;x0&amp;#039;: X[i], &amp;#039;p&amp;#039;: vertcat([U[i], P])})&lt;br /&gt;
    G = G + [Y[&amp;#039;xf&amp;#039;] - X[i+1]]&lt;br /&gt;
    F = F + Y[&amp;#039;qf&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
    frac = float(i+1) / N&lt;br /&gt;
    x0 = x0 + u_init + [x0_init[i] + frac * (xf_init[i] - x0_init[i]) for i in range(0, nx)]&lt;br /&gt;
&lt;br /&gt;
lbg = 0.0&lt;br /&gt;
ubg = 0.0&lt;br /&gt;
lbx = p_min + x0_min + u_min + (N-1) * (x_min + u_min) + xf_min&lt;br /&gt;
ubx = p_max + x0_max + u_max + (N-1) * (x_max + u_max) + xf_max&lt;br /&gt;
&lt;br /&gt;
nlp = MXFunction(&amp;quot;nlp&amp;quot;, nlpIn(x=V), nlpOut(f=m0 - X[-1][0], g=vertcat(G)))&lt;br /&gt;
S = NlpSolver(&amp;quot;S&amp;quot;, &amp;quot;ipopt&amp;quot;, nlp, {&amp;#039;tol&amp;#039;: 1e-5})&lt;br /&gt;
r = S({&lt;br /&gt;
    &amp;#039;x0&amp;#039; : x0,&lt;br /&gt;
    &amp;#039;lbx&amp;#039;: lbx,&lt;br /&gt;
    &amp;#039;ubx&amp;#039;: ubx,&lt;br /&gt;
    &amp;#039;lbg&amp;#039;: lbg,&lt;br /&gt;
    &amp;#039;ubg&amp;#039;: ubg&lt;br /&gt;
})&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Results ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--=== Bonmin ===&lt;br /&gt;
The solution calculated by Bonmin (subversion revision number 1453, default settings, 3 GHz, Linux 2.6.28-13-generic, with ASL(20081205)) has an objective function value of &amp;lt;MATH&amp;gt;\Phi= 1.34434&amp;lt;/MATH&amp;gt;, while the optimum of the relaxation is &amp;lt;MATH&amp;gt;\Phi=1.3423368&amp;lt;/MATH&amp;gt;. Bonmin needs 35301 iterations and 2741 nodes (4899.97 seconds). Strong branching is done 81 times (1859 iterations), with 0 fathomed nodes and 0 fixed variables. The intervals on the equidistant grid on which &amp;lt;MATH&amp;gt;w(t) = 1&amp;lt;/MATH&amp;gt; holds, counting from 0 to 99, are 20-32, 34, 36, 38, 40, 44, 53.&lt;br /&gt;
&lt;br /&gt;
=== Knitro ===&lt;br /&gt;
A solution obtained by Knitro version 6.0 under NEOS server environment was tested by [[User:Henry_Chan | Henry Kar Ming Chan]]. The standard defaults were used except the strong branching strategies and the integrality gap tolerances without parallel features. Final objective value is 1.34521362. Number of nodes processed is 508 and number of subproblems solved is 671. Total program CPU time is 2823.85 seconds with time spent in evaluations for 684.37 seconds. The intervals on the equidistant grid on which &amp;lt;MATH&amp;gt;w(t) = 1&amp;lt;/MATH&amp;gt; holds, counting from 0 to 99, are 20-32, 34, 36-37, 42, 44, 52.--&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
[[Category:CasADi]]&lt;/div&gt;</summary>
		<author><name>MirkoHahn</name></author>
	</entry>
</feed>