LMCAS
Lamina Computer Algebra System
载入中...
搜索中...
未找到
solve_transcendental.hpp
浏览该文件的文档.
1/**
2 * @file solve_transcendental.hpp
3 * @brief 超越方程求解:三角、指数、对数方程的符号反演。
4 */
5#pragma once
6
7#include "symbolic.hpp"
9#include "result.hpp"
10#include <vector>
11#include <memory>
12#include <string>
13#include <optional>
14
15namespace LMCAS {
16
17/** @brief 换元结果,记录换元表达式、换元后的多项式及换元变量名。 */
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 */
32 const std::shared_ptr<SymbolicExpr>& expr, const std::string& var,
34
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 */
46 const std::shared_ptr<SymbolicExpr>& expr,
47 const std::string& var);
48
49}
#define LMCAS_API
const std::vector< Polynomial< BigInt > > const BigInt ComputationContext & context
Result< SolutionSet > SolveResult
const std::string ComputationContext const SolveOptions & options
std::shared_ptr< SymbolicExpr > u_expr
换元表达式(u = f(x) 中的 f(x))
SolveResult solve_transcendental(const ExprPtr &expr, const std::string &var, ComputationContext &context, const SolveOptions &options)
Result< std::optional< SubstitutionResult > > detect_substitution(const std::shared_ptr< SymbolicExpr > &expr, const std::string &var)
std::shared_ptr< SymbolicExpr > poly_in_u
换元后关于 u 的多项式
方程求解选项,控制数值求解行为和结果形式.
换元结果,记录换元表达式、换元后的多项式及换元变量名。
方程求解策略调度器 solve_dispatch 及相关选项结构体.
符号表达式主类 SymbolicExpr 及其工厂方法,运算接口.