LMMC
Lamina Mathematic core
载入中...
搜索中...
未找到
nonlinear.c 文件参考

标量非线性方程求根算法实现。 更多...

#include <math.h>
#include <float.h>
#include "internal.h"
#include "internal/nonlinear_internal.h"
nonlinear.c 的引用(Include)关系图:

浏览该文件的源代码.

函数

void lmmc_nonlinear_do_log (const lmmc_nonlinear_config_t *cfg, size_t iter, lmmc_real_t x, lmmc_real_t f_x)
lmmc_real_t lmmc_nonlinear_midpoint (lmmc_real_t left, lmmc_real_t right)
lmmc_real_t lmmc_nonlinear_half_width (lmmc_real_t left, lmmc_real_t right)
lmmc_real_t lmmc_nonlinear_distance (lmmc_real_t left, lmmc_real_t right)
lmmc_status_t lmmc_nonlinear_load_and_validate_config (const lmmc_nonlinear_config_t *cfg, lmmc_nonlinear_config_t *out_cfg)
lmmc_status_t lmmc_nonlinear_x_tolerance (lmmc_real_t x, const lmmc_nonlinear_config_t *cfg, lmmc_real_t *out_x_tol)
void lmmc_nonlinear_reset_result (lmmc_nonlinear_result_t *out_result)
const char * lmmc_nonlinear_failure_string (lmmc_nonlinear_failure_t reason)
 获取失败原因对应的可读字符串.
lmmc_status_t lmmc_nonlinear_default_config (lmmc_nonlinear_config_t *out_cfg)
 生成默认配置.

详细描述

标量非线性方程求根算法实现。

在文件 nonlinear.c 中定义.

函数说明

◆ lmmc_nonlinear_do_log()

void lmmc_nonlinear_do_log ( const lmmc_nonlinear_config_t * cfg,
size_t iter,
lmmc_real_t x,
lmmc_real_t f_x )

在文件 nonlinear.c 第 10 行定义.

引用了 lmmc_nonlinear_config_t::diagnostics, lmmc_diagnostic_emit(), LMMC_DIAGNOSTIC_TRACE , 以及 lmmc_nonlinear_do_log().

被这些函数引用 lmmc_newton_solve(), lmmc_nonlinear_do_log() , 以及 lmmc_secant_solve().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_nonlinear_midpoint()

lmmc_real_t lmmc_nonlinear_midpoint ( lmmc_real_t left,
lmmc_real_t right )

在文件 nonlinear.c 第 19 行定义.

引用了 lmmc_nonlinear_midpoint().

被这些函数引用 lmmc_nonlinear_midpoint().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_nonlinear_half_width()

lmmc_real_t lmmc_nonlinear_half_width ( lmmc_real_t left,
lmmc_real_t right )

在文件 nonlinear.c 第 24 行定义.

引用了 lmmc_nonlinear_half_width().

被这些函数引用 lmmc_nonlinear_half_width().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_nonlinear_distance()

lmmc_real_t lmmc_nonlinear_distance ( lmmc_real_t left,
lmmc_real_t right )

在文件 nonlinear.c 第 32 行定义.

引用了 lmmc_nonlinear_distance().

被这些函数引用 lmmc_nonlinear_distance().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_nonlinear_load_and_validate_config()

lmmc_status_t lmmc_nonlinear_load_and_validate_config ( const lmmc_nonlinear_config_t * cfg,
lmmc_nonlinear_config_t * out_cfg )

在文件 nonlinear.c 第 39 行定义.

引用了 lmmc_nonlinear_config_t::abs_tol, lmmc_nonlinear_config_t::derivative_step, lmmc_nonlinear_default_config(), lmmc_nonlinear_load_and_validate_config(), LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_OK, lmmc_nonlinear_config_t::max_iter, lmmc_nonlinear_config_t::min_derivative, lmmc_nonlinear_config_t::min_step , 以及 lmmc_nonlinear_config_t::rel_tol.

被这些函数引用 lmmc_newton_solve(), lmmc_nonlinear_load_and_validate_config() , 以及 lmmc_secant_solve().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_nonlinear_x_tolerance()

lmmc_status_t lmmc_nonlinear_x_tolerance ( lmmc_real_t x,
const lmmc_nonlinear_config_t * cfg,
lmmc_real_t * out_x_tol )

在文件 nonlinear.c 第 70 行定义.

引用了 lmmc_nonlinear_config_t::abs_tol, lmmc_nonlinear_x_tolerance(), LMMC_REAL_ADD, LMMC_REAL_MUL, LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_NUMERICAL_FAILURE, LMMC_STATUS_OK , 以及 lmmc_nonlinear_config_t::rel_tol.

被这些函数引用 lmmc_nonlinear_x_tolerance().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_nonlinear_reset_result()

void lmmc_nonlinear_reset_result ( lmmc_nonlinear_result_t * out_result)

在文件 nonlinear.c 第 98 行定义.

引用了 lmmc_nonlinear_result_t::converged, lmmc_nonlinear_result_t::failure_reason, lmmc_nonlinear_result_t::function_value, LMMC_NONLINEAR_FAILURE_NONE, lmmc_nonlinear_reset_result(), lmmc_nonlinear_result_t::num_iter, lmmc_nonlinear_result_t::residual_norm , 以及 lmmc_nonlinear_result_t::root.

被这些函数引用 lmmc_newton_solve(), lmmc_nonlinear_reset_result() , 以及 lmmc_secant_solve().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_nonlinear_failure_string()

const char * lmmc_nonlinear_failure_string ( lmmc_nonlinear_failure_t reason)

获取失败原因对应的可读字符串.

在文件 nonlinear.c 第 111 行定义.

引用了 LMMC_NONLINEAR_FAILURE_INVALID_BRACKET, LMMC_NONLINEAR_FAILURE_MAX_ITER, LMMC_NONLINEAR_FAILURE_NONE, LMMC_NONLINEAR_FAILURE_NUMERICAL_ISSUE, LMMC_NONLINEAR_FAILURE_SINGULAR_STEP, lmmc_nonlinear_failure_string() , 以及 LMMC_NONLINEAR_FAILURE_ZERO_DERIVATIVE.

被这些函数引用 lmmc_nonlinear_failure_string().

函数调用图:
这是这个函数的调用关系图:

◆ lmmc_nonlinear_default_config()

lmmc_status_t lmmc_nonlinear_default_config ( lmmc_nonlinear_config_t * out_cfg)

生成默认配置.

在文件 nonlinear.c 第 130 行定义.

引用了 lmmc_nonlinear_config_t::abs_tol, lmmc_nonlinear_config_t::derivative_step, lmmc_nonlinear_config_t::diagnostics, LMMC_DEFAULT_ABS_TOL, LMMC_DEFAULT_REL_TOL, lmmc_nonlinear_default_config(), LMMC_STATUS_INVALID_ARGUMENT, LMMC_STATUS_OK, lmmc_nonlinear_config_t::max_iter, lmmc_nonlinear_config_t::min_derivative, lmmc_nonlinear_config_t::min_step , 以及 lmmc_nonlinear_config_t::rel_tol.

被这些函数引用 lmmc_nonlinear_default_config() , 以及 lmmc_nonlinear_load_and_validate_config().

函数调用图:
这是这个函数的调用关系图: