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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.01.2011, 23:41   #1
Foralberg
Пользователь
 
Регистрация: 30.01.2011
Сообщений: 10
По умолчанию Решение нелинейных уравнений методом хорд и методом простой итерации(С++)

Help, please, послезавтра сдавать лабу, а я не знаю как делать=(
Нужно решить нелинейное уравнение методом хорд и методом простой итерации (C++)
sin(7x)+2x=6
Foralberg вне форума Ответить с цитированием
Старый 31.01.2011, 00:04   #2
Демик
Форумчанин
 
Аватар для Демик
 
Регистрация: 30.01.2011
Сообщений: 231
По умолчанию

Наработки в студию, авось помогут)
Злостный анимешнег =^.^=
Демик вне форума Ответить с цитированием
Старый 31.01.2011, 00:50   #3
Foralberg
Пользователь
 
Регистрация: 30.01.2011
Сообщений: 10
По умолчанию

Код:
#include "stdafx.h"
#include <iostream.h>
#include <math.h>

int k;
float f(float x)
{return (sin(7*x)+2*x-6);
}
float fi(float x, float l)
{return(x+l*f(x));
}
float Metod_hord(float a, float b, float Eps)
{
	float x;
	k=0;
	do{x=a-(f(a)*(b-a))/(f(b)-f(a));
	if(f(a)*f(x)<0)
		b=x;
	else
		a=x;
	k++;
	}
	while(fabs (f(x)>Eps));
	return x;
}
float Metod_iter (float x0, float l, float Eps)
{float x1;
do
{
	x0=x1; x1=fi(x0, l); k++;}
while(fabs(x0-x1)>Eps);
return x1;
}

int main(int argc, char* argv[])
{
	float a, b, l, Eps, x0, x, m;
	cout<<"a="; cin>>a;
	cout<<"b="; cin>>b;
	cout<<"l="; cin>>l;
	cout<<"Eps="; cin>>Eps;
	cout<<"x0="; cin>>x0;
	cout<<"m="; cin>>m;
	if(m==1)
		x=Metod_hord*(a, b, Eps);
	else
	{
		x=Metod_iter*((a+b)*(2, l, Eps));}
	cout<<"x="<<x<<"\n k="<<k;
	return 0;
}

Последний раз редактировалось Foralberg; 31.01.2011 в 01:22.
Foralberg вне форума Ответить с цитированием
Старый 31.01.2011, 00:51   #4
Foralberg
Пользователь
 
Регистрация: 30.01.2011
Сообщений: 10
По умолчанию

Мне кажется я сильно много ввожу в основной функции
Foralberg вне форума Ответить с цитированием
Старый 31.01.2011, 01:13   #5
Демик
Форумчанин
 
Аватар для Демик
 
Регистрация: 30.01.2011
Сообщений: 231
По умолчанию

Код:
//Это как я понял вывод, да?Тогда ты немного напортачил.
cout<<"a="; cin>>a;
cout<<"b="; cin>>b;
cout<<"l="; cin>>l;
cout<<"Eps="; cin>>Eps;
cout<<"x0="; cin>>x0;
cout<<"m="; cin>>m;
//Должно быть так-------------------------
cout<<"\na="<<a<<" ";  
cout<<"b="<<b<<" ";
cout<<"l="<<l<<" ";
cout<<"Eps="<<Eps<<" ";
cout<<"x0="<<x0<<" ";
cout<<"m="<<m<<" ";
Злостный анимешнег =^.^=
Демик вне форума Ответить с цитированием
Старый 31.01.2011, 01:20   #6
Foralberg
Пользователь
 
Регистрация: 30.01.2011
Сообщений: 10
По умолчанию

Как я понимаю мне в конце нужно ввести только a, b и Eps, а куда деть l, x0 и m я не знаю...
Foralberg вне форума Ответить с цитированием
Старый 31.01.2011, 01:25   #7
Демик
Форумчанин
 
Аватар для Демик
 
Регистрация: 30.01.2011
Сообщений: 231
По умолчанию

С помощью переменной m ты выбираешь способ решения уравнения
Злостный анимешнег =^.^=
Демик вне форума Ответить с цитированием
Старый 31.01.2011, 01:28   #8
Демик
Форумчанин
 
Аватар для Демик
 
Регистрация: 30.01.2011
Сообщений: 231
По умолчанию

Код:
float x;
	k=0;
	do
{ 
             (x=a-(f(a)*(b-a))/(f(b)-f(a));
	 if(f(a)*f(x)<0)
		b=x;
	else
		a=x;
	k++;//К чему относится это возрастание?
	}
	while(fabs (f(x)>Eps));
	return x;
Злостный анимешнег =^.^=
Демик вне форума Ответить с цитированием
Старый 31.01.2011, 01:31   #9
Демик
Форумчанин
 
Аватар для Демик
 
Регистрация: 30.01.2011
Сообщений: 231
По умолчанию

Переменная k у тебя нигде не используется, она просто объявлена k=0 и возрастает на один два раза за программу, не за какой цикл она не отвечает
Злостный анимешнег =^.^=
Демик вне форума Ответить с цитированием
Старый 31.01.2011, 01:33   #10
Демик
Форумчанин
 
Аватар для Демик
 
Регистрация: 30.01.2011
Сообщений: 231
По умолчанию

Чем смог тем помог, сори если не помог))
Злостный анимешнег =^.^=
Демик вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение нелинейных уравнений методом хорд на Delphi 6 или 7 Vovanella Помощь студентам 1 06.12.2010 22:36
Решение нелинейных уравнений методом Ньютона (касательных) Veina Помощь студентам 1 10.11.2010 18:29
решение линейных уравнений методом хорд и касательных subarimpra Помощь студентам 2 15.10.2010 21:33
Решение нелинейных уравнений методом хорд, pascal Антонова Анна Помощь студентам 3 09.12.2007 19:24