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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.04.2011, 17:53   #1
Vivisektor
Новичок
Джуниор
 
Регистрация: 01.04.2011
Сообщений: 3
По умолчанию Реализация метода сканирования на C++

Друзья! Столкнулся с проблемой. Скомпилировал программу на С++, которая ищет оптимальные значения X в уравнении вида: y=a0+a1x1+a2x2+a3x3+a4x4+a5x5+a12x1 x2+a13x1x3+a14x1x4+a15x1x5+a23x1x3+ a24x2x4+a25x2x5+a34x3x4+a35x3x5+a45 x4x5+a1x1^2+a2x2^2+a3^x3^2+a4x4^2+a 5x5^2
при которых y было бы минимальным.
Создавал как консольное приложение. Запускаю, программа работает, но оптимальные параметры x определяются неправильно:
x1=1
x2=-1
x3=1
x4=1
x5=1
ymin=78,4

Вот код программки. прошу вашей помощи разобраться.
Код:
#include <stdio.h>

int main(void)
{
	double Y,x1,x2,x3,x4,x5,Ynim,Xnim1,Xnim2,Xnim3,Xnim4,Xnim5;
	int i1,i2,i3,i4,i5;
	Ynim=1000;
	for(i1=0;i1<=10;i1++)
	{
	 x1=0.2*i1-1;
	 for(i2=0;i2<=10;i2++)
	 {
	  x2=0.2*i2-1;
	  for(i3=0;i3<=10;i3++)
	  {
	   x3=0.2*i3-1;
	   for(i4=0;i4<=10;i4++)
	   {
	    x4=0.2*i4-1;
	    for(i5=0;i5<=10;i5++)
	    {
	     x5=0.2*i5-1;
		
		
		Y = 226.17 + 57.72*x1 + 17.51*x4 + 22.92*x5 - 11.43*x1*x3 + 15.22*x2*x3 + 29.83*x2*x5 + 6.86*x4*x4;
		if (Y<Ynim)
		{ 
		 Ynim=Y;
		 Xnim1=x1;
		 Xnim2=x2;
		 Xnim3=x3;
		 Xnim4=x4;
		 Xnim5=x5;
		}
	    }
	   }
	  }
	 }
	}
	
	printf("x1 = %f; x2 = %f; x3 = %f; x4 = %f; x5 = %f; Ymin = %f\n",Xnim1,Xnim2,Xnim3,Xnim4,Xnim5,Ynim);
		
	return 0;
}

Последний раз редактировалось Vivisektor; 01.04.2011 в 18:00.
Vivisektor вне форума Ответить с цитированием
Старый 01.04.2011, 17:54   #2
Vivisektor
Новичок
Джуниор
 
Регистрация: 01.04.2011
Сообщений: 3
По умолчанию

вот результат выполнения.
Изображения
Тип файла: jpg 111212ё1.jpg (15.7 Кб, 137 просмотров)
Vivisektor вне форума Ответить с цитированием
Старый 03.04.2011, 02:57   #3
Vivisektor
Новичок
Джуниор
 
Регистрация: 01.04.2011
Сообщений: 3
По умолчанию

что ни у кого никаких мыслей?
Vivisektor вне форума Ответить с цитированием
Старый 03.04.2011, 03:50   #4
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Два вопроса.
1) Ты уверен, что у тебя в циклах должно стоять <=, а не просто < ? У тебя диапазон изменений будет не от -1 до 1, а от -1 до 1,2.

2) А точно ли ты знаешь, что для указанного тобой уравнения полученные значения не будут оптимальными?
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Старый 03.04.2011, 12:30   #5
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

1. Давайте начнём с того, что вот это
Цитата:
Сообщение от Vivisektor Посмотреть сообщение
Код:
		Y = 226.17 + 57.72*x1 + 17.51*x4 + 22.92*x5 - 11.43*x1*x3 + 15.22*x2*x3 + 29.83*x2*x5 + 6.86*x4*x4;
не совсем, скажем так, cоответствует формуле из условия:
Цитата:
Сообщение от Vivisektor Посмотреть сообщение
y=a0+a1x1+a2x2+a3x3+a4x4+a5x5+a12x1 x2+a13x1x3+a14x1x4+a15x1x5+a23x1x3+ a24x2x4+a25x2x5+a34x3x4+a35x3x5+a45 x4x5+a1x1^2+a2x2^2+a3^x3^2+a4x4^2+a 5x5^2
2. Чтобы кто-то ещё мог это отлаживать, этот "кто-то" должен знать интервалы изменения для всех переменных.
Vago вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реализация алгоритма метода ближайшего соседа на с++!!!! Nimbu Помощь студентам 0 28.06.2010 17:16
реализация метода Хаффмана ShturmBan Помощь студентам 2 13.01.2010 15:46
Реализация метода Хаффмана Minton87 Помощь студентам 0 27.12.2009 20:30
Реализация метода поиска неисправности =\ Minton87 Помощь студентам 0 27.12.2009 20:13
реализация симплекс метода rasmus_rasmus_87 Помощь студентам 7 28.05.2009 06:54