0

suppose we have a vector $x \in \mathbb{R}^{n}$, and a closed convex set $C \in \mathbb{R}^{n}$. $C =\{x|Ax=b\}$

how to calculate the vector $y \in \mathbb{R}^{n}$, which is the projection of $x$ onto set $C$. The vector $y\in C$ and have the smallest distance to $x$.

Royi
  • 10,050
Xia
  • 121
  • Your question seems too general to give a satisfactory answer. – Rhys Jul 27 '15 at 21:19
  • @Rhys hi, I hope to know there method for calculating the projection of a vector onto a convex set with the minimum distance. – Xia Jul 27 '15 at 21:23
  • @Xia what do you mean by there is a method? Like there is a computer program that computes the projection for any $x$ and $C$? Surely no. Please be more specific about $C$. – user251257 Jul 27 '15 at 22:25
  • @user251257 like $c ={y|Ay=b}$ or $ c ={y|y^{T}Ay=b}$ – Xia Jul 28 '15 at 01:14
  • for the first set try Lagrange multiplier method. the second set is not convex. please edit your question to make it more clear. – user251257 Jul 28 '15 at 01:24

1 Answers1

0

If your convex set $C$ is a linear subspace, then you can take some orthonormal basis of it, say $e_i, i=1,..,k\leq n$ and your projection must satisfy $x-y\perp e_i, i=1,2,..,k$. Therefore, if $y$ is represented in the mentioned basis as $y=\sum\limits_{i=1}^{k}{a_ie_i}$, then we must have $(x,e_i)-a_i=0$, i.e $a_i=(x,e_i)\Rightarrow y=\sum\limits_{i=1}^{k}{(x,e_i)e_i}$.

If $C$ is just a convex set, then I guess an algorithmic approach would be to draw "circles" with center $x$ and a radius equal to $\|x-y1\|$ for some $y_1\in C$. Then start decreasing the radius until you do not have an intersection with $C$. So this is a mediocre method to locate the projection $y$.

Svetoslav
  • 5,325