Здравствуйте!!!!! Не знаю уже что и делать, всю голову себе сломала  

 !!!Нужно решеть систему нелинейных уравнений методами градиентов и наискорейшего спуска: 4*x^2+y^2+2*x*y-y-2=0
                                                                                        2*x^2+3*x*y+y^2-3=0.
Если сможете помочь, буду очень благодарна.
 
 
 
 
 
  Попробую!!! Спасибо за помощь!!! 

У меня файл не открывается, пишет, что "файл неверен или поврежден" 
  
 
 
 
  Приложил сюда:
Для просмотра блок-схемы понадобится также 
Редактор блок-схем
  
 
 
 
  Я сделала метод градиентов!!!!Ура! 

 !!! Прикрепляю файл может кому еще понадобится
А вот с наискорейшим спуском совсем плохо 
  
  
 
 
 
  Метод наискорейшего спуска
Сложно реализован, но, думаю, разберетесь
 
 
 
 
  Вы обо мне слишком хорошего мнения! 

 Она такая большая и главное ничего не понятно! Что делать
  
 
 
 
  Чё-то я окончательно запуталась в этом методе!Ничего не выходит 
  
 
 
 
  malenaВы будете смеяться 

 , но та блок-схема, которую я приводил и есть метод наискорейшего спуска.
Еще методы поиска минимума: сопряженного градиента и наискорейшего спуска
http://pascal.sources.ru/math/opt.htm
  
 
 
 
  Да,бывает! 

 Но я по вашей блок-схеме ничего не делала.Спасибо за ссылку, но мне нужно не найти минимум, а решить систему. В этом вся проблема!
 
 
 
 
  Smertnik7320
  13.04.2010 21:57
  
 
  помогите плиз исправить ошибки
программа написана на С++ "Метод скорейшего спуска"
#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:;
}
 
 
 
 
  Круто.  Встрять в чужую старинную тему с программой на С и без тэгов!..  Я пальцы устал загибать, считая нарушения.  
Smertnik7320, читай правила.
Закрыто.