| 123456789101112131415161718192021222324252627282930313233343536373839 |
- package main
- import (
- "math"
- "math/rand"
- "gonum.org/v1/gonum/optimize"
- "gonum.org/v1/plot/plotter"
- )
- func main() {
- points := plotter.XYs{}
- for i := 0; i < 10; i++ {
- points = append(points, plotter.XY{
- X: 100 * rand.Float64(),
- Y: 100 * rand.Float64(),
- })
- }
- Func := func(x []float64) float64 {
- if len(x) != 2 {
- panic("illegal x")
- }
- var sum float64
- for _, point := range points {
- sum += math.Sqrt(math.Pow(point.X-x[0], 2) + math.Pow(point.Y-x[1], 2))
- }
- return sum
- }
- problem := optimize.Problem{
- Func: Func,
- Grad: nil,
- Hess: nil,
- Status: nil,
- }
- _ = problem
- }
|