#include<iostream>

#include<iomanip>

using
namespace std;

int main()

{

double
x,y,h,temp,f;

x
=
0;      //对x赋初值

y
=
1;      //对y赋初值

h
=
0.1;      //步长设置为0.1

cout << setiosflags(ios::left);

cout << setw(20)
<< "y的计算值";

cout << setw(20)
<< "y的理论值";

cout << setw(20)
<< "x的值";

cout << setw(20)
<< "误差"
<< endl;

cout << setw(20)
<< y;

cout << setw(20)
<< y;

cout << setw(20)
<< x;

cout << setw(20)
<< 0
<< endl;

for
(int i = 0; i < 10; i++)

{

temp=y;

f
= y - (2 * x /
y);      //保存未改变的f(x,y)的值

y
= y + h*(y - (2 * x /
y));      //得到预估值

x
+=
h;      //迭代得到最新的x值

y=temp
+ h / 2 *(f + (y - (2 * x / y) ) );

cout << setw(20)
<<
y;      //输出y的新值

cout << setw(20)
<< sqrtf(1 + 2 *
x);      //计算y的理论值

cout << setw(20)
<<
x;      //输出x的新值

cout << setw(20)
<< y - sqrtf(1 + 2 * x)
<< endl;      //计算误差

}

return
0;

}

改进欧拉公式求解常微分方程(c++)的更多相关文章

  1. MATLAB求解常微分方程:ode45函数与dsolve函数

    ode45函数无法求出解析解,dsolve可以求出解析解(若有),但是速度较慢. 1.      ode45函数 ①求一阶常微分方程的初值问题 [t,y] = ode45(@(t,y)y-2*t/y, ...

  2. 欧拉法求解常微分方程(c++)

    #include<iostream> #include<iomanip> using namespace std; int main() { double x, y, h;   ...

  3. 梯形法求解常微分方程(c++)

    #include<iostream> #include<iomanip> using namespace std; int main() { double x,y,yn,h,t ...

  4. 后退欧拉法求解常微分方程(c++)

    #include<iostream> #include<iomanip> using namespace std; int main() { double x,y,yn,h,t ...

  5. 欧拉法求解常微分方程(c++)【转载】

    摘自<c++和面向对象数值计算>,代码简洁明快,采用类进行封装实现代码,增强代码的重用性,通过继承可实现代码的重用,采用函数指针,通用性增强,在函数改变时只需要单独改变函数部分的代码,无需 ...

  6. ODEINT 求解常微分方程(4)

    import numpy as np from scipy.integrate import odeint import matplotlib.pyplot as plt # function tha ...

  7. ODEINT 求解常微分方程(3)

    import numpy as np from scipy.integrate import odeint import matplotlib.pyplot as plt # function tha ...

  8. ODEINT 求解常微分方程(2)

    import numpy as np from scipy.integrate import odeint import matplotlib.pyplot as plt # function tha ...

  9. ODEINT 求解常微分方程(1)

    An example of using ODEINT is with the following differential equation with parameter k=0.3, the ini ...

随机推荐

  1. Matlab原型模式

    原型(Prototype)模式的定义如下:用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象.Matlab面向对象编程有两种类,一种是Value Class,一种是Ha ...

  2. Jmeter学习笔记(十七)——jmeter目录结构

    原文链接:http://www.cnblogs.com/zichuan/p/6938772.html 一.bin目录examples:  目录中有CSV样例 jmeter.bat  windows的启 ...

  3. RSA加密&解密【Java&Scala】

    一.简介 RSA加密算法是一种非对称加密算法.在公开密钥加密和电子商业中RSA被广泛使用. RSA公开密钥密码体制.所谓公开密钥密码体制就是使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解 ...

  4. MySQL Percona Toolkit--pt-osc执行SQL命令

    pt-osc执行日志 在对数据量为100000的表tb004做DROP COLUMN操作,pt-osc工具日志为: Operation, tries, wait: analyze_table, , c ...

  5. thrift简单示例 (基于C++)

    这个thrift的简单示例, 来源于官网 (http://thrift.apache.org/tutorial/cpp), 因为我觉得官网的例子已经很简单了, 所以没有写新的示例, 关于安装的教程, ...

  6. 升级openssh漏洞

    升级openssl和openssh 最近接收到客户的漏洞提醒,openssl和openssh的漏洞,解决办法就只有升级. 升级前环境 ~]# ssh -V OpenSSH_5.3p1, OpenSSL ...

  7. 微信小程序中padding-right和margin-right无效

    在小程序中遇到样式padding-right和margin-right无效,调试发现设置了padding后,宽度已经大于页面的实际宽度,除了设置float:right之外,找不到办法让右侧paddin ...

  8. 【云栖社区001-数据结构】如何实现一个高效的单向链表逆序输出(Java版)

    如题 动手之前,发现自己很擅长用C语言来写链表. 不过,既然自己做的是Java开发,那么还是用Java实现这个算法吧:毕竟,以后的若干年里都差不多要跟Java打交道了. 于是,先将Java版的链表自学 ...

  9. Vuex 是什么?

    Vuex 是什么? Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件状态,并以相应的规则保证状态以一种可预测的方式发生变   什么是"状态管 ...

  10. Linux——配置maven

    前言 Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(De ...