两道C语言程序题目,急!

1.请设计程序,用牛顿迭代法求f(x)=cos(x)-x的近似根,要求精确到10-6。(1)用函数floatnewtoon(floatx)求方程在x附近的根;(2)用函数... 1.请设计程序,用牛顿迭代法求f(x)=cos(x)-x的近似根,要求精确到10-6。 (1)用函数float newtoon(float x)求方程在x附近的根; (2)用函数float F(float x)求x处的函数值,用函数float F1(float x)求f(x)在x处的导数; (3)在主函数中输入x0,调用函数求得方程的近似根(精度要求为10-5),并输出结果。 2.已知f(x)=lnx+x2在(1/e, 1)内有唯一的一个实根。请设计程序,用二分法求该近似实根。精确到|f(x)|<0.0001为止。 (1)用函数float eff(float x)求方程在x附近的根; (2)在主函数中输入x,调用函数求得方程的近似根,并输出结果。 展开
 我来答
博查AI搜索
推荐于2016-06-10 · TA获得超过481个赞
知道小有建树答主
回答量:164
采纳率:0%
帮助的人:91.7万
展开全部

第一题代码如下,很简单所以没有什么注释:

#include<stdio.h>
#include<math.h>
float Fl(float x)
{
float y;
y=cos(x)-x;
return y;
}
float newtoon(float x)
{
float y;
y=x-Fl(x)/(-sin(x)-1);
return y;
}
void main()
{
float x0,x1;
printf("Please input x0:\n");
scanf("%f",&x1);
do
{
float z;
x0=x1;
x1=newtoon(x0);
}while(fabs(x1-x0)>=1e-5);
printf("The root of equation is %f\n",x1);
}

纠正一下上面没看清题目,应该是1e-6

第二题代码如下:

#include<stdio.h>
#include<math.h>
double eff(double x)
{
double y;
y=log(x)+pow(x,2);
for(;y<=1e-4;){
if(y>0)
{
x=(x+1/exp(1))/2;
eff(x);
}
else
{
x=(x+1)/2;
eff(x);
}
}
return y;
}
void main()
{
double x,z;
printf("Please input x:\n");
do
{
scanf("%lf",&x);
}while(x<=1/exp(1)||(x>=1));//输入的数字必须在区间内,因为题目中已经指出在这个区间有一个根!
z=eff(x);
printf("the root of the equation is:%lf\n",z);
}


上面的程序我都运行了一下,差不多对了,第二题用double和float其实是一样的,只不过log函数得到的是double型数据,为了使得程序更加精确我擅自修改了下,楼主改回float也可以。

sdzzliuming
2013-04-25 · TA获得超过1186个赞
知道小有建树答主
回答量:1147
采纳率:45%
帮助的人:527万
展开全部
可以去找个例子去写 这个不难的。主要是修改下自己的函数以及精度。
追问
我体提问就是因为不会写啊 = =

我要答案~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友fc593c0
2013-04-25 · TA获得超过408个赞
知道小有建树答主
回答量:589
采纳率:0%
帮助的人:347万
展开全部
写程序最好自己动脑动手,只要求答案的话下次你还是不会。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式