Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

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

Андрей Вешников Ученик (146), открыт 1 неделю назад
2 ответа
Krab Bark Искусственный Интеллект (294599) 1 неделю назад
Это не уравнение, а просто формула.

#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;}
Ксения Райт Гений (97161) 1 неделю назад
Если б надо было, скажем, найти нуль этого выражения, тогда действительно надо было бы решать трансцендентное уравнение, например, методом дихотомии:
 #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]. Вот его и берём за начальное значение нуля и поехали считать:Вот какой нуль в итоге получается. А Вам что надо - Вы даже толком и не написа́ли!
Похожие вопросы