Форум программистов, компьютерный форум CyberForum.ru

Решения тригонометрического уравнения - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти сумму модулей элементов массива, расположенных после первого отрицательного элемента http://www.cyberforum.ru/cpp-beginners/thread679901.html
Найти сумму модулей элементов массива, расположенных после первого отрицательного элемента. Вот код: #include <conio.h> #include <math> #pragma argsused int main(int argc, char* argv) { int a,n, i, ot, s;
C++ графы в ближайшие несколько дней нужна программа и блок-схема перевода матрицы инцидентности в список ребер на С++ , с языком почти не знаком. http://www.cyberforum.ru/cpp-beginners/thread679895.html
Классы. Сортировка обьектов класса C++
нужно отсортировать страны в континенте..программа вроде работает..но где-то ошибка..помогите найти...мелкие ошибки плохо ищутся..а мне сдать срочно надо.. #include<math.h> #include<stdio.h> #include<stdlib.h> #include<conio.h> #include<time.h> #include<dos.h> #include<string.h>
Из массива A удалить те цепочки нечетных элементов, в которых нет ни одного элемента из массива B C++
Пожалуйста помогите! Из массива A удалить те цепочки нечетных элементов, в которых нет ни одного элемента из массива B. Пример: массив A: 3 2 7 5 2 1 2 6 3 9 массив B: 1 2 5 4 8 Массив A после удаления примет вид: A: 2 7 5 2 1 2 6.
C++ Определить,является ли заданное число x корнем полинома,коэффициенты которого заданы в массиве по возрастанию степеней http://www.cyberforum.ru/cpp-beginners/thread679886.html
Определить,является ли заданное число x корнем полинома,коэффициенты которого заданы в массиве по возрастанию степеней.
C++ найти число сочетаний из n элементов по m найти число сочетаний из n элементов по m подробнее

Показать сообщение отдельно
isaak
101 / 38 / 9
Регистрация: 17.10.2010
Сообщений: 634
24.10.2012, 23:43     Решения тригонометрического уравнения
Всем доброго время суток. Написать программу для решения уравнения
http://www.cyberforum.ru/cgi-bin/latex.cgi?a*\sin(x) + b*\cos(x) = c. Параметры a, b и c вводятся пользователем. Предусмотреть ситуацию, когда уравнение решений не имеет (например http://www.cyberforum.ru/cgi-bin/latex.cgi?|c| > \sqrt{{a}^{2} + {b}^{2}}).
При условии, что http://www.cyberforum.ru/cgi-bin/latex.cgi?{a}^{2} + {b}^{2}\neq 0 делим обе части уравнения на http://www.cyberforum.ru/cgi-bin/latex.cgi?\sqrt{{a}^{2} + {b}^{2}} получаем
http://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{a}{\sqrt{{a}^{2} + {b}^{2}}}*\sin(x) + \frac{a}{\sqrt{{a}^{2} + {b}^{2}}}*\cos(x)= \frac{c}{\sqrt{{a}^{2} + {b}^{2}}}
http://www.cyberforum.ru/cgi-bin/latex.cgi?\sin(x)*\cos(\alpha) + \cos(x)*\sin(\alpha) = \frac{c}{\sqrt{{a}^{2} + {b}^{2}}}
В итоге приводится к следующему виду http://www.cyberforum.ru/cgi-bin/latex.cgi?\sin(x + \alpha) = \frac{c}{\sqrt{{a}^{2} + {b}^{2}}} Откуда получается:
http://www.cyberforum.ru/cgi-bin/latex.cgi?x + \alpha ={(-1)}^{n}*\arcsin(\frac{c}{\sqrt{{a}^{2} + {b}^{2}}}) + \pi * n \Rightarrow x = {(-1)}^{n}*\arcsin(\frac{c}{\sqrt{{a}^{2} + {b}^{2}}}) + \pi * n - \alpha
Для определения угла http://www.cyberforum.ru/cgi-bin/latex.cgi?\alpha я использовал следующее соотношение:
http://www.cyberforum.ru/cgi-bin/latex.cgi?\sin(\alpha)= \frac{b}{\sqrt{{a}^{2} + {b}^{2}}} и http://www.cyberforum.ru/cgi-bin/latex.cgi?\cos (\alpha)= \frac{a}{\sqrt{{a}^{2} + {b}^{2}}}
http://www.cyberforum.ru/cgi-bin/latex.cgi?\tan(\alpha)=\frac{\sin(\alpha )}{\cos(\alpha)} = \frac{b}{a}
http://www.cyberforum.ru/cgi-bin/latex.cgi?\alpha = \arctan(\frac{b}{a})
Вот что мне удалось сделать самому
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <locale>
using namespace std;
int main ()
{
   setlocale( LC_ALL,"Russian" );
    int n;
    double  a, b, c;
    double x, alpha;
    cout<<"a = "; cin>>a;
    cout<<"b = "; cin>>b;
    cout<<"c = "; cin>>c;
    cout<<"n = "; cin>>n;
     if (fabs(c) > pow(a*a + b*b,(1/2)) || a*a + b*b == 0 ) // контроль введенных данных
{
 cout<<"Уравнение решений не имеет \n";
}
 else
{
    alpha = atan2(b,a);
   x = pow((-1.0),n)*asin(c/pow(a*a + b*b,(1/2))) + n*asin(-1.0) - atan2(b,a);
   cout<<"x = "<<x;
    }
system("pause");
    return 0;
}
Но программа не совсем верно считает. Подскажите пожалуйста в чем ошибка??????? Заранее огромное спасибо.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 10:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru