so I am trying to write code for my programming class in c++. We are currently attempting to use the Newton-Raphson method to find the 3 roots of a third degree polynomial. I am getting an error that says "expected unqualified-id". That is all that it says. Under that the computer places a carrot under a bracket. I have been struggling with this error for a while so any advice would be amazing! I will post the code below.
#include <iostream>
#include <cmath>
using namespace std;
double nrmethod(int r1, double fr1, double dr1fr1, int imax, double es);
int main ()
{
int sxx=10, sxy=14, sxz=25, syy=7, syz=15, szz=16;/* declaring integers to calculate the coefficients of the algebraic equation. this algebraic equations roots are the values we are looking for*/
int I;
int II;
int III;/*delcaring the coefficents of the algebraic equation*/
I=sxx+syy+szz;
II=(sxx*syy)+(sxx*szz)+(syy*szz)-(pow(sxy,2))-(pow(sxz,2))-(pow(syz,2));
III=(sxx*syy*szz)-(sxx*pow(syz,2))-(syy*pow(sxz,2))-(szz*pow(sxy,2))+(2*sxy*sxz*syz);/*solving for the coefficents of the algebraic equation*/
cout << I << ", " << II << ", " << III << endl; /*displaying the coefficients of the algebraic equation*/
int imax=100;
double es=0.01;
double dr1fr1;
double fr1;
int r1;
cout <<"enter guess for the root";
cin >> r1;
double r = nrmethod(r1, fr1, dr1fr1, imax, es);
cout << r << std::endl;
return 0;
}
double nrmethod(int r1, double fr1, double dr1fr1, int imax, double es);{
double fr1=pow(r1,3)-I*pow(r1,2)+(II*r1-III);
double dr1fr1= 3*pow(r1,2)-(2*I*r1)+II;
do
int k=1;
if(k<= imax){
k++;
r2=r1-(fr1/dr1fr1);
if r2 !=0 then int er=(abs(r2-r1)/abs(r2))*100;
if(er<es){end do}
else {return r2}
}
cout << r2;
return 0;
}