### Thread: C++ Graeffe's square root method help

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. 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;
}

}