IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
Closed Topic Открыть новую тему 
> решение систем методом градиентов, решение систем методом градиентов
malena
сообщение 28.03.2006 9:28
Сообщение #1





Группа: Пользователи
Сообщений: 6
Пол: Женский
Реальное имя: Лена

Репутация: -  0  +


Здравствуйте!!!!! Не знаю уже что и делать, всю голову себе сломала mega_chok.gif !!!Нужно решеть систему нелинейных уравнений методами градиентов и наискорейшего спуска: 4*x^2+y^2+2*x*y-y-2=0
2*x^2+3*x*y+y^2-3=0.
Если сможете помочь, буду очень благодарна.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Ozzя
сообщение 28.03.2006 10:26
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

Репутация: -  16  +


По блок-схеме сможете написать сами?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
malena
сообщение 28.03.2006 10:40
Сообщение #3





Группа: Пользователи
Сообщений: 6
Пол: Женский
Реальное имя: Лена

Репутация: -  0  +


Попробую!!! Спасибо за помощь!!! smile.gif

У меня файл не открывается, пишет, что "файл неверен или поврежден" blink.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Ozzя
сообщение 28.03.2006 10:46
Сообщение #4


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

Репутация: -  16  +


Приложил сюда:
Для просмотра блок-схемы понадобится также
Редактор блок-схем


Прикрепленные файлы
Прикрепленный файл  lowering.rar ( 2.12 килобайт ) Кол-во скачиваний: 503
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
malena
сообщение 28.03.2006 12:28
Сообщение #5





Группа: Пользователи
Сообщений: 6
Пол: Женский
Реальное имя: Лена

Репутация: -  0  +


Я сделала метод градиентов!!!!Ура! lol.gif !!! Прикрепляю файл может кому еще понадобится


А вот с наискорейшим спуском совсем плохо nea.gif !help.gif


Прикрепленные файлы
Прикрепленный файл  grad.pas ( 1.92 килобайт ) Кол-во скачиваний: 624
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Ozzя
сообщение 28.03.2006 12:36
Сообщение #6


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

Репутация: -  16  +


Метод наискорейшего спуска
Сложно реализован, но, думаю, разберетесь


Прикрепленные файлы
Прикрепленный файл  opt3_.rar ( 3.7 килобайт ) Кол-во скачиваний: 626
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
malena
сообщение 28.03.2006 13:16
Сообщение #7





Группа: Пользователи
Сообщений: 6
Пол: Женский
Реальное имя: Лена

Репутация: -  0  +


Вы обо мне слишком хорошего мнения! smile.gif Она такая большая и главное ничего не понятно! Что делатьcray.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Ozzя
сообщение 28.03.2006 13:41
Сообщение #8


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

Репутация: -  16  +


Еще тут посмотрите
http://nsft.narod.ru/Programming/fastfall.html
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
malena
сообщение 28.03.2006 16:05
Сообщение #9





Группа: Пользователи
Сообщений: 6
Пол: Женский
Реальное имя: Лена

Репутация: -  0  +


Чё-то я окончательно запуталась в этом методе!Ничего не выходит wacko.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Ozzя
сообщение 29.03.2006 7:44
Сообщение #10


Гуру
*****

Группа: Пользователи
Сообщений: 1 220
Пол: Мужской

Репутация: -  16  +


malena
Вы будете смеяться unsure.gif , но та блок-схема, которую я приводил и есть метод наискорейшего спуска.
Еще методы поиска минимума: сопряженного градиента и наискорейшего спуска

http://pascal.sources.ru/math/opt.htm

Сообщение отредактировано: Ozzя - 29.03.2006 11:53
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
malena
сообщение 29.03.2006 19:02
Сообщение #11





Группа: Пользователи
Сообщений: 6
Пол: Женский
Реальное имя: Лена

Репутация: -  0  +


Да,бывает! yes2.gif Но я по вашей блок-схеме ничего не делала.Спасибо за ссылку, но мне нужно не найти минимум, а решить систему. В этом вся проблема!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Smertnik7320
сообщение 13.04.2010 17:57
Сообщение #12





Группа: Пользователи
Сообщений: 1
Пол: Мужской

Репутация: -  0  +


помогите плиз исправить ошибки
программа написана на С++ "Метод скорейшего спуска"

#include <iostream.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
#define N 2
#define K 2
int l;
float absgrad,el,h,hl,z,s[N+1], x[N+1];
float f (float x[N+1])
{float a,b,y;
a=x[1]*x[1]+x[2]-11;
b=x[1]+x[2]*x[2]-7;
y=a*a+b*b;
return y;}
void graddirection (void)
{float gradx, grady;
gradx=(4*x[1]*x[1]*x[1]+4*x[1]*x[2]+2*x[2]*x[2]-42*x[1]-14);
grady=4*x[2]*x[2]*x[2]+4*x[1]*x[2]+2*x[1]*x[1]-
26*x[2]-22;
absgrad=sqrt(gradx*gradx+grady*grady);
if(absgrad !=0)
{s[1]=gradx/absgrad;
s[2]=grady/absgrad;
};
};
void scanforonedim (void)
{short a;
float dl,zl;
z=f(x);
graddirection();
do
{dl=fabs(hl);
for (i=l;i<=N;i++) x[i]+=hl*s[i];
zl=f(x);
a=(zl<z);
if(!a) hl/=-K;
z=zl;
}
while (a||dl>=el);
}
void pausa()
{printf("\n Нажмите любую клавишу для продолжения ...\n");
getch();
}
void outputresult(void)
{clrscr();
printf("Вектор приближения (O1,O2) на данном шаге");
printf ("вычислений N");
printf ("x1=%f x2=%f\n",x[1],x[2]);
printf("f(x1,x2)=%\n",f(x));
pausa();
}
void main()
{float d,t;
char finish;
clrscr();
printf("Введите координаты начального");
printf("вектора xl,x2)\n");
for (i=l; i<=N;i++) scanf ("%f",&x[1]);
graddirection();
if(!absgrad)
{printf("Стационарная точка x1=%f",x[1]);
printf("x2=%f",x[2]
);
pausa(); goto flnish;};
printf( "Задайте точность");
printf("нахождения точки min f(x)\n");
scanf("%f",&e);
outputresult(); h=0.2; el=e/K;
do

{d=fabs(h);
hl=h; scanforonedim();
outputresult();
h/=K;
}
while (d>=e);
printf ("Точка минимума xl=%f x2=%f\n",x[l],x[2]);
printf (" Погрешность =%f\n",d);
pausa();
finish:;
}
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 13.04.2010 18:53
Сообщение #13


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Круто. Встрять в чужую старинную тему с программой на С и без тэгов!.. Я пальцы устал загибать, считая нарушения.
Smertnik7320, читай правила.
Закрыто.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Closed Topic Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 2:53
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"