ex_1qn3.c

来自「an quasi-newton method used in non-linea」· C语言 代码 · 共 49 行

C
49
字号
#include <stdio.h>#include <stdlib.h>#include <math.h>#include "math_util.h"int n_fun;main(){    long double tol, *x;    int n;    long double ex1_fun( long double * );    void ex1_dfun( long double *, long double * );    void ex1_hess( long double **, long double * );    void q_newton_3( long double(*)(),                 long double *, int, long double );    	n_fun = 0;	n = 2;	x = a1d_allo_dbl( n );	x[0] = -2.9;	x[1] = 2.0;	tol = 1.0e-4;	    q_newton_3( ex1_fun, x, n, tol );        printf("\nSolution x: ");print_vec_dbl( x, n );    printf("\n # of function evaluations: %d\n",n_fun);}/*	Rosenbrock's function*/long double ex1_fun( x )long double *x;{   long double f;      n_fun++;   f = 100*(x[1]-x[0]*x[0])*(x[1]-x[0]*x[0]) + (1.0-x[0])*(1.0-x[0]);      return( f );}/****  Norm( h ) <= epsSolution x:  9.999977e-01  9.999953e-01 # of function evaluations: 1956 Solution time: 3.283333e+00*/

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?