LMCAS
Lamina Computer Algebra System
Toggle main menu visibility
载入中...
搜索中...
未找到
solve_transcendental.hpp
浏览该文件的文档.
1
/**
2
* @file solve_transcendental.hpp
3
* @brief 超越方程求解:三角、指数、对数方程的符号反演。
4
*/
5
#pragma once
6
7
#include "
symbolic.hpp
"
8
#include "
solve_strategies.hpp
"
9
#include "
result.hpp
"
10
#include <vector>
11
#include <memory>
12
#include <string>
13
#include <optional>
14
15
namespace
LMCAS
{
16
17
/** @brief 换元结果,记录换元表达式、换元后的多项式及换元变量名。 */
18
struct
SubstitutionResult
{
19
std::shared_ptr<SymbolicExpr>
u_expr
;
///< 换元表达式(u = f(x) 中的 f(x))
20
std::shared_ptr<SymbolicExpr>
poly_in_u
;
///< 换元后关于 u 的多项式
21
std::string
u_var
;
///< 换元变量名
22
};
23
24
/**
25
* @brief 求解三角、指数、对数类超越方程。
26
* @param expr 待求解的表达式(视为等于零)。
27
* @param var 求解变量名。
28
* @return 完整实数解集。三角函数解族使用精确符号 pi 和新引入的整数参数;
29
* 未求出的原像保留原始谓词,超出处理范围的变换返回 Inconclusive 而非部分根。
30
*/
31
LMCAS_API
SolveResult
solve_transcendental
(
32
const
std::shared_ptr<SymbolicExpr>& expr,
const
std::string& var,
33
ComputationContext
&
context
,
const
SolveOptions
&
options
= {});
34
35
LMCAS_API
SolveResult
solve_transcendental
(
36
const
std::shared_ptr<SymbolicExpr>& expr,
const
std::string& var,
37
const
SolveOptions&
options
= {});
38
39
/**
40
* @brief 检测表达式中可用的换元模式。
41
* @param expr 待分析的表达式
42
* @param var 目标变量名
43
* @return 成功时返回有效换元或空 optional;资源等计算错误保留原错误分类与来源。
44
*/
45
LMCAS_API
Result<std::optional<SubstitutionResult>
>
detect_substitution
(
46
const
std::shared_ptr<SymbolicExpr>& expr,
47
const
std::string& var);
48
49
}
LMCAS::ComputationContext
定义
computation_context.hpp:99
LMCAS::Result
定义
result.hpp:39
LMCAS_API
#define LMCAS_API
定义
lmcas_export.hpp:13
LMCAS
定义
assumption.hpp:11
LMCAS::context
const std::vector< Polynomial< BigInt > > const BigInt ComputationContext & context
定义
exact_factorization.hpp:65
LMCAS::SolveResult
Result< SolutionSet > SolveResult
定义
conditional_result.hpp:77
LMCAS::options
const std::string ComputationContext const SolveOptions & options
定义
expr.hpp:355
LMCAS::SubstitutionResult::u_expr
std::shared_ptr< SymbolicExpr > u_expr
换元表达式(u = f(x) 中的 f(x))
定义
solve_transcendental.hpp:19
LMCAS::solve_transcendental
SolveResult solve_transcendental(const ExprPtr &expr, const std::string &var, ComputationContext &context, const SolveOptions &options)
定义
solve_transcendental.cpp:329
LMCAS::detect_substitution
Result< std::optional< SubstitutionResult > > detect_substitution(const std::shared_ptr< SymbolicExpr > &expr, const std::string &var)
定义
transcendental_solver_substitution.cpp:324
LMCAS::SubstitutionResult::poly_in_u
std::shared_ptr< SymbolicExpr > poly_in_u
换元后关于 u 的多项式
定义
solve_transcendental.hpp:20
LMCAS::SubstitutionResult::u_var
std::string u_var
换元变量名
定义
solve_transcendental.hpp:21
LMCAS::SolveOptions
方程求解选项,控制数值求解行为和结果形式.
定义
solve_strategies.hpp:17
LMCAS::SubstitutionResult
换元结果,记录换元表达式、换元后的多项式及换元变量名。
定义
solve_transcendental.hpp:18
result.hpp
solve_strategies.hpp
方程求解策略调度器 solve_dispatch 及相关选项结构体.
symbolic.hpp
符号表达式主类 SymbolicExpr 及其工厂方法,运算接口.
include
solve_transcendental.hpp
生成于
, 为 LMCAS使用
1.18.0