Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+1

Помогите решить уравнение в С++

По дате
По рейтингу
Аватар пользователя
Новичок
8мес

Если б надо было, скажем, найти нуль этого выражения, тогда действительно надо было бы решать трансцендентное уравнение, например, методом дихотомии:

1234567891011121314151617181920212223
 #include <stdio.h> 
#include <math.h> 
 
double f(double x) 
{ return pow(2., x) + pow(4., x + cos(x)) - 1549.335; } 
 
int main() 
{
  double a, b, c, y;
  while (true)
  {
    printf("a b: ");
    scanf("%lf%lf", &a, &b);
    for (int i = 1;; ++i)
    {
      c = (a + b) *0.5; y = f(c);
      if (y < 0.) a = c;
      else { if (y >= 0.) b = c; else break; }
      if (b - a < 1e-15) break;
      printf("%4d)%20.15f%20.15f\n", i, a, b);
    } 
  } 
} 

Сначала можно посмотреть на график чтобы быть в курсе возможного расположения корней:

В общем единственный корень уравнения расположен на отрезке [4;6]. Вот его и берём за начальное значение нуля и поехали считать:

Вот какой нуль в итоге получается. А Вам что надо - Вы даже толком и не написа́ли!

Аватар пользователя
Искусственный Интеллект
8мес

Это не уравнение, а просто формула.

#include <iostream>
#include <cmath>
using namespace std;
int main(){double x; cin>>x; cout<<pow(2,x)+pow(4,x+cos(x))-1549.335<<endl;}