本文用C++实现了求一个简单函数的定积分
(目前仅支持一元四则混合运算)
说明:
求定积分部分采用的是辛普森积分法
表达式匹配部分采用的是表达式二叉树计算
code:
/*
Date:2018.12.2
Author:DeepWave
*/
#include<bits/stdc++.h>
using namespace std;
#define Var map<string,double>
const double eps = 1e-12; //精度设置
Var vars; //变量预定义
string str; //表达式
string variable; //变量名
double a, b; //积分上下限
class Expression;
class Constant;
class UnkownNumber;
class Operation;
class Integral;
Expression *expressionTree(string s, int start, int len);
void Initialization();
class Expression
{
public:
virtual double Evaluate(Var v)
{
return 0;
}
};
Expression *EXP; //表达式树
/*
常数类
*/
class Constant : public Expression
{
public:
double value;
Constant(double value)
{
this->value = value;
}
double Evaluate(Var vars)
{
return value;
}
};
/*
操作符类
由传入的左