C++实验 8(2)

2019-04-23 10:11

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 #include using namespace std; int main()

{ 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]; }


C++实验 8(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:大学物理实验及答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: