Компьютерный форум NoWa.cc Здесь может быть Ваша реклама
Правила Форума
редакция от 22.06.2020
Портал .::2BakSa.WS::.
Вернуться   Компьютерный форум NoWa.cc > В помощь вебмастеру > Программирование > Visual C++ / С/C++

Уважаемые пользователи nowa.cc и 2baksa.ws. У нас сложилось тяжёлое финансовое положение. Мы работаем для вас вот уже более 15 лет и сейчас вынуждены просить о помощи. Окажите посильную поддержку проектам. Мы очень надеемся на вас. Реквизиты для переводов ниже.
Webmoney Webmoney WMZ: 826074280762 Webmoney WME: 804621616710
Кошелёк для вашей помощи YooMoney 4100117770549562
YooMoney Спасибо за поддержку!
Ответ
 
Опции темы Опции просмотра Language
Старый 07.04.2013, 19:44   #1
Неактивный пользователь
 
Пол:Женский
Регистрация: 29.11.2008
Сообщений: 5
Репутация: 0
По умолчанию Ошибка C2872

Добрый вечер! Разработать алгоритм и составить программу определения точки экстремума функции двух переменных f(x,y) с помощью метода покоординатного спуска.

При выполнении программы в VS 2008 у меня возникла ошибка

error C2872: max: неоднозначный символ

ЗАРАНЕЕ СПАСИБО ЗА ПОМОЩЬ!!!

// IO1.cpp: определяет точку входа для консольного приложения.
//

#include "stdafx.h"
# include "math.h" // библиотеки
# include "stdio.h"
# include "conio.h"
# include "stdlib.h"
#include <iostream>
using namespace std;

float s,d,w, x=0, y=0, e=0.0005, z, max, k,fz,a=-4,b=4 ;
// s,d,w- промежуточные переменные для удобства вычислений
// х,у- переменные
// е- предельная чувствительность
// z-проверка условия
// max- максимум
// к-сигнал
// fz
//a, b- координаты отрезка на котором определяется максимум

float max_value (double,double); // прототипы функций
void vivod (void);
int _tmain(int argc, _TCHAR* argv[])
{
printf("\n*********************** МЕТОД ПОКОРДИНАТНОГО СПУСКА ************************ ");
printf("\n");
printf("Поиск максимального значения");
printf("x^2+y^2+z^2=16 уравнение сферы ");
printf("\n");
printf ("Выполнила студентка группы");
k=1; // фиксируем переменную хб ищем максимум по у
do
{ z=max_value(x,y);
y=max;
if (z<e)
{ vivod();break;}
else
{ k=0; z=max_value(x,y); x=max; }
if (z<e)
{vivod(); break; }
else
k=1;
}
while(k==1);
printf("\n \n \n \n \n \n");
printf( " \n Для завершения работы нажмите <Enter>");
getch();
}
float max_value(float x,float y)
{
float var1, var2, v1, v2, c, v, f1, f2;
// var1,var2,v1,v2-вспомогательные ячейки
// f1,f2- значения функций
// с- координата середины отрезка.
float prx,pry,prxy,prx2,pry2;
// prx- частная производная по х
// pry- частная производная по у
// prxy- частная производная по х,у
// prx2- вторая частная производная по х
// pry2- вторая частная производная по у
do {
c=(a+b)/2;
if (k==1) v=x;
else v=y;
var1=c-e/2;
var2=c+e/2;
f1=sqrt(16-pow(var1,2)-pow(v,2));
f2=sqrt(16-pow(var2,2)-pow(v,2));
if (f1==f2)
{ a=var1; b=var2; max=(a+b)/2; }
if (f1>f2)
{ max=var1; b=var2; }
else if (f1<f2)
{ max=var2; a=var1; }
}
while ((b-a)>=2*e);
if (k==1)
{ v1=max; v2=v; }
else{v1=v; v2=max;
}
s=16;
w=s-(pow(v1,2)-pow(v2,2)) ;
d= pow (w,3) ;
prx=(-1*v2)/(sqrt(s-pow(v1,2)-pow(v2,2)));
pry=(-1*v1)/(sqrt(s-pow(v1,2)-pow(v2,2)));
prxy=(-1*v1*v2)/sqrt(d );
prx2=(pow(v1,2)-s)/sqrt (d);
pry2=(pow(v2,2)-s)/sqrt (d) ;
z=e*(prx+pry)+pow(e,2)*(prx2+prxy+pry2);
return z;
}
void vivod (void)
{
cout <<"\nЗначение координаты x= " <<x;
printf("\n");
cout <<"\n Значение координаты y= " << y;
printf("\n");
fz=sqrt(16-pow(x,2)-pow(y,2));
cout <<"\n Значение функции z= " <<fz;
printf("\n");
}
SsSANDRA вне форума
 
Ответить с цитированием Вверх
Здесь может быть Ваша реклама
Здесь может быть Ваша реклама


Реклама: Рекомендуем - VA24DQFR - Подарок каждому покупателю!ибп для дома 5 квт с аккумуляторами ценаYouTrack и Mondayбарнхаус одноэтажный 60м2Компьютерная фирма КНС Нева предлагает Dahua DH-IPC-H3BP-0360B - поставщик техники для дома и бизнеса в Санкт-Петербурге.


Ответ


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка roman_ Скорая помощь 3 26.07.2009 23:15
Ошибка Shruz Архив 4 28.08.2007 11:44
XP SP1 IE 6.0 Ошибка 501/505 newreactive Microsoft Windows 1 05.04.2006 14:51
Ошибка кучка Архив 5 04.03.2006 21:28

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 23:09. Часовой пояс GMT +3.


Copyright ©2004 - 2024 2BakSa.WS

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot
Время генерации страницы 0.12916 секунды с 13 запросами