Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.05.2009, 18:06   #1
Artemm
Пользователь
 
Регистрация: 25.05.2009
Сообщений: 14
Восклицание Метод простой итерации

Помогите еще с таким заданием пожалуйста. Нужно решение в С++

Метод простой итерации найти все действительные корни уравнения
Оригинал: Метод простої ітерації знайти всі дійсні корені рівняння
( E=10^-5 ) ( x-tgx=0 ) xє [ 0, П/2]

Последний раз редактировалось Sazary; 26.05.2009 в 22:29.
Artemm вне форума Ответить с цитированием
Старый 26.05.2009, 22:18   #2
Artemm
Пользователь
 
Регистрация: 25.05.2009
Сообщений: 14
По умолчанию

Ау люди , что никто не поможет ?
Artemm вне форума Ответить с цитированием
Старый 26.05.2009, 22:29   #3
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Выкладывайте свой код. Иначе тема закроется.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 26.05.2009, 23:26   #4
Artemm
Пользователь
 
Регистрация: 25.05.2009
Сообщений: 14
По умолчанию

Вот такой код
Код:
#include<math.h>
#include<stdio.h>
float E,xk1,xk,x0;
float f(float x);
float modul(float x);
main()
{
	printf("vvedit E \n");
	scanf("%f",&E);
    printf("vvedit x0 \n");
	scanf("%f",&x0);


	xk=x0;
m1: xk1=f(xk);
	if(modul(xk1-xk)<E && modul(f(xk1)<E)) goto m2; else xk=xk1; goto m1;
	
m2: printf(" korin= %f", xk1);
	printf("\n f(xk1)= %f", x-sin(x)/cos(x));
	getchar();
	getchar();
	return 0;

}
float modul(float x)
{
	if (x<0) x=-x;
	return x;
}
float f(float x)
{
	return x-sin(x)/cos(x);
}

Последний раз редактировалось Sazary; 26.05.2009 в 23:41.
Artemm вне форума Ответить с цитированием
Старый 26.05.2009, 23:47   #5
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Что это?
Зачем используете goto?
Зачем функция modul? Есть стандартная fabs.

Вот. Почитайте о методе итераций:
http://ru.wikipedia.org/wiki/Численн...B8.D1.82.D0.BC

В данном случае, как я понимаю, уравнение будет иметь вид: x(i+1) = arctg(x(i))
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 27.05.2009, 22:39   #6
Artemm
Пользователь
 
Регистрация: 25.05.2009
Сообщений: 14
По умолчанию

нечего не понял , можете подробней обяснить, а лутше воплотить в код , или порядок действий написать , пожалуйста
Artemm вне форума Ответить с цитированием
Старый 27.05.2009, 23:14   #7
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Там описан алгоритм.

Выбираете начальное приближение (например, pi/4).
x0 = M_PI/4;
Далее запускаете цикл. В теле цикла:
x1 = atan(x0);
ct = fabs(x1-x0);
x0 = x1;
Условие выхода - ct<E
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 28.05.2009, 17:31   #8
Artemm
Пользователь
 
Регистрация: 25.05.2009
Сообщений: 14
По умолчанию

Незнаю , не тум тум , неполучяется вообще , О.
Artemm вне форума Ответить с цитированием
Старый 28.05.2009, 17:38   #9
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от Artemm
Незнаю , не тум тум , неполучяется вообще , О.
Переводится как "напишите все за меня". Думать сами не хотите?
Все написал выше. Какая строчка непонятна?
http://alglib.sources.ru/equations/feqx.php
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 28.05.2009, 23:21   #10
Artemm
Пользователь
 
Регистрация: 25.05.2009
Сообщений: 14
По умолчанию

Код в Pascal
помогите его переделать в С++ плиз

Цитата:
Program Iteracia;
Uses crt;
Label m1, m2;
Var xk, xk1, x0, eps, fk: real;
Function f1(x:real): real;
Begin
f1:= (x-sin(x)/cos(x));
End;
Function f2(x: real): real;
Begin
f2:=(2x-sin(x)/cos(x));
End;
Begin
Writeln(‘ Введіть значення параметрів x0, eps ’);
Readln( x0, eps);
xk:=x0;
m1: fk:=f2(xk);
xk1:=f2(xk);
If (abs(xk1-xk)<eps and abs(f1(xk1)<eps)) goto m2;
xk:=xk1;
goto m1;
m2: Writeln (‘x=’, xk1, ‘ f(x)=’, f1(xk1));
End.
Artemm вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Простой chat eldar Работа с сетью в Delphi 12 05.11.2010 17:01
Метод итерации для уравнений Hellgrom Паскаль, Turbo Pascal, PascalABC.NET 0 10.05.2009 18:38
Простой тест Kivik Мультимедиа в Delphi 2 20.01.2009 15:44
Программа "простые итерации". Готовый код. Проблема с компилированием. Oleg330 Общие вопросы C/C++ 9 25.12.2008 23:51
Изменение расширения файла при каждой итерации Jack Torrance Помощь студентам 3 18.12.2007 23:24