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

📄 ex_2.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 tol, *x, dtime;    int n;    long double ex2_fun( long double * );    void ex2_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 = 2;	x = a1d_allo_dbl( n );	x[0] = 0.50;	x[1] = 0.50;	tol = 1.0e-4;		time_0 = clock();    cauchy( ex2_fun, ex2_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);}/*	Easson function*/long double ex2_fun( x )long double *x;{   long double f, t1, t2, t8, t11, x1, x2;      n_fun++;      x1 = x[0];   x2 = x[1];   t1 = x1*x1;   t2 = x2*x2;   t8 = t1*t1;   t11 = t2*t2;   f = 6.0/5.0+t1/10+(1.0+t2)/t1/10+(t1*t2+100.0)/t8/t11/10;        return( f );}void ex2_dfun( df, x )long double *df, *x;{   long double t1, t3, t5, t10, t11, t15, t19, x1, x2;   n_grad++;      x1 = x[0];   x2 = x[1];   t1 = x2*x2;   t3 = x1*x1;   t5 = 1/t3/x1;   t10 = t3*t1+100.0;   t11 = t3*t3;   t15 = t1*t1;   t19 = 1/t3;   df[0] = x1/5-(t1+1.0)*t5/5+t5/t1/5-2.0/5.0*t10/t11/x1/t15;   df[1] = x2*t19/5+t19/t1/x2/5-2.0/5.0*t10/t11/t15/x2;}/****  Norm(grad f) <= epsSolution x:  1.743450e+00  2.029806e+00 # of function evaluations: 5045 # of gradient evaluations: 418 Solution time: 8.783333e+00*/

⌨️ 快捷键说明

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