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

Численное решение уравнения - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Написать функцию, возвращающую количество гласных в произвольном слове http://www.cyberforum.ru/cpp-beginners/thread580222.html
Написать функцию, возвращающую количество гласных в произвольном слове. С помощью нее, определить в тексте слово с максимальным количеством гласных.
C++ Получить сумму тех чисел последовательности, которые нечётны и отрицательны Даны целые числа а1,…,а50. Получить сумму тех чисел данной последовательности, которые нечётны и отрицательны. http://www.cyberforum.ru/cpp-beginners/thread580199.html
Составить программу для вычисления площади кольца по значениям внутреннего и внешнего радиусов C++
1.Составить программу для вычисления площади кольца по значениям внутреннего и внешнего радиусов, используя функцию вычисления площади круга. 2. Даны три целых числа. Определить, сумма цифр...
C++ Написать программу, которая удаляет из введенной с клавиатуры строки конечные пробелы
Пожалуйста помогите... Написать программу, которая удаляет из введенной с клавиатуры строки конечные пробелы. заранее спасибо
C++ Написать программу сортировки http://www.cyberforum.ru/cpp-beginners/thread580159.html
Необходимо написать программу с комментариями(обязательно подробными) для сортировки массива, считывающегося из файла, причём этот массив может быть бесконечно длинным.Сортировка идёт по принципу:...
C++ массив в си++ помогите пожалуйста в написании программы( Создать класс Array – одномерный массив действительных чисел с задаваемыми границами индексов. Должны допускаться и отрицательные индексы. Определить... подробнее

Показать сообщение отдельно
akaelwins
1 / 1 / 2
Регистрация: 11.04.2012
Сообщений: 17

Численное решение уравнения - C++

20.05.2012, 13:27. Просмотров 962. Ответов 0
Метки (Все метки)

Добрый день, имеется следующее уравнение:
http://www.cyberforum.ru/cgi-bin/latex.cgi?sin(t) = b*{e}^{v*t}
b и v - константы, v > 0
Решаю его численно методом Ньютона, и в принципе, всё хорошо, 1 корень получаю, но мне нужен ещё один, следующий за ним, и вот тут не пойму, как его получить.
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
30
31
32
33
34
35
36
37
#include <math.h>
#include <iostream>
#include <iomanip>
#include <algorithm>
using namespace std;
 
double f(double t, double b, double v)
 {
  return sin(t) - b*exp(v*t);
 }
 
double dfdt(double t, double b, double v)
 {
  return cos(t) - b*v*exp(v*t);
 }
 
int main()
{
double b = 0.5;
double v = 0.2;
double t[] = {0, 0};
const int count=100;
double fa=f(t[0], b, v);
double e=10e-15;
for(int i=0; i<count && fabs(fa) > e ; i++)
 {
  
 t[0] = t[0] - f(t[0], b, v) / dfdt(t[0], b, v);
 fa= f(t[0], b, v);
 
 cout<<"t["<<i<<"]= "<< setprecision(10) << t[0] <<"  f("<< t[0] <<")="
                     << setprecision(10) << fa << endl;
 }
cout<<"result: t1 = "<< t[0] <<endl;
system("pause");
return 0;
}
Добавлено через 30 минут
Вопрос снимается, сам догнал)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru