1021: C语言程序设计教程(第三版)课后习题6.11
来源:互联网 发布:java小游戏代码 编辑:程序博客网 时间:2024/06/04 22:46
1021: C语言程序设计教程(第三版)课后习题6.11
时间限制: 1 Sec 内存限制: 128 MB提交: 398 解决: 292
[IDE][提交][状态][讨论版]
题目描述
用迭代法求X的平方根。求平方根的迭代公式为: X[n+1]=1/2(X[n]+a/X[n]) 要求前后两次求出的差的绝对值少于0.00001。输出保留3位小数
输入
X
输出
X的平方根
样例输入
4
样例输出
2.000
求平方根的迭代公式:x1=1/2*(x0+a/x0)。
算法:1.先自定一个初值x0,作为a的平方根值,在我们的程序中取a/2作为a的初值;利用迭代公式求出一个x1。此值与真正的a的平方根值相比,误差很大。
⒉把新求得的x1代入x0中,准备用此新的x0再去求出一个新的x1.
⒊利用迭代公式再求出一个新的x1的值,也就是用新的x0又求出一个新的平方根值x1,此值将更趋近于真正的平方根值。
⒋比较前后两次求得的平方根值x0和x1,如果它们的差值小于我们指定的值,即达到我们要求的精度,则认为x1就是a的平方根值,去执行步骤5;否则执行步骤2,即循环进行迭代。
迭代法是用于求方程或方程组近似根的一种常用的算法设计方法。设方程为f(x)=0,用某种数学方法导出等价的形式x=g(x),然后按以下步骤执行:
⑴ 选一个方程的近似根,赋给变量x0;
⑵ 将x0的值保存于变量x1,然后计算g(x1),并将结果存于变量x0;
⑶ 当x0与x1的差的绝对值还小于指定的精度要求时,重复步骤⑵的计算。
若方程有根,并且用上述方法计算出来的近似根序列收敛,则按上述方法求得的x0就认为是方程的根。上述算法用C程序的形式表示为:
#include <stdio.h>#include<math.h>int main(){ float x; float a,b; scanf("%f",&x); b = 1.0; while(fabs(b-a) > 0.00001)//a的取值是随机的吗?为什么 { a = b; b = (a+x/a)/2;//X[n+1]=1/2(X[n]+a/X[n])迭代法 } printf("%0.3f\n",b); return 0;}
阅读全文
0 0
- 1021: C语言程序设计教程(第三版)课后习题6.11
- 1052: C语言程序设计教程(第三版)课后习题11.5
- 1052: C语言程序设计教程(第三版)课后习题11.5
- 1001: C语言程序设计教程(第三版)课后习题1.5
- 1003: C语言程序设计教程(第三版)课后习题3.7
- 1005: C语言程序设计教程(第三版)课后习题4.9
- 1007: C语言程序设计教程(第三版)课后习题5.5
- 1009: C语言程序设计教程(第三版)课后习题5.7
- 1010: C语言程序设计教程(第三版)课后习题5.8
- 1051: C语言程序设计教程(第三版)课后习题11.5
- 1052:C语言程序设计教程(第三版)课后习题11.8
- C语言程序设计教程(第三版)课后习题5.7
- C语言程序设计教程(第三版)课后习题11.8
- C语言程序设计教程(第三版)课后习题10.4
- 1002: C语言程序设计教程(第三版)课后习题1.6
- 1003: C语言程序设计教程(第三版)课后习题3.7
- 1004: C语言程序设计教程(第三版)课后习题4.8
- 1005: C语言程序设计教程(第三版)课后习题4.9
- 心得
- c++11 thread 参数
- centos7 搭建 reids-cluster 缓存集群
- 关于JQuery里的$.fn详解(jquery扩展)
- groovy之正则表达式
- 1021: C语言程序设计教程(第三版)课后习题6.11
- arm交叉编译器gnueabi、none-eabi、arm-eabi、gnueabihf、gnueabi区别
- windows下Mysql定时备份
- 在eclipse中,如何查看webservice请求头(转载)
- 欢迎使用CSDN-markdown编辑器
- 理解事务的4种隔离级别
- Oracle最无奈错误PLS-00103
- Hypervisor是什么
- Robot Framework SSH登录