#1
  1. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Dec 2013
    Posts
    4
    Rep Power
    0

    C++ Graeffe's square root method help


    So i have to write a c++ program for the Graeffe's square root method
    I have am stuck here when i have this formula transform into c++ code, the formula is on the link

    The code works particulary, the (elem[j-1]*elem[j+i]) doesn't work, it's beeing ignored and i don't know why... can any one help me?

    http://latex.codecogs.com/gif.latex?A_{k}=a_{k}^{2}+2\sum_{s=1}^{k}(-1)^{s}a_{k-s}*a_{k+s},&space;k=0,....n

    Code:
    cout<<"How many elements?"<<endl;  
    cin>>n;  
    cout<<"Insert the elements:"<<endl; 
     for(int i=0; i<n; i++)  { 
     cin>>elem[i];  }  
    C[0]=pow(elem[0],2); 
     for(int j=1; j<n; j++)  {  
    C[j]=pow(elem[j],2);  
    int i=1;  
    while((i+j)<=n-1&&(i<=j)) 
     {  C[j]=C[j]+(-1)^i*2*(elem[j-1]*elem[j+i]);  
    i=i+1;  }  
    cout<<"C"<<j<<":"<<C[j]<<endl;  }
  2. #2
  3. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Dec 2013
    Posts
    4
    Rep Power
    0

    Square problem


    I figured out the problem before, but now i have a new one:

    The part

    for(int i=1; i<n; i++)
    {
    x[i]=sqrt(y[i]*i);
    cout<<"x"<<i<<": "<<x[i]<<endl;
    }



    isn't working wll, for some elements the result is non, i thought that i because the numbers are complex, but not with include complex i get the same resut.. can anyone help me
    Code:
    #include<iostream>
    #include<math.h>
    #include <complex>
    using namespace std;
    
    int main()
    {
        int n,elem[20];
        float y[20],A[20];
        complex<float>  x[20];
        
        cout<<"Number of elements?"<<endl;
        cin>>n;
        cout<<"Insert elements:"<<endl;
        for(int i=0; i<n; i++)
        {
            cin>>elem[i];
            
        }
        
        
        A[0]=pow(elem[0],2);
        
        for(int j=1; j<n; j++)
        {
            A[j]=pow(elem[j],2);
        
                int i=1;
                while((i+j)<=n-1&&(i<=j))
                {
                    
                    A[j]=A[j]+pow((-1),i)*2*(elem[j-i]*elem[j+i]);
                    i=i+1;
                
                }
        
    
                cout<<"A"<<j<<":"<<A[j]<<endl;
        
        
        }
        
        for(int i=1; i<n; i++)
        {
            y[i]=A[i]/-A[i-1];
            cout<<"y"<<i<<": "<<y[i]<<endl;
        }
        
        for(int i=1; i<n; i++)
        {
            x[i]=sqrt(y[i]*i);
            cout<<"x"<<i<<": "<<x[i]<<endl;
        }
    
    }
  4. #3
  5. Contributed User
    Devshed Specialist (4000 - 4499 posts)

    Join Date
    Jun 2005
    Posts
    4,379
    Rep Power
    1871
    If you dance barefoot on the broken glass of undefined behaviour, you've got to expect the occasional cut.
    If at first you don't succeed, try writing your phone number on the exam paper

IMN logo majestic logo threadwatch logo seochat tools logo