各位大侠,谁有用牛顿迭代法求一元n次方程的程序,n可能是10,30或50.

tongb_scarf
2012-03-24 · TA获得超过286个赞
知道答主
回答量:44
采纳率:0%
帮助的人:34万
展开全部
double func(double x) //函数  
 {   return x*x*x*x-3*x*x*x+1.5*x*x-4.0;   }  
 double func1(double x) //导函数   {   return 4*x*x*x-9*x*x+3*x;   }  
 int Newton(double *x,double precision,int maxcyc) //迭代次数  
 {   double x1,x0;   int k;   x0=*x;   for(k=0;k<maxcyc;k++)
  {   if(func1(x0)==0.0)//若通过初值,函数返回值为0  
 {   printf("迭代过程中导数为0!\n");   return 0;   }
  x1=x0-func(x0)/func1(x0);//进行牛顿迭代计算  
 if(fabs(x1-x0)<precision || fabs(func(x1))<precision) //达到结束条件  
 {   *x=x1; //返回结果   return 1;   }
  else //未达到结束条件   x0=x1; //准备下一次迭代   }  
 printf("迭代次数超过预期!\n"); //迭代次数达到,仍没有达到精度   return 0;   }  
 int main()
  {   double x,precision;   int maxcyc;   printf("输入初始迭代值x0:");  
 scanf("%lf",&x);   printf("输入最大迭代次数:");   scanf("%d",&maxcyc);  
 printf("迭代要求的精度:");  
 scanf("%lf",&precision);  
 if(Newton(&x,precision,maxcyc)==1) //若函数返回值为1  
 printf("该值附近的根为:%lf\n",x);  
 else //若函数返回值为0   
printf("迭代失败!\n");   
getch();   
return 0;   }

请评最佳!!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
北京埃德思远电气技术咨询有限公司
2021-11-22 广告
假设条件在短路的实际计算中, 为了能在准确范围内迅速地计算短路电流, 通常采取以下简化假设。(1)不考虑发电机的摇摆现象。(2)不考虑磁路饱和,认为短路回路各元件的电抗为常数。(3)不考虑线路对地电容, 变压器的磁支路和高压电网中的电阻, ... 点击进入详情页
本回答由北京埃德思远电气技术咨询有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式