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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.10.2015, 19:42   #1
krasy
Пользователь
 
Регистрация: 14.04.2015
Сообщений: 40
Печаль Методы оптимизации. Метод квадратичной интерполяции

Нужно написать программу, которая находит наименьшее значение функции f(x)=(x-3)*(x-3)/(x-2) на промежутке [2.1;5] методом парабол.
я сделала что-то, но думаю я где-то облажалсь. помогите найти ошибку, пожалуйста.

Код:
#include<iostream>
#include<conio.h>
#include<math.h>
using namespace std;
double a0,a1,a2,xx0,xx1,x1=2.1,x2,x3=5,e,dx;

double f(double x) {double f;
	f=(x-3)*(x-3)/(x-2);
	return f;
}

double a();
void input();

int main()
{input();
return 0;}

double a()
{a0=f(x1);
 a1=(f(x2)-f(x1))/(x2-x1);
 a2=((f(x3)-f(x1))/(x3-x1)-a1)/(x3-x2);
return a0,a1,a2;}

void input()
{
cout<<"e=";cin>>e;
cout<<"dx=";cin>>dx;
x2=x1+dx;

do
{ xx0=(x1+x2-a1/a2)/2;
  if(f(x1)>f(xx0)&&f(xx0)<f(x2)&&x1<xx0&&xx0<x2) {x1=xx0;x2=x2;x3=x3;} else
  if(f(x2)>f(xx0)&&f(xx0)<f(x3)&&x2<xx0&&xx0<x3) {x1=x2;x2=xx0;x3=x3;}
  a();
  xx1=(x1+x2-a1/a2)/2;  
}
while(fabs(xx0-xx1)<e);

cout<<"x*="<<xx1<<"; f(x*)="<<f(xx1);

getch();
}
krasy вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Методы оптимизации: метод Ньютона и метод наискорейшего спуска ruslanGacurap Помощь студентам 0 30.01.2012 13:54
Методы оптимизации Lazio Фриланс 3 11.12.2010 12:05
Метод интерполяции-экстраполяции Гурам Помощь студентам 2 20.11.2010 20:03
Методы сортировки с квадратичной трудоемкостью ai\ekcah^p Общие вопросы C/C++ 4 08.07.2010 21:53
Метод обратной квадратичной интерполяции-экстраполяции (Pascal) w1n4mp Фриланс 2 21.05.2010 02:13