Repository: scipy/scipy

Issue:
BUG: optimize: Incorrect error message for the "trust-exact" method of minimize.
If `minimize` is used with `method='trust-exact'` but `hess` is not provided, the error raised is `ValueError: ('Jacobian is required for trust region ', 'exact minimization.')`

Instead of `'Jacobian'` , it should say `'Hessian matrix'`.

The relevant code is https://github.com/scipy/scipy/blob/master/scipy/optimize/_trustregion_exact.py#L38

It also looks strange that two string arguments are passed to the `ValueError()`.  Was the intent here to pass a single string?  If so, the trailing comma at https://github.com/scipy/scipy/blob/master/scipy/optimize/_trustregion_exact.py#L39 (and at https://github.com/scipy/scipy/blob/master/scipy/optimize/_trustregion_exact.py#L36) should be removed.

### Reproducing code example:
```
In [11]: import numpy as np

In [12]: from scipy.optimize import minimize

In [13]: minimize(lambda x: np.dot(x, x), [1, 1], jac=lambda x: 2*x, method='trust-exact')
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-13-48bed8d3f104> in <module>()
----> 1 minimize(lambda x: np.dot(x, x), [1, 1], jac=lambda x: 2*x, method='trust-exact')

/Users/warren/miniconda3scipy/lib/python3.5/site-packages/scipy-1.0.0.dev0+bad9919-py3.5-macosx-10.6-x86_64.egg/scipy/optimize/_minimize.py in minimize(fun, x0, args, method, jac, hess, hessp, bounds, constraints, tol, callback, options)
    480     elif meth == 'trust-exact':
    481         return _minimize_trustregion_exact(fun, x0, args, jac, hess,
--> 482                                            callback=callback, **options)
    483     else:
    484         raise ValueError('Unknown solver %s' % method)

/Users/warren/miniconda3scipy/lib/python3.5/site-packages/scipy-1.0.0.dev0+bad9919-py3.5-macosx-10.6-x86_64.egg/scipy/optimize/_trustregion_exact.py in _minimize_trustregion_exact(fun, x0, args, jac, hess, **trust_region_options)
     38     if hess is None:
     39         raise ValueError('Jacobian is required for trust region ',
---> 40                          'exact minimization.')
     41     return _minimize_trust_region(fun, x0, args=args, jac=jac, hess=hess,
     42                                   subproblem=IterativeSubproblem,

ValueError: ('Jacobian is required for trust region ', 'exact minimization.')
```


### Scipy/Numpy/Python version information:
```
In [10]: import sys, scipy, numpy; print(scipy.__version__, numpy.__version__, sys.version_info)
1.0.0.dev0+bad9919 1.12.1 sys.version_info(major=3, minor=5, micro=2, releaselevel='final', serial=0)
```




Discussion:

Resolving patch:
diff --git a/scipy/optimize/_trustregion_exact.py b/scipy/optimize/_trustregion_exact.py
--- a/scipy/optimize/_trustregion_exact.py
+++ b/scipy/optimize/_trustregion_exact.py
@@ -33,10 +33,10 @@ def _minimize_trustregion_exact(fun, x0, args=(), jac=None, hess=None,
     """
 
     if jac is None:
-        raise ValueError('Jacobian is required for trust region ',
+        raise ValueError('Jacobian is required for trust region '
                          'exact minimization.')
     if hess is None:
-        raise ValueError('Jacobian is required for trust region ',
+        raise ValueError('Hessian matrix is required for trust region '
                          'exact minimization.')
     return _minimize_trust_region(fun, x0, args=args, jac=jac, hess=hess,
                                   subproblem=IterativeSubproblem,


Test patch: