C语言——求根;计算机只识别0和1,那么问题来了,作为计算工具如何解决数学问题?其实,计算机是死东西,都是程序员用计算机的的思维去加数学公式计算数学题的。听起来好高端的样子,其实啊,也就那么回事儿,

请看~~求平方根,也许你会说,这还不简单直接调用square函数就好了,这个还用说么?可是我若问你那么square函数是如何实现求平方根的呢?怎么样是不是没那么简单呢?且看:

  • 牛刀小试迭代法求平方根 

数学公式为X(n+1)=1/2*(X(n)+a/X(n));

算法如下:

1)设定一个X0的值;

2)用上述公式求出x的下一个值x1;

3)再将x1带入上述公式右侧的Xn,求出下一个Xn+1

4)如此继续下去知道最后两次求出的X的值(Xn和Xn+1)满足关系:|Xn+1-Xn|<10e-5;

为了便于说明,现用x0和x1,先令初值x0=a/2;求出x1,源代码如下:

#include<stdio.h>
#include<math.h>
int main()
{
float a,x0,x1;
printf("Enter a positive number: ");
scanf("%f",&a);
x0=a/2;
x1=(x0+a/x0)/2;
do
{
x0=x1;
x1=(x0+a/x0)/2;
}while(fabs(x0-x1)>=10e-5);
printf("The square root of %5.2f is %8.5f\n",a,x1);
return 0;
}

运行截图:

  • 升级版求一元高次方程的根~牛顿迭代法

又称牛顿切线法:先任意设定一个与真实根接近的x0作为第一次近似根,由x0求出f(x0),过点(x0,f(x0))作f(x)的切线,交x轴于x1,把x1作为第二次近似根,再过x1作点(x1,f(x1))的切线交x轴于x2,如此继续,直到接近真实根x为止,由此可得下

公式:x1=x0-f(x0)/f‘(x0)这就是牛顿迭代公式。例如求2x^3-4x^2+3x-6=0的根

f(x)=2x^3-4x^2+3x-6     变形为f(x)=((2x-4)x+3)x-6   进一步f’(x)=6x^2-8x+3=(6x-8)+3

用这种方法表示的表达式在运算时可以节省时间,由原来的多次指数运算改为乘法和加法运算。源代码如下:

#include<stdio.h>
#include<math.h>
int main()
{
double x1,x0,f,f1;
x1=1.5;
do
{
x0=x1;
f=((2*x0-4)*x0+3)*x0-6;
f1=(6*x0-8)*x0+3;
x1=x0-f/f1;
}
while(fabs(x1-x0)>=10e-5);
printf("The root of 2x^3-4x^2+3x-6=0 is %5.2f\n",x1);
return 0;
}

运行截图:

最新文章

  1. EF6 的性能优化
  2. hdu 5677 ztr loves substring 多重背包
  3. PHP面向对象的魔术方法.png(不间断更新)
  4. 127.0.0.1\SQLEXPRESS连接异常
  5. MIT License
  6. MyBatis学习--逆向工程
  7. AppStore提审攻略
  8. 探秘腾讯Android手机游戏平台之不安装游戏APK直接启动法
  9. 带同时滚动小色条的banner轮播图jq
  10. 学习Python遇到的那些坑
  11. js swipe 图片滑动控件实现 任意尺寸适用任意屏幕
  12. 保持iOS上键盘出现时输入框不被覆盖
  13. DATE_FORMAT() 函数
  14. 使用instantclient_11_2 和PL/SQL Developer工具包连接oracle 11g远程数据库
  15. 简单探讨python中的语句和语法
  16. robotframework学习笔记(七)------筛选执行用例
  17. Tomcat 对 HTTP 协议的实现(下)
  18. prototype、proto、constructor 之间的关系
  19. [原创]基于Zynq Linux环境搭建(二)
  20. socket-WebSocket HttpListener TcpListener 服务端客户端的具体使用案例

热门文章

  1. VC 三点 划 曲线
  2. Android 中获取 debug 测试 SHA1 和 release SHA1 证书指纹数据的方法
  3. SQL函数——LENGTH()和LENGTHB()
  4. 洛谷P1198 [JSOI2008]最大数
  5. Java程序员面试宝典——重要习题整理
  6. 华为OJ平台——矩阵乘法
  7. Loadrunner:POP3协议录制收信,使用foxmail录制到的脚本为空
  8. How to index email and attachments in nsf files?
  9. Linux系统快速启动方案
  10. sqlite3里类似top的用法