#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. mysql-配置与使用(跳过原始密码登陆)

    目录 简单的使用步骤 环境变量的操作 配置文件的使用 查找进程 mysql 5.6 管理员密码的设置 简单的使用步骤 bin 下面有mysqld.exe 是服务端程序, mysql.exe 是客户端程 ...

  2. 必须掌握的Linux用户组知识

    在 Linux 系统中用户组起着重要作用.用户组提供了一种简单方法供一组用户互相共享文件.用户组也允许系统管理员更加有效地管理用户权限,因为管理员可以将权限分配给用户组而不是逐一分配给单个用户. 尽管 ...

  3. Vue学习之webpack中使用vue(十七)

    一.包的查找规则: 1.在项目根目录中找有没有 node_modules 的文件夹: 2.在 node_modules 中根据包名,找对应的vue 文件夹: 3.在vue 文件夹中,找 一个叫做 pa ...

  4. 继 首次使用DoNetCore EFCore DbFirst 更新数据实体

    //EFCore DB First 步骤 //第一步:Install-Package Microsoft.EntityFrameworkCore.SqlServer -version 2.1.1 // ...

  5. day 08作业 预科

    有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中 lt=[11,22,3 ...

  6. MyBatis 中如何调用 Java 的 enum (枚举) 字段

    事先作成一 enum,如下: public enum CityCode { ALL("000"), BEIJING("010"), SHANGHAI(" ...

  7. C#-NLog记录日志

    Nuget获取包 配置文件 <?xml version="1.0" encoding="utf-8" ?> <nlog xmlns= &quo ...

  8. 【Mac】微信视频对方听不见你的声音

    解决方案: 1.打开系统设置 2.选择声音 3.输出选择第一个就可以

  9. PAT甲级1002水题飘过

    #include<iostream> #include<string.h> using namespace std; ]; int main(){ int n1, n2; wh ...

  10. Kotlin函数式编程范式深入剖析

    继续学习Kotlin的函数式编程,先定义一个高阶函数: 其实上面这种调用方式在Kotlin用得不多,反而是将Lambda表达式放到方法体中使用得较频繁,如下: 接下来定义一个扩展方法,用来对字符串进行 ...