编写 c++ 程序以求解 e^(x/2)=2sin(x) 从 0<X<2 的方程

Write c++ program to solve eq of e^(x/2)=2sin(x) from 0<X<2

本文关键字:lt 程序 c++ 方程 2sin 编写      更新时间:2023-10-16

这就是我到目前为止所做的。我无法获得第二个根(解决方案)。一旦我得到第一个答案,我不知道该怎么做才能继续循环。请帮助我。

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
    double x, y, y0;
    double dx = 0.01;
    const double EulerConstant = std::exp(1.0);
    x =dx;
    y= sqrt(pow(EulerConstant,x))-2*sin(x);
    y0=y;
    while (y*y0>0)
    {
        y0=y;
        x += dx;
        y = sqrt(pow(EulerConstant,x))-2*sin(x);
    }

    cout << "x =" << x << "n";

    system("pause");
    return 0;
}

有了这个等式,你就会遇到一个精度问题。 此等式的零点接近 x = 0.90 和 x = 1.32,但还不够接近,无法与 epsilon 值进行比较,为您提供任何一个的良好值(示例)。 您既不需要增加步长的精度(例如 0.0001 - 我已经在示例中完成了),也不需要存储每次迭代的值并在值从负数切换到正数(或正数到负数)时进行近似值。