编写程序,用牛顿切线法求方程f(x)= x^3/2+2x^2-8=0

编写程序,用牛顿切线法求方程f(x)=x^3/2+2x^2-8=0(其中^表示幂运算)在区间[0,2]上的近似实根r,迭代初值自选,精确到0.0001。〔提示:计算公式为... 编写程序,用牛顿切线法求方程f(x)= x^3/2+2x^2-8=0(其中^表
示幂运算)在区间[0,2]上的近似实根r,迭代初值自选,精确
到0.0001。〔提示: 计算公式为x=x-f(x)/fˊ(x)〕
展开
 我来答
匿名用户
2013-03-31
展开全部
#include"stdio.h"
#include"math.h"
int m;
float f(float x) /*求f(x)= x^3/2+2x^2-8的函数值*/
{
float y;
y=0.5*x*x*x-2*x*x-8;
return y;
}float f1(float x) /*求f(x)的导函数的值*/
{
float y;
y=1.5*x*x-3;
return y;
}float newton_dd(float x0,float e)
{
int i;
float p,p1,x;
for(i=1;;i++)
{
p=f(x0); /*牛顿迭代法的迭代式*/
p1=f1(x0);
x=x0-(p/p1);
printf("\nx=%f\n",x); /*输出每次迭代后的x的值*/
printf("x-x0=%f\n",x-x0); /*输出每次迭代后一个数与前一个数的差值*/
if(fabs(x-x0)<e)
break;
else
x0=x;
}
m=i;
return x;
}void main()
{
float d,x0,x;
printf("Input near root:x0="); //输入初值
scanf("%f",&x0);
printf("Input precision:e="); //输入精度
scanf("%f",&d);
printf("mei ci die dai hou x de zhi:\n");
printf("mei ci die dai x-x0 de cha zhi:\n");
x=newton_dd(x0,d);
printf("\nThe root of f(x)=0 is:x=%f\n",x);
printf("die dai ci shu:%d\n",m);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式