GSL求根
来源:互联网 发布:win7网络图标有个红叉 编辑:程序博客网 时间:2024/05/16 15:57
demo_fn.h
#ifndef ___DEMO_FN_HHH_HH_H_#define ___DEMO_FN_HHH_HH_H_struct quadratic_params { double a, b, c; };double quadratic (double x, void *params);double quadratic_deriv (double x, void *params);void quadratic_fdf (double x, void *params, double *y, double *dy);#endif
demo_fn.c
#include "demo_fn.h"doublequadratic (double x, void *params){ struct quadratic_params *p = (struct quadratic_params *) params; double a = p->a; double b = p->b; double c = p->c; return (a * x + b) * x + c;}doublequadratic_deriv (double x, void *params){ struct quadratic_params *p = (struct quadratic_params *) params; double a = p->a; double b = p->b; double c = p->c; return 2.0 * a * x + b;}voidquadratic_fdf (double x, void *params, double *y, double *dy){ struct quadratic_params *p = (struct quadratic_params *) params; double a = p->a; double b = p->b; double c = p->c; *y = (a * x + b) * x + c; *dy = 2.0 * a * x + b;}
main.c
#include <stdio.h>#include <gsl/gsl_errno.h>#include <gsl/gsl_math.h>#include <gsl/gsl_roots.h>#include "demo_fn.h"// #include "demo_fn.c"#pragma comment(lib, "libgsl_d.lib")#pragma comment(lib, "libgslcblas_d.lib")intmain (void){ int status; int iter = 0, max_iter = 100; const gsl_root_fsolver_type *T; gsl_root_fsolver *s; double r = 0, r_expected = sqrt (5.0); double x_lo = 0.0, x_hi = 5.0; gsl_function F; struct quadratic_params params = {1.0, 0.0, -5.0}; F.function = &quadratic; F.params = ¶ms; T = gsl_root_fsolver_brent; s = gsl_root_fsolver_alloc (T); gsl_root_fsolver_set (s, &F, x_lo, x_hi); printf ("using %s method\n", gsl_root_fsolver_name (s)); printf ("%5s [%9s, %9s] %9s %10s %9s\n", "iter", "lower", "upper", "root", "err", "err(est)"); do { iter++; status = gsl_root_fsolver_iterate (s); r = gsl_root_fsolver_root (s); x_lo = gsl_root_fsolver_x_lower (s); x_hi = gsl_root_fsolver_x_upper (s); status = gsl_root_test_interval (x_lo, x_hi, 0, 0.001); if (status == GSL_SUCCESS) printf ("Converged:\n"); printf ("%5d [%.7f, %.7f] %.7f %+.7f %.7f\n", iter, x_lo, x_hi, r, r - r_expected, x_hi - x_lo); } while (status == GSL_CONTINUE && iter < max_iter); return status;}
- GSL求根
- GSL多项式求根
- GSL求根2
- 求根
- GSL
- gsl
- 方程求根
- 方程求根!
- 二分法求根
- 多项式求根
- 二分法求根
- 弦截法求根
- 二分求根
- GSL(Windows)
- gsl eclipse
- GSL介绍
- gsl库
- GSL排列组合
- Win32 application 与 Win32 Console application
- 暑期总结
- Elon Musk(伊隆·马斯克):无限的创想与意志的胜利
- HDU 4622 Reincarnation(SAM 后缀自动机 求子串的不同子串个数)
- Cocos2d-x学习之windows 7的visual studo 2010开发环境安装
- GSL求根
- C#读取Oracle中DATE类型的值,数据表中为空时,怎么去读?
- Qt之对话框设计——利用QPalette改变控件颜色
- 用opencv改变图片大小(像素、尺寸)
- JAVA的类加载机制
- goautodial 安装配置
- OC 将字典写入数组 并将数组写入文件 对文件内容操作
- linklist 链表的实现
- UIKit和Core Graphics绘图——绘制光泽,仿射变换与矩阵变换