ex_9sqp2.c

来自「an modern SQP method to make the origina」· C语言 代码 · 共 56 行

C
56
字号
#include <stdio.h>#include <stdlib.h>#include <math.h>#include "math_util.h"int n_fun;main(){    long double tol, *x;    int n, m, p;    void ex9_fun( long double *, long double *, long double * );    void sqp_2( void(*)(long double *, long double *, long double *),        long double *, int, int, int, long double );            n_fun = 0;       	n = 3;	m = 1;	p = 0;		x = a1d_allo_dbl( n );		x[0] = 2.6;	x[1] = 2;	x[2] = 2;		tol = 1.0e-4;	    sqp_2( ex9_fun, x, n, m, p, tol );        printf("\nSolution x: ");    print_vec_dbl( x, n );    printf("\n");    printf(" # of function evaluations: %d\n",n_fun);}/*	*/void ex9_fun( f, g, x )long double *f, *g, *x;{   n_fun++;    *f = (x[0]-x[1])*(x[0]-x[1])+pow((x[1]-x[2]),4.0);   g[0]= (1.0+x[1]*x[1])*x[0]+x[2]*x[2]*x[2]*x[2]-3.0;      return;}/*itt = 16, f = 1.080e-08, |g| = 2.561e-05, |dx| = 2.910e-03, |dL| = 1.055e-04norm( dL ) = 3.940e-05Solution x:  1.005064e+00  1.005053e+00  9.948896e-01 # of function evaluations: 69*/

⌨️ 快捷键说明

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