用C语言编程牛顿迭代法求方程近视根sinx=0(3<x<4),小数点后100位收敛 100

 我来答
匿名用户
2017-09-18
展开全部
#include<stdio.h>
#include<math.h>
int main()
{
float x1,x,f1,f2;static int count=0;
x1=1.5//定义初始值
do
{
x=x1;
f1=x*(2*x*x-4*x+3)-6;
f2=6*x*x-8*x+3;//对函数f1求导
x1=x-f1/f2; count++;
}while(fabs(x1-x)<=1e-5);
printf("%8.7f\n",x1); printf("%d\n",count);
return 0;
}
//2x3-4x2+3x-6//根据我改了初始值,查看结果,表明:改变初始值得到的结果并不一样,但是迭代的次数并没有改变!!
追问
兄弟你这完全不对啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2017-09-18
展开全部
f(x)=0的牛顿迭代公式
x <- x-f(x)/f'(x)
C语言编程
double x;
x=3.5;
for(int i=0; i<10000 ;i++){
if(abs(tan(x))>1.e-100){
x=x-tan(x)
}
}
更多追问追答
追问
能写全吗?
追答
实话说,合理的收敛判断因该是10^(-10)左右,即
1.e-10

要收敛到10^(-100)需要特殊处理,在数值计算的实际应用中也不必要。

#include
#include

int main()
{
double x;
x=3.5;
for(int i=0; i1.e-100){
x=x-tan(x)
}
}
printf("%8.7f\n",x);
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式