اطلاعیه

Collapse
No announcement yet.

n معادله n مجهولی و الگوریتم بهینه سازی shuffled frog leaping

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    n معادله n مجهولی و الگوریتم بهینه سازی shuffled frog leaping

    کسی میتونه کمکم کنه؟ :cry:

    (برنامه ای توسط c بنویسید که n معادله n مجهولی را با استفاده از حافظه تخصیص پویا بنویسد)
    و
    (پیاده سازی الگوریتم بهینه سازی shuffled frog leaping توسط متلب)

    #2
    پاسخ : n معادله n مجهولی و الگوریتم بهینه سازی shuffled frog leaping

    تخصیص حافظه پویاش با خودتون


    کد:
    //in the name of god
    //mjs1990s@gmail.com
    //*******************
    #include <stdio.h>
    #include <conio.h>
    #include <math.h>
    
    double f(double,float [],int);
    double f2(double,float [],int);
    
    #define e 0.0001
    
    int main()
    {
    
      float m0,m1,m2,m3,x,y;
      float a[10];
      int n=0,i,p;
    
    //-------------------------
    
      printf("maghadir baze [x , y] ra vared ****d:\n\n");
    
      printf("x= ");
      scanf("%f",&x);
    
      printf("y= ");
      scanf("%f",&y);
    
    //-------------------------
    
      printf("\ndaraje tabe (p) ra vared ****d:\n\n");
    
      printf("p= ");
      scanf("%d",&p);
    
    //--------------------------
    
      printf("\nzarayebe ra vared ****d:\n\n");
    
      for(i=p;i>=0;i--)
      {
        printf("a[%d]= ",i);
        scanf("%f",&a[i]);
      }
    
    
    //-------------------------
    
      printf("\n\n");
    
      for(i=p;i>=0;i--)
      {
        printf("%gx^%d + ",a[i],i);
      }
    
      printf("\b\b\b\b\b\b = 0 \n\n");
    
    //-------------------------
      
      if(f(x,a,p)*f2(x,a,p)>0)
      {
        m0=x;
      }
      else if(f(x,a,p)*f2(x,a,p)<0)
      {
        m0=y;
      }
      else
      {
        printf("rishe nadarad");
      }
    
    //-------------------------
    
      do
      {
        m1=m0-f(m0,a,p)/f2(m0,a,p);
        m0=m1;
        
      }while(fabs(f(m1,a,p))>e);
    
    //-------------------------
    
      printf("ans: x = %f",m1);
      getch();
      return 0;
    }
    
    //**************************
    
    double f(double x,float a[],int p)
    {
    
      double s=0;
      int i;
      for(i=p;i>=0;i--)
      {
        s=s+a[i]*pow(x,i);
      }
      return s;
    }
    
    //**************************
    
    double f2(double x,float a[],int p)
    {
    
      double s=0;
      int i;
      for(i=p;i>=1;i--)
      {
         s=s+i*a[i]*pow(x,i-1);
      }
      return s;
    }
    
    //**************************
    نــــ_ـــمـــ_ــــیــــ_ـــدونـــــ_ــم.....

    دیدگاه

    لطفا صبر کنید...
    X