开发工具:
文件大小: 1kb
下载次数: 0
上传时间: 2009-06-18
详细说明: //x:双精度实型变量指针,指向变量中存放迭代的初值,返回时在该指针只想爱你个的变量村存放终值 //eps:控制精度要求:eps1,eps2是精度要求;eps3是为了防止无休止地细分t而设的;eps4是为处理x0取得太差的情况而设置的,可适当取大点 //t:下山因子,,双精度实型变量 //js:最大迭代次数.不可取太大,防止初值跳跃次数太多 //f:无类型函数指针变量,指向计算方程左端函数f(x)值及其导数值f'(x) 的函数 //可由用户自编,其形式为: // double *f(double x) // { // double y[2]; // y[0]=f(x)的表达式; // y[1]=f'(x)的表达式; // return y; // } #include #include void NewtDownhill(double *x , double eps1 , double eps2 , double eps3 , double eps4 , int js, double (**f)()) { int n=1 , flag=1 ; double t=1.0 , x0=*x , x1 , y[2] , f0 , f1 ; (**f)(x0); //计算f(x0)和f'(x0) f0=y[0] ; x1=x0-t*(y[0]/y[1]) ; //迭代计算x1=x0-f(x0)/f'(x0) (**f)(x1); //计算x1在f的值和f'的值 f1=y[0]; while(n<=js&&flag==1) { if(fabs(x1-x0)eps3) { t=t/2.0 ; (**f)(x0); //计算f(x0)和f'(x0) f0=y[0] ; x1=x0-t*(y[0]/y[1]) ; //迭代计算x1=x0-f(x0)/f'(x0) (**f)(x1); //计算x1在f的值和f'的值 f1=y[0]; x0=x1+eps4; n++; } } if(n>js) printf("Method fail after js iterations"); } ...展开收缩
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.