1. “二分法解方程”

  在二分法中,从区间[a,b]开始,用函数值f(a)与f(b)拥有相反的符号。如果f在这个区间连续,则f的图像至少在x=a,x=b之间穿越x轴一次,因此方程f(x)=0在[a,b]之间至少有一个解,通过逐步对[a,b]区间进行二分处理,选取在那一部分改变了符号,逐步缩小方程解的更小区域。

 /************************************************************************/
/*二分法 解方程 */
/************************************************************************/
double fun001(double x);
int main()
{
double acurace;
cout << "请输入精度:eg(0.00001)";
cin >> acurace;
double left, right;
do
{
cout << "请输入有效的预期值的边界:";
cin >> left >> right;
} while (fun001(left) * fun001(right) >= 0.0);
double width = right - left,
midPt,funMidVal; //求解
while (width/ > acurace)
{
midPt = (left + right) / 2.0;
funMidVal = fun001(midPt);
if (fun001(left) * funMidVal < 0.0)
{
right = midPt;
}
else
{
left = midPt;
}
width /= 2.0;
} cout << "二分法获取的方程的值是:" << midPt << endl; }

  还可以使用Newton-Raphson(牛顿-拉弗森)方法,对方程问题进行求解;

2.“逼近区域的面积”求数值积分问题

  一个常用的方法是,使用n-1个等距离的点x1、x2··· xn-1将区间[a,b]划分为n个等间隔的子区域,每个子区域的匡杜dealtaX = (b-a)/n。则对于曲线上的相应的点,使用线段链接相邻的点行程n个梯形。

  这些梯形的面积之和约定于曲线f(x)在区间[a,b]下的积分,使用梯形面积公式可以计算第i个梯形的面积为:((f(xi-1) + f(xi))* dealtaX)/2;

  将这些值相加整理的:dealtaX * (( y0 + yn)/2 + y1 + y2 + y3 ... + yn-1);

 /************************************************************************/
/* 近似积分梯形法求解积分问题 */
/************************************************************************/ double funJiFen(double x);
int main()
{
int n;
cout << "enter 需要对所积分的曲线划分成多少份 (n)";
cin >> n;
double a,b,deltaX, x,y,sum;
cout << "请输入所要积分的边界:(a)(b)";
cin >> a >> b;
deltaX = (b - a)/n;
sum = ;
x = a;
for (int i = ; i <= n - ; i++)
{
x += deltaX;
y = funJiFen(x);
sum += y;
}
sum = deltaX * ((funJiFen(a) + funJiFen(b))/ + sum);
cout << "在分成" << n << "等分的积分面积"<< sum << endl; }

  还可以使用:Simpson方法,这种方法思想是使用“抛物线代替梯形”求取面积;

3. 求解微分方程求解问题

  微分方程的定义:包含导数或者微分的方程称为微分方程;

  使用Euler(欧拉)方法求解微分方程

  给定一阶微分方程:y' = f(x,y);

  初始条件:y(x0) = y;

  在某个区间[a,b]且a = x0; (1) 选择x的增量dealtaX,(2)对n= 0,1,2,3...完成以下步骤:

    (i) 设xn+1 = xn + dealtaX;

    (ii) 通过点Pn(xn, yn),斜率为 f(xn,yn)的直线上找到点P(xn+1, yn+1),即求出下一点的横坐标yn+1,可以作为点xn+1在原函数的近似值;

    (iii)重复以上操作,知道在特定点即可获取微分方程问题;

  还可以利用更精确的方法求解微分方程问题,这里仅仅提供一种最简单的求解思路!

