⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ex_3.c

📁 柯西方法解方程
💻 C
字号:
#include <stdio.h>#include <stdlib.h>#include <math.h>#include <time.h>#include "math_util.h"int n_fun, n_grad;main(){    clock_t time_0, time_1;    long double dtime;    long double tol, *x;    int n;    long double ex3_fun( long double * );    void ex3_dfun( long double *, long double * );    long double line_search( long double(*)(), long double, long double *,                             long double *, int, long double );    void cauchy( long double(*)(), void(*)(), long double *, int,                  long double );    	n_fun = 0;	n_grad = 0;	n = 4;	x = a1d_allo_dbl( n );    vec_null( x, n );	tol = 1.0e-4;		time_0 = clock();    cauchy( ex3_fun, ex3_dfun, x, n, tol );    time_1 = clock();    dtime = (long double)(time_1-time_0)/((long double)CLOCKS_PER_SEC);            printf("\nSolution x: ");    print_vec_dbl( x, n );    printf("\n");    printf(" # of function evaluations: %d\n",n_fun);    printf(" # of gradient evaluations: %d\n",n_grad);    printf(" Solution time: %Le",dtime);}/*	Wood function*/long double ex3_fun( x )long double *x;{   long double f, t1, t3, t5, t6, t8, t10, t11, t12, t13, t14,                x1, x2, x3, x4;      n_fun++;      x1 = x[0];   x2 = x[1];   x3 = x[2];   x4 = x[3];   t1 = x1*x1;   t3 = pow(x2-t1,2.0);   t5 = pow(1.0-x1,2.0);   t6 = x3*x3;   t8 = pow(x4-t6,2.0);   t10 = pow(1.0-x3,2.0);   t11 = x2-1.0;   t12 = t11*t11;   t13 = x4-1.0;   t14 = t13*t13;   f = 100.0*t3+t5+90.0*t8+t10+0.101E2*t12+0.101E2*t14+0.198E2*t11*t13;        return( f );}void ex3_dfun( df, x )long double *df, *x;{   long double t1, t6, x1, x2, x3, x4;   n_grad++;      x1 = x[0];   x2 = x[1];   x3 = x[2];   x4 = x[3];   t1 = x1*x1;   t6 = x3*x3;   df[0] = -400.0*(x2-t1)*x1-2.0+2.0*x1;   df[1] = 0.2202E3*x2-200.0*t1-0.4E2+0.198E2*x4;   df[2] = -360.0*(x4-t6)*x3-2.0+2.0*x3;   df[3] = 0.2002E3*x4-180.0*t6-0.4E2+0.198E2*x2;}/****  Norm(grad f) <= epsSolution x:  9.999592e-01  9.999183e-01  1.000041e+00  1.000082e+00 # of function evaluations: 7562 # of gradient evaluations: 1146 Solution time: 3.645000e+01*/

⌨️ 快捷键说明

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