Этот пример показывает, как использовать метод solutionfromID
объекта FunctionApproximation.LUTSolution
исследовать другие решения для приближения.
Создайте объект FunctionApproximation.Problem
, задающий математическую функцию, чтобы аппроксимировать. Затем используйте метод solve
, чтобы получить объект FunctionApproximation.LUTSolution
.
problem =
1x1 FunctionApproximation.Problem with properties:
FunctionToApproximate: @(x)sin(x)
NumberOfInputs: 1
InputTypes: "numerictype(0,16,13)"
InputLowerBounds: 0
InputUpperBounds: 6.2832
OutputType: "numerictype(1,16,14)"
Options: [1x1 FunctionApproximation.Options]
| ID | Memory (bits) | Feasible | Table Size | Breakpoints WLs | TableData WL | BreakpointSpecification | Error(Max,Current) |
| 0 | 64 | 0 | 2 | 16 | 16 | EvenSpacing | 7.812500e-03, 1.000000e+00 |
| 1 | 560 | 1 | 33 | 16 | 16 | EvenSpacing | 7.812500e-03, 4.844995e-03 |
| 2 | 304 | 0 | 17 | 16 | 16 | EvenSpacing | 7.812500e-03, 1.887217e-02 |
| 3 | 432 | 0 | 25 | 16 | 16 | EvenSpacing | 7.812500e-03, 8.539386e-03 |
| 4 | 496 | 1 | 29 | 16 | 16 | EvenSpacing | 7.812500e-03, 6.319763e-03 |
| 5 | 464 | 1 | 27 | 16 | 16 | EvenSpacing | 7.812500e-03, 7.324035e-03 |
| 6 | 448 | 0 | 26 | 16 | 16 | EvenSpacing | 7.812500e-03, 7.926903e-03 |
| 7 | 64 | 0 | 2 | 16 | 16 | EvenPow2Spacing | 7.812500e-03, 1.315166e+00 |
| 8 | 448 | 0 | 26 | 16 | 16 | EvenPow2Spacing | 7.812500e-03, 3.322094e-02 |
| 9 | 640 | 1 | 20 | 16 | 16 | ExplicitValues | 7.812500e-03, 7.784160e-03 |
Best Solution
| ID | Memory (bits) | Feasible | Table Size | Breakpoints WLs | TableData WL | BreakpointSpecification | Error(Max,Current) |
| 5 | 464 | 1 | 27 | 16 | 16 | EvenSpacing | 7.812500e-03, 7.324035e-03 |
solution =
1x1 FunctionApproximation.LUTSolution with properties:
ID: 5
Feasible: "true"
Отобразите все выполнимые решения, найденные во время процесса приближения.
| ID | Memory (bits) | Feasible | Table Size | Breakpoints WLs | TableData WL | BreakpointSpecification | Error(Max,Current) |
| 1 | 560 | 1 | 33 | 16 | 16 | EvenSpacing | 7.812500e-03, 4.844995e-03 |
| 4 | 496 | 1 | 29 | 16 | 16 | EvenSpacing | 7.812500e-03, 6.319763e-03 |
| 5 | 464 | 1 | 27 | 16 | 16 | EvenSpacing | 7.812500e-03, 7.324035e-03 |
| 9 | 640 | 1 | 20 | 16 | 16 | ExplicitValues | 7.812500e-03, 7.784160e-03 |
Best Solution
| ID | Memory (bits) | Feasible | Table Size | Breakpoints WLs | TableData WL | BreakpointSpecification | Error(Max,Current) |
| 5 | 464 | 1 | 27 | 16 | 16 | EvenSpacing | 7.812500e-03, 7.324035e-03 |
Решение с ID 5 не перечислено как выполнимое решение в таблице. Исследуйте это решение видеть, почему это не выполнимо.
solution5 =
1x1 FunctionApproximation.LUTSolution with properties:
ID: 5
Feasible: "true"
Сравните числовое поведение решения с ID 5.
ans = struct with fields:
Breakpoints: [51473x1 double]
Original: [51473x1 double]
Approximate: [51473x1 double]
Вы видите из графика, что решение не соответствует необходимым допускам.