Main Content

solutionfromID

Class: FunctionApproximation.LUTSolution
Namespace: FunctionApproximation

Access a solution found during the approximation process

Syntax

other_solution = solutionfromID(solution,id)

Description

other_solution = solutionfromID(solution,id) returns the solution associated with the FunctionApproximation.LUTSolution object, solution, with the ID specified by id.

Input Arguments

expand all

The solution object containing the solution you want to explore, specified as a FunctionApproximation.LUTSolution object.

ID of the solution that you want to explore, specified as a scalar integer.

Data Types: double

Output Arguments

expand all

FunctionApproximation.LUTSolution object associated with the specified ID.

Examples

expand all

This example shows how to use the solutionfromID method of the FunctionApproximation.LUTSolution object to examine other approximation solutions.

Create a FunctionApproximation.Problem object defining a math function to approximate. Then use the solve method to get a FunctionApproximation.LUTSolution object.

problem = FunctionApproximation.Problem('sin')
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]

solution = solve(problem)
Searching for fixed-point solutions.

|  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 |            784 |        1 |         47 |              16 |           16 |             EvenSpacing |     7.812500e-03, 5.388912e-03 |
|   2 |            768 |        1 |         46 |              16 |           16 |             EvenSpacing |     7.812500e-03, 4.534419e-03 |
|   3 |            608 |        1 |         36 |              16 |           16 |             EvenSpacing |     7.812500e-03, 4.089765e-03 |
|   4 |            592 |        1 |         35 |              16 |           16 |             EvenSpacing |     7.812500e-03, 4.272461e-03 |
|   5 |            416 |        1 |         24 |              16 |           16 |             EvenSpacing |     7.812500e-03, 6.201693e-03 |
|   6 |            400 |        1 |         23 |              16 |           16 |             EvenSpacing |     7.812500e-03, 6.958889e-03 |
|   7 |            224 |        0 |         12 |              16 |           16 |             EvenSpacing |     7.812500e-03, 4.013411e-02 |
|   8 |            304 |        0 |         17 |              16 |           16 |             EvenSpacing |     7.812500e-03, 1.887217e-02 |
|   9 |            352 |        1 |         20 |              16 |           16 |             EvenSpacing |     7.812500e-03, 7.807773e-03 |
|  10 |            320 |        0 |         18 |              16 |           16 |             EvenSpacing |     7.812500e-03, 1.695679e-02 |
|  11 |            336 |        1 |         19 |              16 |           16 |             EvenSpacing |     7.812500e-03, 7.810061e-03 |
|  12 |             64 |        0 |          2 |              16 |           16 |         EvenPow2Spacing |     7.812500e-03, 1.315166e+00 |
|  13 |            576 |        1 |         18 |              16 |           16 |          ExplicitValues |     7.812500e-03, 7.803448e-03 |
|  14 |            512 |        0 |         16 |              16 |           16 |          ExplicitValues |     7.812500e-03, 1.190175e-02 |
|  15 |            576 |        1 |         18 |              16 |           16 |          ExplicitValues |     7.812500e-03, 7.803448e-03 |

Best Solution
|  ID |  Memory (bits) | Feasible | Table Size | Breakpoints WLs | TableData WL | BreakpointSpecification |             Error(Max,Current) |
|  11 |            336 |        1 |         19 |              16 |           16 |             EvenSpacing |     7.812500e-03, 7.810061e-03 |
solution = 
  1x1 FunctionApproximation.LUTSolution with properties:

          ID: 11
    Feasible: "true"

Display all feasible solutions found during the approximation process.

displayfeasiblesolutions(solution)
|  ID |  Memory (bits) | Feasible | Table Size | Breakpoints WLs | TableData WL | BreakpointSpecification |             Error(Max,Current) | 
|   1 |            784 |        1 |         47 |              16 |           16 |             EvenSpacing |     7.812500e-03, 5.388912e-03 |
|   2 |            768 |        1 |         46 |              16 |           16 |             EvenSpacing |     7.812500e-03, 4.534419e-03 |
|   3 |            608 |        1 |         36 |              16 |           16 |             EvenSpacing |     7.812500e-03, 4.089765e-03 |
|   4 |            592 |        1 |         35 |              16 |           16 |             EvenSpacing |     7.812500e-03, 4.272461e-03 |
|   5 |            416 |        1 |         24 |              16 |           16 |             EvenSpacing |     7.812500e-03, 6.201693e-03 |
|   6 |            400 |        1 |         23 |              16 |           16 |             EvenSpacing |     7.812500e-03, 6.958889e-03 |
|   9 |            352 |        1 |         20 |              16 |           16 |             EvenSpacing |     7.812500e-03, 7.807773e-03 |
|  11 |            336 |        1 |         19 |              16 |           16 |             EvenSpacing |     7.812500e-03, 7.810061e-03 |
|  13 |            576 |        1 |         18 |              16 |           16 |          ExplicitValues |     7.812500e-03, 7.803448e-03 |
|  15 |            576 |        1 |         18 |              16 |           16 |          ExplicitValues |     7.812500e-03, 7.803448e-03 |

Best Solution
|  ID |  Memory (bits) | Feasible | Table Size | Breakpoints WLs | TableData WL | BreakpointSpecification |             Error(Max,Current) |
|  11 |            336 |        1 |         19 |              16 |           16 |             EvenSpacing |     7.812500e-03, 7.810061e-03 |

Solution with ID 5 is not listed as a feasible solution in the table. Explore this solution to see why it is not feasible.

solution5 = solutionfromID(solution, 5)
solution5 = 
  1x1 FunctionApproximation.LUTSolution with properties:

          ID: 5
    Feasible: "true"

Compare the numerical behavior of the solution with ID 5.

compare(solution5)

Figure contains 2 axes objects. Axes object 1 with title Comparison of Original Function and Approximation, xlabel Input, ylabel Function Value contains 2 objects of type line. These objects represent Original, Approximation. Axes object 2 with title Feasibility of Solution: Feasible AbsTol = 0.0078125 RelTol = 0.0078125, xlabel Input, ylabel Error contains 3 objects of type area, line. These objects represent Feasible Region : Absolute Error <= Max Error Allowed, Max Error Allowed : max(abs(Original) * RelTol, AbsTol), Absolute Error : abs(Original - Approximation).

ans = struct with fields:
    Breakpoints: [51473x1 double]
       Original: [51473x1 double]
    Approximate: [51473x1 double]

You can see from the plot that the solution does not meet the required tolerances.

Version History

Introduced in R2018a