- C23panweiming's blog
一元计算器
- 2024-9-10 19:42:39 @
求解一元未知数的代码(无法求出多个解)
在代码中修改公式求解方程
方法:二分暴力
#include<bits/stdc++.h>
using namespace std;
const double EPS=0.00000000000001;//精度
const double MAX=(2e31-1);//上限
double n;
double qgs(double (*fun)(double),double x,double eps)
{
double l=-MAX,m=0,r=MAX;
int t=0;
while(abs(x-m*m)>eps && l<=r && ++t<=99999)//二分法
{
m=(l+r)/2.0;
if(fun(m)<x)
l=m+eps;
else
r=m-eps;
}
return m;
}
double cmp(double x)//公式函数
{
return x*x;//例如这个是求根号的
/*其他例子
x*x+5 x*x+5=输入
2*x 2*x=输入
abs(x) |x|=输入
*/
}
int main()
{
cout<<"输入等式右边= ";
cin>>n;//输入
printf("输出未知数x= %.14lf\n",qgs(cmp,n,EPS));//输出
}