主要内容

solve

求解函数逼近问题的优化解

语法

solution = solve(problem)

说明

solution = solve(problem) 求解由 FunctionApproximation.Problem 对象 problem 定义的优化问题,并将优化结果 solutionFunctionApproximation.LUTSolution 对象形式返回。

输入参数

全部展开

优化问题指定为 FunctionApproximation.Problem 对象,用来定义要逼近的函数或 Math Function 模块,或要优化的 Lookup Table 模块,以及在优化过程中使用的其他参数和约束。

输出参量

全部展开

逼近解,以 FunctionApproximation.LUTSolution 对象形式返回。

示例

全部展开

创建一个 FunctionApproximation.Problem 对象,用它指定要逼近的数学函数。

problem = FunctionApproximation.Problem('log')
problem = 
  1×1 FunctionApproximation.Problem with properties:

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

使用 solve 方法生成函数的逼近

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.020687e+00 |
|   1 |            912 |        0 |         55 |              16 |           16 |             EvenSpacing |     7.812500e-03, 1.687575e-02 |
|   2 |            896 |        0 |         54 |              16 |           16 |             EvenSpacing |     7.812500e-03, 1.737290e-02 |
|   3 |           1776 |        1 |        109 |              16 |           16 |             EvenSpacing |     7.812500e-03, 5.131055e-03 |
|   4 |           1760 |        1 |        108 |              16 |           16 |             EvenSpacing |     7.812500e-03, 5.169212e-03 |
|   5 |           1328 |        1 |         81 |              16 |           16 |             EvenSpacing |     7.812500e-03, 7.723356e-03 |
|   6 |           1120 |        1 |         68 |              16 |           16 |             EvenSpacing |     7.812500e-03, 7.723356e-03 |
|   7 |           1008 |        1 |         61 |              16 |           16 |             EvenSpacing |     7.812500e-03, 7.723356e-03 |
|   8 |            960 |        1 |         58 |              16 |           16 |             EvenSpacing |     7.812500e-03, 7.798586e-03 |
|   9 |            928 |        0 |         56 |              16 |           16 |             EvenSpacing |     7.812500e-03, 1.635354e-02 |
|  10 |            944 |        0 |         57 |              16 |           16 |             EvenSpacing |     7.812500e-03, 1.586526e-02 |
|  11 |            704 |        0 |         42 |              16 |           16 |             EvenSpacing |     7.812500e-03, 2.639592e-02 |
|  12 |            688 |        0 |         41 |              16 |           16 |             EvenSpacing |     7.812500e-03, 2.755002e-02 |
|  13 |            832 |        0 |         50 |              16 |           16 |             EvenSpacing |     7.812500e-03, 1.981209e-02 |
|  14 |            480 |        0 |         28 |              16 |           16 |             EvenSpacing |     7.812500e-03, 5.018443e-02 |
|  15 |            464 |        0 |         27 |              16 |           16 |             EvenSpacing |     7.812500e-03, 5.303877e-02 |
|  16 |            720 |        0 |         43 |              16 |           16 |             EvenSpacing |     7.812500e-03, 2.538244e-02 |
|  17 |            512 |        0 |         30 |              16 |           16 |             EvenSpacing |     7.812500e-03, 4.514940e-02 |
|  18 |            736 |        0 |         44 |              16 |           16 |             EvenSpacing |     7.812500e-03, 2.452795e-02 |
|  19 |            848 |        0 |         51 |              16 |           16 |             EvenSpacing |     7.812500e-03, 1.915421e-02 |
|  20 |             64 |        0 |          2 |              16 |           16 |         EvenPow2Spacing |     7.812500e-03, 7.831517e-01 |
|  21 |            528 |        0 |         31 |              16 |           16 |         EvenPow2Spacing |     7.812500e-03, 4.300416e-02 |
|  22 |            352 |        1 |         11 |              16 |           16 |          ExplicitValues |     7.812500e-03, 7.102135e-03 |
|  23 |            352 |        0 |         11 |              16 |           16 |          ExplicitValues |     7.812500e-03, 1.184082e-02 |
|  24 |            352 |        0 |         11 |              16 |           16 |          ExplicitValues |     7.812500e-03, 1.079952e-02 |
|  25 |            416 |        1 |         13 |              16 |           16 |          ExplicitValues |     7.812500e-03, 7.725618e-03 |
|  26 |           1008 |        1 |         61 |              16 |           16 |         EvenPow2Spacing |     7.812500e-03, 7.723356e-03 |

Best Solution
|  ID |  Memory (bits) | Feasible | Table Size | Breakpoints WLs | TableData WL | BreakpointSpecification |             Error(Max,Current) |
|  22 |            352 |        1 |         11 |              16 |           16 |          ExplicitValues |     7.812500e-03, 7.102135e-03 |
solution = 
  1×1 FunctionApproximation.LUTSolution with properties:

          ID: 22
    Feasible: "true"

然后,您可以使用 approximate 方法来生成包含查找表逼近的子系统。

版本历史记录

在 R2018a 中推出