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

Уважаемые пользователи nowa.cc. Мы работаем для вас более 20 лет и сейчас вынуждены просить о финансовой помощи по оплате за сервер.
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже.
Webmoney Webmoney WMZ: Z021474945171 Webmoney WME: E159284508897 Webmoney WMUSDT: T206853643180
Кошелёк для вашей помощи YooMoney 4100117770549562
YooMoney Спасибо за поддержку!

Ответ
 
Опции темы Опции просмотра Language
Старый 07.04.2013, 18: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 вне форума
 
Ответить с цитированием Вверх
Здесь может быть Ваша реклама
Здесь может быть Ваша реклама


Реклама: сколько было продано билетов на руки вверх 14 июня 2025 годамебель фабрики глазовмоделирование для 3д печатикерамический гриль видеокострома из москвы


Ответ


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

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

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

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


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


Copyright ©2004 - 2025 NoWa.cc

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