|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
03.04.2011, 15:38 | #1 |
Новичок
Джуниор
Регистрация: 03.04.2011
Сообщений: 2
|
метод градиентного спуска
подскажите как правильно написать программу, вот моя, не знаю что не так
#include "stdafx.h" #include <cmath> #include <iostream> #define eps 0.0000001 using namespace std; double f(double x, double y, double z) { return x*x+y*y+z*z; } int _tmain(int argc, _TCHAR* argv[]) { int n, i; double x, x0, y0,z0,px,py,pz,k,grad,mx,my,mz; cout<<"vvedite delta x: "<<endl; cin>>x; cout<<"vvedite k: "<<endl; cin>>k; cout<<"vvedite x0"<<endl; cin>>x0; cout<<"vvedite y0"<<endl; cin>>y0; cout<<"vvedite z0"<<endl; cin>>z0; do { px=(f(x0+x,y0,z0)-f(x0-x,y0,z0))/2*x; mx=x0-k*px; x0=mx; py=(f(x0,y0+x,z0)-f(x0,y0-x,z0))/2*x; my=y0-k*py; y0=my; pz=(f(x0,y0,z0+x)-f(x0-x,y0,z0+x))/2*x; mz=z0-k*pz; z0=mz; grad=pow(px*px+py*py+pz*pz,1/2); } while (abs(grad)>eps); cout<<"mx"<<mx<<endl; cout<<"my"<<my<<endl; cout<<"mz"<<mz<<endl; return 0; } |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Метод скорейшего спуска решение СЛУ | Yulian@ | Помощь студентам | 11 | 31.03.2011 11:07 |
Turbo Pascal[програмыки : текстовая\метод симпсона\метод половинного деления | qsccsq | Помощь студентам | 7 | 24.12.2010 05:23 |
алгоритм покоординатного спуска | mimi_mimi | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 20.06.2010 18:23 |
Алгоритм наискорейшего спуска для любого количества аргументов целевой функции | Evil Sun | Общие вопросы C/C++ | 5 | 08.05.2009 13:18 |
Метод градиентного спуска | varvara16 | Мультимедиа в Delphi | 0 | 25.10.2008 19:38 |