随笔分类 -  算法

Newton迭代法-C++
摘要:牛顿迭代法: 设定x*是方程f(x)=0的根,选取x0作为x*的近似值,过点(x0, f(x0))做曲线f(x)=0的切线L,L的方程y=f(x0)+f'(x0)(x-x0),求出L与x轴焦点的横坐标x1=x0-f(x0)/f'(x0),称x1为x*的一次近似值,然后设置x0=x1,重复上面的过程,反复迭代,就可以得到一个比较精确的近似值。代码实现:#include #include using namespace std;/* 定义一个list列表存储方程的表达式 */typedef list Expression; /* 方程系统的初始化: n为方程的最高... 阅读全文

posted @ 2014-03-10 21:18 进击的Ray_xujianguo 阅读(1406) 评论(0) 推荐(0)

二分法-C++
摘要:对于一个非线性方程f(x)=0求改方程的根,我们的思路可以这么想: 1.根的存在性。若该方程没有根,何必徒劳想法设法去求它的解呢?对于一个方程,我们怎么去找他的根,有连续函数零点定理可知:若有f(a)f(b)0为给定的步长,基础区间为(a, b),取x0=a,x1=x0+h,若f(x0)(x1)b为止,但这不等于该方程没有根,因为你的步长如果很大,误差就大,很容易错过了有根的区间,所以当然建议采用尽量小的步长扫描。#include #include using namespace std;/* Value类: 用来存储一个区间的左边界值和右边界值*/class... 阅读全文

posted @ 2014-03-09 19:58 进击的Ray_xujianguo 阅读(2303) 评论(0) 推荐(0)

导航