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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.03.2011, 20:31   #1
xitrec1zaraza
Пользователь
 
Регистрация: 27.11.2010
Сообщений: 17
По умолчанию Жестоко. С++

Я тут крапаю... Вот и накрапал. Не могу понять своих ошибок.
Она должна решать нелинейные уравнения двумя методами, они в программе описанны. Помогите)

Код:
#include <stdio.h>
#include <conio.h>
#include <math.h>

double f(double x)
{
	return (exp(0.7*x)+exp(-0.7*x))*0.5-3.5*x-9;
}

int main()
{
	double e,pred,x,a,b;
	printf("Enter the accuracy: ");
	scanf("%Lf",&e);
	printf("Iteration method\n");
	printf("Enter the initial value: ");
	scanf("%Lf",&x);
	pred=x-1;
	int kol=       0;
	while (abs(pred-x)>e)
	{
		pred=x;
		x=((exp(0.7*x)+exp(-0.7*x))*0.5-9)/3.5;
		kol++;
		printf("%d: x=%Lf\n",kol,x);
	}
	printf("Secant method\n");
	printf("Enter the borders:\na: ");
	scanf("%Lf",&a);
	printf("b: ");
	scanf("%Lf",&b);
	kol=0;
	x=(f(a)*b-f(b)*a)/(f(a)-f(b));
	pred=0;
	while (abs(pred-x)>e)
	{
		pred=x;
		if (f(a)*f(x)>0)
		{
			a=x;
			x=a-f(a)*(b-a)/(f(b)-f(a));
		}
		else
		{
			b=x;
			x=b-f(b)*(b-a)/(f(b)-f(a));
		}
		kol++;
		printf("%d: x=%Lf\n",kol,x);
	}
	getchar();
	return 0;
}

Последний раз редактировалось Stilet; 14.03.2011 в 08:11.
xitrec1zaraza вне форума Ответить с цитированием
Ответ


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