Contenu principal

solve

Recherche d'une solution optimisée au problème d'approximation de la fonction

Syntaxe

solution = solve(problem)

Description

solution = solve(problem) résout le problème d'optimisation défini par l'objet FunctionApproximation.Problem, problem, et renvoie le résultat optimisé, solution, sous la forme d'un objet FunctionApproximation.LUTSolution.

Arguments d'entrée

développer tout

Problème d'optimisation indiqué sous la forme d’un objet FunctionApproximation.Problem définissant la fonction ou le bloc Math Function à approximer, ou le bloc Lookup Table à optimiser, ainsi que d'autres paramètres et contraintes à utiliser au cours du processus d'optimisation.

Arguments en sortie

développer tout

Solution d'approximation, renvoyée sous la forme d'un objet FunctionApproximation.LUTSolution.

Exemples

développer tout

Créez un objet FunctionApproximation.Problem en indiquant une fonction mathématique à approximer.

problem = FunctionApproximation.Problem('log')
problem = 

  FunctionApproximation.Problem with properties

    FunctionToApproximate: @(x)log(x)
           NumberOfInputs: 1
               InputTypes: "numerictype(1,16,10)"
         InputLowerBounds: 0.6250
         InputUpperBounds: 15.6250
               OutputType: "numerictype(1,16,13)"
                  Options: [1×1 FunctionApproximation.Options]

Utilisez les valeurs par défaut pour toutes les autres options.

Utilisez la méthode solve pour générer une approximation de la fonction.

solution = solve(problem)
|    ID |   Memory (bits) |   ConstraintMet |      Table Size | Breakpoints WLs |    TableData WL |   BreakpointSpecification |             Error(Max,Current) | 
|     0 |              64 |               0 |               2 |              16 |              16 |           EvenPow2Spacing |     7.812500e-03, 1.178125e+00 |
|     1 |            1984 |               1 |             122 |              16 |              16 |           EvenPow2Spacing |     7.812500e-03, 4.192649e-03 |
|     2 |            1024 |               0 |              62 |              16 |              16 |           EvenPow2Spacing |     7.812500e-03, 1.416713e-02 |
|     3 |            1968 |               1 |             121 |              16 |              16 |           EvenPow2Spacing |     7.812500e-03, 4.192649e-03 |
|     4 |              64 |               0 |               2 |              16 |              16 |               EvenSpacing |     7.812500e-03, 1.138984e+00 |
|     5 |             416 |               1 |              13 |              16 |              16 |            ExplicitValues |     7.812500e-03, 7.310789e-03 |

Best Solution
|    ID |   Memory (bits) |   ConstraintMet |      Table Size | Breakpoints WLs |    TableData WL |   BreakpointSpecification |             Error(Max,Current) |
|     5 |             416 |               1 |              13 |              16 |              16 |            ExplicitValues |     7.812500e-03, 7.310789e-03 |


solution = 

  FunctionApproximation.LUTSolution with properties

          ID: 5
    Feasible: "true"

Vous pouvez ensuite utiliser la méthode approximate pour générer un sous-système contenant l'approximation de la lookup table.

Historique des versions

Introduit dans R2018a