1
$\begingroup$

Is there any way of reformulating the following problem so that it can be solved by means of e.g. Matlab's fmincon?

$\min f(x_1,\dots,x_n)$ subject to $c(x_1,\dots,x_n,t)\le0$, $t\in[t_{\min},t_{\max}]$

Here $f:\mathbb{R}^n\rightarrow\mathbb{R}$ is a convex function. The constraint function $c:\mathbb{R}^{n+1} \rightarrow \mathbb{R}$ is nonlinear and varies smoothly with the parameter $t$. A solution $(x^*_1,\dots,x^*_n)$ must satisfy the constraint $c\le0$ for all $t\in[t_{\min},t_{\max}]$.

EDIT:

I believe it can be assumed that the constraint function $c$ is convex for each $t$.

EDIT 2:

I want to design a propeller for an axial pump with a prescribed "sweep" $s(r)$, where $r$ is the radial coordinate in its cylindrical coordinate system $(r,\theta,z)$. The sweep is defined as $\pi/2-\phi(r)$, where $\phi$ is the angle between the tangent to the leading edge stacking curve $\gamma$ and the tangent to the meanline at the leading edge, which i call $u=u(r)$ from now on. The sweep $s$ must satisfy $s\ge a_0 + \frac{r}{r_{\max}}a_1$.

If I constrain the shape of the stacking curve $\gamma$ to be polynomial in the $r-\theta$ and the $r-z$ planes respectively, e.g. $\theta(r)=p_1(r)$ and $z(r)=p_2(r)$ with coefficients $x_1,\dots,x_k$ for $p_1$ and $x_{k+1},\dots,x_n$ for $p_2$, I will have a tangent $v=v(x_1,\dots,x_n)$ to $\gamma$.

Thus, since $\cos\phi=\frac{(u\cdot v)}{\|u\|\cdot\|v\|}$, we have $\frac{(u\cdot v)}{\|u\|\cdot\|v\|}\le\cos(\pi/2 -a_0 - \frac{r}{r_{\max}}a_1)$, which, in essence, constitutes $c(x_1,\dots,x_n,r)$. Note that $u=u(r)$ and $v=v(x_1,\dots,x_n)$.

The objective function $f$ is the arc length of $\gamma$, i.e. $f=\int \sqrt{\|v\|^2+1}dr$.

Hope this made sense...

$\endgroup$
  • 1
    $\begingroup$ Such problems can (without restrictions on constrain't function $c$) involve a lot of local minima. I take it you are primarily interested in a global minimum, so any additional information about $c$ would help. $\endgroup$ – hardmath Jan 22 at 21:51
  • $\begingroup$ This is straightforward to code in Mathematica. Whether or not a solution can be computed depends, however, on the specific nature of $f$ and $c$ (of course). $\endgroup$ – David G. Stork Jan 22 at 21:57
  • $\begingroup$ could you post the function $c$? $\endgroup$ – LinAlg Jan 22 at 22:11
  • $\begingroup$ A naive approach would just be to discretize $t$ and solve the problem with each of the convex $c$ constraints at each $t$. $\endgroup$ – nathan.j.mcdougall Jan 22 at 22:27
  • 1
    $\begingroup$ What you have is a convex semi-infinite program. See this review for some general approaches for solving such problems. $\endgroup$ – madnessweasley Jan 22 at 23:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.