# Shortest Distance to a Plane

### The Problem

This example shows how to formulate a linear least squares problem using the problem-based approach.

The problem is to find the shortest distance from the origin (the point `[0,0,0]`) to the plane ${x}_{1}+2{x}_{2}+4{x}_{3}=7$. In other words, this problem is to minimize $f\left(x\right)={x}_{1}^{2}+{x}_{2}^{2}+{x}_{3}^{2}$ subject to the constraint ${x}_{1}+2{x}_{2}+4{x}_{3}=7$. The function f(x) is called the objective function and ${x}_{1}+2{x}_{2}+4{x}_{3}=7$ is an equality constraint. More complicated problems might contain other equality constraints, inequality constraints, and upper or lower bound constraints.

### Set Up the Problem

To formulate this problem using the problem-based approach, create an optimization problem object called `pointtoplane`.

`pointtoplane = optimproblem;`

Create a problem variable `x` as a continuous variable with three components.

`x = optimvar('x',3);`

Create the objective function and put it in the `Objective` property of `pointtoplane`.

```obj = sum(x.^2); pointtoplane.Objective = obj;```

Create the linear constraint and put it in the problem.

```v = [1,2,4]; pointtoplane.Constraints = dot(x,v) == 7;```

The problem formulation is complete. To check for errors, review the problem.

`show(pointtoplane)`
``` OptimizationProblem : Solve for: x minimize : sum(x.^2) subject to : x(1) + 2*x(2) + 4*x(3) == 7 ```

The formulation is correct.

### Solve the Problem

Solve the problem by calling `solve`.

`[sol,fval,exitflag,output] = solve(pointtoplane);`
```Solving problem using lsqlin. Minimum found that satisfies the constraints. Optimization completed because the objective function is non-decreasing in feasible directions, to within the value of the optimality tolerance, and constraints are satisfied to within the value of the constraint tolerance. ```
`disp(sol.x)`
``` 0.3333 0.6667 1.3333 ```

### Verify the Solution

To verify the solution, solve the problem analytically. Recall that for any nonzero `t`, the vector `t*[1,2,4] = t*v` is perpendicular to the plane ${x}_{1}+2{x}_{2}+4{x}_{3}=7$. So the solution point `xopt` is `t*v` for the value of `t` that satisfies the equation `dot(t*v,v) = 7`.

`t = 7/dot(v,v)`
```t = 0.3333 ```
`xopt = t*v`
```xopt = 1×3 0.3333 0.6667 1.3333 ```

Indeed, the vector `xopt` is equivalent to the point `sol.x` that `solve` finds.