声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2731|回复: 4

[C/C++] 求助牛顿下山法解方程的根

[复制链接]
发表于 2007-12-24 14:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
x3-x-1=0 x0=0.6 精确到小数点后8位   哪位高人给个程序 谢谢啦
回复
分享到:

使用道具 举报

发表于 2008-1-1 17:37 | 显示全部楼层
找 数值计算方法(VC++版)里面有现成的代码
发表于 2008-1-1 21:01 | 显示全部楼层

这个是牛顿迭代的程序,自己再改一点就行了..
牛顿法求ln(x+sinx)=0的根



  1. #include "stdio.h"
  2.   #include "math.h"
  3.   int newt(x,eps,js,f)
  4.   int js;
  5.   double *x,eps;
  6.   void (*f)();
  7.   { int k,l;
  8.     double y[2],d,p,x0,x1;
  9.     l=js; k=1; x0=*x;
  10.     (*f)(x0,y);
  11.     d=eps+1.0;
  12.     while ((d>=eps)&&(l!=0))
  13.       { if (fabs(y[1])+1.0==1.0)
  14.           { printf("err\n"); return(-1);}
  15.         x1=x0-y[0]/y[1];   /*迭代计算  x1=x0-f(x0)/f'(x0)*/
  16.         (*f)(x1,y);     /*计算 f(x1)与f'(x1)*/
  17.         d=fabs(x1-x0); p=fabs(y[0]);
  18.         if (p>d) d=p;
  19.         x0=x1; l=l-1;
  20.       }
  21.     *x=x1;
  22.     k=js-l;
  23.     return(k);
  24.   }
复制代码



主函数::
参数说明:
x
双精度实型变量指针。在该指针指向的变量中存放迭代初值;返回时在该指针指向的变量中存放终值。

eps
双精度实型变量。控制精度要求。

js

整型变量。最大迭代次数

f

无类型函数指针变量。指向计算方程左端函数 f(x)值及其导数值f'(x )的函数。
该函数由用户自编,其形式为


void f(x
y)


double x
y[2]


{ y[0]
f(x)的表达式;


y[1]
f'(x)的表达式;



return
}


本函数返回一个整型标志值。若返回的标志值小于0,则表示在出现了
的情况,函数中将输出信息“err”;若返回的标志值等于最大迭代次数,则表示还未满足精度要求,此时返回的实根终值只作为参考;若返回的标志值大于或等于0且小于最大迭代次数,则表示正常返回。
  1.   #include "math.h"
  2.   #include "stdio.h"
  3.   #include "dnewt.c"
  4.   main()
  5.   { int js,k;
  6.     double x,eps;
  7.     eps=0.000001; js=60;
  8.     x=0.15;/*迭代初值*/
  9.     k=dnewt(&x,eps,js);
  10.     if (k>=0)
  11.       printf("k=%d  x=%13.7e\n",k,x);
  12.     printf("\n");
  13.   }

  14.   void newtf(x,y)
  15.   double x,y[2];
  16.   { y[0]=log(x+sin(x));
  17.     y[1]=(1+cos(x))/(x+sin(x));
  18.     return;
  19.   }
复制代码

评分

1

查看全部评分

发表于 2008-1-3 09:00 | 显示全部楼层
其实这些问题自己稍微花点时间就能找到
发表于 2009-1-1 20:33 | 显示全部楼层
计算方法很多,随便一本数值分析的书上就有源程序
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-23 19:24 , Processed in 0.075562 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表