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

Решение нелинейных уравнений - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ 4.53. Дано трехзначное число. Определить: а) входит ли в него цифра 6, б) входит ли в него цифра n http://www.cyberforum.ru/cpp-beginners/thread828591.html
4.53. Дано трехзначное число. Определить: а) входит ли в него цифра 6, б) входит ли в него цифра n
C++ Определить для числа: является ли сумма его цифр двузначным числом; больше ли сумма его цифр числа "а" 4.24. Дано двузначное число. Определить: а) является ли сумма его цифр двузначным числом; б) больше ли числа "a" сумма его цифр. http://www.cyberforum.ru/cpp-beginners/thread828589.html
C++ 2.35.Даны цифры двух двузначных чисел, записываемых в виде a2a1 и b2b1, где а1 и b1 — число единиц, a2 и b2— число десятков. Получить цифры числа, ра
2.35.Даны цифры двух двузначных чисел, записываемых в виде a2a1 и b2b1, где а1 и b1 — число единиц, a2 и b2— число десятков. Получить цифры числа, равного сумме заданных чисел (известно, что это число двузнач¬ное). Слагаемое— двузначное число и число-результат не определять; условный оператор не использовать.
В массиве найти все положительные элементы и выбрать из них наименьший C++
Пусть a=(i-1)/(i+1)+sin((i-1)/(i+1)), где i=1,2,3,4,..,20 Среди чисел a,a,…,a найти все положительные, среди положительных выбрать наименьшее число. Вроде бы я и знаю, как это сделать, но что-то оно у меня не работает Help me please
C++ вот тут скрин http://www.cyberforum.ru/cpp-beginners/thread828579.html
вот, что не так
C++ Работа с файлом (передать указатель на файл в функцию, вернуть указатель на файл из функции) Подскажите как передать указатель на файл в функцию, как вернуть указатель на файл из функции. void Open() // из этой функции вернуть указатель на файл { ifstream fin("500.txt"); /* // // // */ подробнее

Показать сообщение отдельно
Sivilan
6 / 6 / 0
Регистрация: 17.03.2013
Сообщений: 66
05.04.2013, 00:53     Решение нелинейных уравнений
Реализуйте алгоритмы методов нахождения корней нелинейного уравнения заданного согласно варианту и вычислите все его корни в заданном диапазоне.
Входными данными являются:
1. Диапазон поиска корней, т.е. минимальное и максимальное и значения х (например: от -1000 до 1000);
2. Величина шага разбиения диапазона поиска (например: 0,1);
3. Требуемая точность вычисления корня (например: 0,001).
Выходными данными являются:
1. Интервалы x, в которых функция меняет свой знак;
2. Уточненное (по методу половинного деления) значение корня;
3. Значение функции в точке соответствующей найденному корню
уравнение:2x-x2-0.5=0
а)Решение нелинейных уравнений распадается на два этапа: отделение корней уравнений и уточнение корней нелинейных уравнений.
На первом этапе необходимо исследовать уравнение и выяснить, имеются корни или нет. Если корни имеются, то сколько их, и затем определить интервалы, в каждом из которых находится единственный корень.Процесс отделения корней нелинейных уравнений основывается на следующих теоремах.
Теорема 1. Если функция непрерывна на отрезке и меняет на концах отрезка знак (т.е. ), то на содержится хотя бы один корень.
Теорема 2. Если функция непрерывна на отрезке , выполняется условие вида и производная сохраняет знак на , то на отрезке имеется единственный корень.
Теорема 3. Если функция является многочленом степени и на концах отрезка меняет знак, то на имеется нечетное количество корней (если производная сохраняет знак на , то корень единственный). Если на концах отрезка функция не меняет знак, то уравнение (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
#include <stdio.h>;
#include <math.h>;
#iclude <iostream.h>;
#icnlude <conio.h>;
void main () { int k; double m,o,fa,fb,ya,yb,y,fx,X,Xmax,Xmin,dx,e;
k=0;
printf ("vvedite Xmin,Xmax,dx,e\n");
scanf("%lf%lf%lf%lf",&Xmax,&Xmin,&dx,&e);
ya= (((pow(2,Xmin))-(pow(Xmin,2))-0.5);
yb=(((pow(2,Xmax))-(pow(Xmin,2))-0.5);
for (X=Xmin;X<=Xmax;X=X+dx)
{
y= (((pow(2,X))-(pow(X,2))-0.5);
fa=ya;
ya=y;
m=f*ya;
{
if (m<=0)
{
ya=y;
k=k+1;
ya=fa;
yb=fb;
o=fabs(y);
do
{
X=(ya+yb)/2;y= (((pow(2,X))-(pow(X,2))-0.5);
if (ya*y>0)
ya=fa;
else yb=Xmax;}
while ((o<=e) && ((yb-ya)<e));}}}
kbhit();
printf ("nomer k %d,nachalo syshestvovaniya %f,konec %f,znach kornya %f,znach fynkc %f",k,ya,yb,y,X);
getch();}
чего в нем не хватает?программа работает
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 00:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru