# Documentation

### This is machine translation

Translated by
Mouseover text to see original. Click the button below to return to the English verison of the page.

To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

# pcpval

Linear inequalities for fixing total portfolio value

As an alternative to `pcpval`, use the Portfolio object (`Portfolio`) for mean-variance portfolio optimization. This object supports gross or net portfolio returns as the return proxy, the variance of portfolio returns as the risk proxy, and a portfolio set that is any combination of the specified constraints to form a portfolio set. For information on the workflow when using Portfolio objects, see Portfolio Object Workflow.

## Syntax

```[A,b] = pcpval(PortValue,NumAssets)
```

## Arguments

 `PortValue` Scalar total value of asset portfolio (sum of the allocations in all assets). `PortValue = 1` specifies weights as fractions of the portfolio and return and risk numbers as rates instead of value. `NumAssets` Number of available asset investments.

## Description

`[A,b] = pcpval(PortValue,NumAssets)` scales the total value of a portfolio of `NumAssets` assets to `PortValue`. All portfolio weights, bounds, return, and risk values except `ExpReturn` and `ExpCovariance` (see `portopt`) are in terms of `PortValue`.

`A` is a matrix and `b` a vector such that `A*PortWts' <= b`, where `PortWts` is a `1`-by-`NASSETS` vector of asset allocations.

If `pcpval` is called with fewer than two output arguments, the function returns `A` concatenated with `b` `[A,b]`.

## Examples

Scale the value of a portfolio of three assets = 1, so all return values are rates and all weight values are in fractions of the portfolio.

```PortValue = 1; NumAssets = 3; [A,b] = pcpval(PortValue, NumAssets)```
```A = 1 1 1 -1 -1 -1 b = 1 -1 ```

Portfolio weights of 40%, 10%, and 50% in the three assets satisfy the constraints.