A, B, C가 주어질 때, 를 만족하는 를 찾아야 한다. 절대/상대 오차는 까지 허용된다.
수치해석을 들으셨다면 쉽게 푸실 수 있습니다. 뉴턴-랩슨법을 이용하면 됩니다.
문제에서 제시된 에서 를 이항해주면 가 됩니다. 그러면 가 됩니다.
이제 이 둘을 이용해서 근사해를 구하면 되는데, 절대/상대 오차는 가 될때까지 반복을 해야합니다. 이를 위해서는 인 동안 계속 반복하면 됩니다.
#include <bits/stdc++.h>
using namespace std;
int main(void)
{
double a, b, c, now = 0, next;
cin >> a >> b >> c;
while(fabs(a * now + b * sin(now) - c) > 0.000000001)
{
next = now - (a * now + b * sin(now) - c) / (a + b * cos(now));
now = next;
}
cout << fixed;
cout.precision(9);
cout << now;
return 0;
}