s=s+(*p)(x)*h; }
return(s); }
float fsin(float x) {return sin(x);} float fcos(float x) {return cos(x);} float fexp(float x) {return exp(x);}
牛顿迭代法求解非线性方程组代码: #include
{ double dpy(double array[]),Q[1],x[1],p[1],err,relerr; int i,j,p,max1,count;
cout<<\ cin>>x[0]>>x[1]>>max1; for (i=0;i for(j=0;j<2;j++) {Q[j]=x[j]-p[j];} err=fabs(Q[0]+Q[1]-x[0]-x[1]); relerr=err/(Q(0)+Q(1)); x=Q; count=i; cout< if(err<0.001||relerr<0.001) { break; } cout<<\ return 0; } double dpy(double array[]) {double fy(double array[]); double det(double array[][]); double z[1][1],dp[1],x[1]; x[0]=array[0]; x[1]=array[1]; z[0][0]=2*x[0]-2; z[0][1]=-1; z[1][0]=2*x[0]; z[1][1]=8*x[1]; y=fy(x); J=det(z); dp[0]=J[0][0]*y[0]+J[0][1]*y[1]; dp[1]=J[1][0]*y[0]+J[1][1]*y[1]; return dp; } double fy(double array[]) {double z[1],x,y; x=array[0],y=array[1]; z[0]=x*x-2*x-y+0.5; z[1]=x*x+4*y-4; return z } double det(double array[][]) {double x={0,0,1,0},y={0,0,0,1},J[1][1]; int i; x[0]=array[0][0]; x[1]=array[0][1]; y[0]=array[1][0]; y[1]=array[1][1]; for(i=0;i<4;i++) y[i]=y[i]-y[0]/x[0]*x[i]; for(i=0;i<4;i++) x[i]=y[i]-x[1]/y[1]*x[i]; int c=x[0]; for(i=0;i<4;i++) x[i]=x[i]/c; c=y[1]; for(i=0;i<4;i++) y[i]=y[i]/c; J[0][0]=x[2]; J[0][1]=x[3]; J[1][0]=y[2]; J[1][1]=y[3]; }