Main Content

solutionfromID

Class: FunctionApproximation.LUTSolution
Package: 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)
|  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.836819e-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.836819e-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)

{"String":"Figure contains 2 axes objects. Axes object 1 with title Comparison of Original Function and Approximation 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 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).","Tex":["Comparison of Original Function and Approximation","Feasibility of Solution: Feasible AbsTol = 0.0078125 RelTol = 0.0078125"],"LaTex":[]}

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