anchor.diff:      [6.; 3. ;22. ]
       ]
       |> Matrix.ofSeq
  +
   let yVectorMulti = 
       let transformX (x:Matrix<float>) =
           x
  
positive.code: let k = 1000
  
  // 2.4 define an initial guess
  //     For many problems you can set a default value or let the user decide to choose an appropriate guess.
  //     In the case of an exponential or log model you can use the solution of the linearized problem as a first guess.
  let initialParamGuess (x_data:float []) (y_data:float [])=
      //gets the linear representation of the problem and solves it by simple linear regression (prone to least-squares-deviations at high y_Values)
      let y_ln = y_data |> Array.map (fun x -> Math.Log(x)) |> vector
      let linearReg = LinearRegression.OrdinaryLeastSquares.Linear.Univariable.coefficient (vector x_data) y_ln
      //calculates the parameters back into the exponential representation
      let a = exp linearReg.[0]
      let b = linearReg.[1]
  
negative.code: 
  // 2.5 create the solverOptions
  let solverOptions = 
      let guess = initialParamGuess x_DataN y_DataN
      NonLinearRegression.createSolverOption 0.0001 0.0001 1000 guess
  
  
  // 3. get coefficients
  let coefficientsExp = GaussNewton.estimatedParams model solverOptions x_DataN y_DataN
  //val coefficients = vector [|5.68867298; 0.7263428835|]
  
  
  