三种初步简易的方法求解数值问题 of C++的更多相关文章

  1. iOS 三种收起键盘的方法

    - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typica ...

  2. 【读书笔记】iOS-开发技巧-三种收起键盘的方法

    - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typica ...

  3. File类三种得到路径的方法

    转: File类三种得到路径的方法 2010年11月29日 20:37:00 ssyan 阅读数:27123 标签: filemicrosoftstringexceptionwindowsunix   ...

  4. 【转】python 三种遍历list的方法

    [转]python 三种遍历list的方法 #!/usr/bin/env python # -*- coding: utf-8 -*- if __name__ == '__main__': list ...

  5. 【Java 线程的深入研究1】Java 提供了三种创建线程的方法

    Java 提供了三种创建线程的方法: 通过实现 Runnable 接口: 通过继承 Thread 类本身: 通过 Callable 和 Future 创建线程. 1.通过实现 Runnable 接口来 ...

  6. Oracle数据库三种标准的备份方法

    Oracle数据库的三种标准的备份方法: 1.导出/导入(EXP/IMP). 2.热备份. 3.冷备份. 注释:导出备件是一种逻辑备份,冷备份和热备份是物理备份. 一.导出/导入(Export/Imp ...

  7. iOS用三种途径实现一方法有多个返回值

    以前觉得这种标题有点偏向于理论,实际开发中怎么会有这种诡异的需求,但是真正遇到了这种硬需求时觉得还是有那么点价值的,理论付诸了实践在此也就做了个整理. 以我私下开发中的一处代码为例,本意是希望有这么一 ...

  8. Java Web开发Tomcat中三种部署项目的方法

    第一种方法:在tomcat中的conf目录中,在server.xml中的,<host/>节点中添加: <Context path="/hello" docBase ...

  9. nodejs Express 4.x req.body req.query req.params 三种获取参数的方法

    第一种情况:http://localhost:3000/1,我们可以用req.params.(应该是跟路由有关,待) 第二种情况:http://localhost:3000/?id=1,用req.qu ...

随机推荐

  1. Oracle_PL/SQL(8) 动态sql

    动态sql0.pl/sql块的限制 不能执行ddl操作(create.drop.alter): 不能执行部分dcl操作(grant.revoke). 1.语法动态sql:在执行时才能确定要执行的sql ...

  2. L1-006 连续因子(20)(思路+测试点分析)

    L1-006 连续因子(20 分) 一个正整数 N 的因子中可能存在若干连续的数字.例如 630 可以分解为 3×5×6×7,其中 5.6.7 就是 3 个连续的数字.给定任一正整数 N,要求编写程序 ...

  3. hdu 5491(2015合肥网赛)The Next

    题目;http://acm.hdu.edu.cn/showproblem.php?pid=5491 题意就是,T组测试数据.然后L,S1,S2.L的二进制中有x个1,x满足  S1<=x< ...

  4. 冒泡排序(js版)

    基本思想:两两比较相邻记录的关键字,如果反序则交换,直至没有反序为止. 最初的冒泡排序(初级版): //从小到大 function BubbleSort(arr){ var i,j,temp; for ...

  5. N! java

    import java.util.*; import java.math.*; public class Num2{ public static void main(String args[]){ B ...

  6. 796B Find The Bone

    B. Find The Bone time limit per test 2 seconds memory limit per test 256 megabytes input standard in ...

  7. 在iOS 8及以后使用UIAlertController 等各种弹出警告通知

    原文转自:在iOS 8中使用UIAlertController 感谢作者分享,自我学习之用 iOS 8的新特性之一就是让接口更有适应性.更灵活,因此许多视图控制器的实现方式发生了巨大的变化.全新的UI ...

  8. phpstudy报告80端口被占用

    将所有的80端口修改为81后重启,还是不行

  9. VMware Workstation 15 pro keys

    永久激活密钥UG5J2-0ME12-M89WY-NPWXX-WQH88 GA590-86Y05-4806Y-X4PEE-ZV8E0 YA18K-0WY8P-H85DY-L4NZG-X7RAD UA5D ...

  10. tomcat与jmeter

    jmeter无法提取出Tomcat之外的其他服务器的指标. 为了克服这一现状,研发了一个服务器代理,jmeter通过这个代理来获取性能数据. 代理使用的是sigar开源库,他是一个java通过部分和一 ...