# -*- coding: utf-8 -*-
'''
Time: XXXX
author: XX
Project: XXXX
File: XXX
'''import numpy as np
from matplotlib import pyplot as plt
import seaborn as sns#由题目定义矩阵
A = np.matrix([[0, 1], [0, 0]])
AT = np.matrix([[0, 0], [1, 0]])
B = np.matrix([[0], [1]])
BT = np.matrix([[0, 1]])
F = np.matrix([[1, 0], [0, 2]])
Q = np.matrix([[2, 1], [1, 4]])
R = np.matrix([[1/2]])
RN = 2#根据边界条件给定的值
step_num = 100
t = 3
step = -t / step_num
P = F# 定义黎卡提方程
def Ricatti_P(t, P):f = -(P * A + A.T * P - P * B * R.I * B.T * P + Q)return fys_0, ys_1, ys_2, ys_3 = [], [], [], []
ts = []
while t > 0:t += stepk1 = step * Ricatti_P(t, P)k2 = step * Ricatti_P(t + step * 0.5, P + k1 * step * 0.5)k3 = step * Ricatti_P(t + step * 0.5, P + k2 * step * 0.5)k4 = step * Ricatti_P(t + step, P + k3 * step)P = P + (k1 + k2 * 2 + k3 * 2 + k4)/6P = np.array(P)ts.append(t)ys_0.append(P[0][0])ys_1.append(P[0][1])ys_2.append(P[1][0])ys_3.append(P[1][1])print(ys_0)print(P)sns.set()
fig, axes = plt.subplots(2, 2)
axes[0][0].plot(ts, ys_0, label='p1')
axes[0][1].plot(ts, ys_1, label='p2')
axes[1][0].plot(ts, ys_2, label='p3')
axes[1][1].plot(ts, ys_3, label='p4')
for i in range(2):for j in range(2):axes[i][j].set_xlabel('t')axes[i][j].legend(loc=3)
plt.suptitle('Riccati equation\'s solve ', size=18)
plt.show()

Python实现四阶龙格库塔法求解Ricatti方程相关推荐

  1. 四阶龙格库塔法求解一次常微分方程组(python实现)

    四阶龙格库塔法求解一次常微分方程组 一.前言 二.RK4求解方程组的要点 1. 将方程组转化为RK4求解要求的标准形式 2. 注意区分每个方程的独立性 三.python实现RK4求解一次常微分方程组 ...

  2. 欧拉法、预估校正法(改进的欧拉法)与四阶龙格库塔法求解常微分方程的数值解C++程序

    以y'=x+y,0<x<1,y(0)=1为例,取步长h=0.1,已知精确值为y=-x-1+2e^x,用来进行精度比较 #include<stdio.h> using names ...

  3. python —— 使用sympy模块求解数学方程

    SymPy是符号数学的Python库.它的目标是成为一个全功能的计算机代数系统,同时保持代码简洁.易于理解和扩展. 符号表示 In [1]:from sympy import * In [2]:x = ...

  4. 四阶龙格库塔法的基本思想_利用龙格库塔法求解郎之万方程.doc

    利用龙格库塔法求解郎之万方程.doc 利用龙格-库塔法求解朗之万方程1. 待解问题布朗颗粒是非常微小的宏观颗粒,其直径的典型大小为10-710-6m.颗粒不断受到液体介质分子的碰撞,在任一瞬间,一个颗 ...

  5. matlab龙格库塔法求通解,基于matlab及龙格库塔法求解布拉修斯方程.doc

    基于matlab及龙格库塔法求解布拉修斯方程 Runge-Kutta法求解布拉修斯解 摘要 薄剪切层方程主要有三种解法,即相似解,非相似条件下对偏微分方程组的数值解和近似解.布拉修斯解是布拉修斯于19 ...

  6. 用四阶龙格库塔法(RK4)求解二阶微分方程

    import math import matplotlib.pyplot as plt# 龙格-库塔法的定义 def runge_kutta(y, h, f):k1 = h * f(t, x1, x2 ...

  7. python解常微分方程龙格库_excel实现四阶龙格库塔法runge-kutta解二阶常微分方程范例.xls...

    excel实现四阶龙格库塔法runge-kutta解二阶常微分方程范例,rungekutta,四阶rungekutta法,rungekuttamatlab,四阶rungekutta,rungekutt ...

  8. 四阶龙格库塔法-实现异步电机模型仿真

    序言 龙格库塔法是求解线性.非线性微分方程数值解的经典方法.具有计算精度高,稳定性好的特点.由于该方法在基于现代控制理论的观测器应用中十分重要,因此有必要通过一个经典的例子实现该方法的仿真应用. 关键 ...

  9. 龙格库塔法求解微分方程

    在https://blog.csdn.net/weixin_42141390/article/details/110184743一文中,我们曾经讨论了欧拉法,龙格-库塔法也跟欧拉法一样,是用梯形的面积 ...

  10. matlab解二阶微分方程组,[微分方程组]急急急!用MATLAB按二阶龙格库塔法求解微分方程组,急用于毕业设计!...

    急急急!用MATLAB按二阶龙格库塔法求解微分方程组,急用于毕业设计! 问题补充:今天才发现自己之前做的一点都不对,17号就交论文了,我傻了,急死了!求各位大侠帮帮忙.谢谢!要求解的微分方程如图所示. ...

最新文章

  1. c++中声明和定义的区别(这个兄弟写的解决了我的疑惑)
  2. Kanboard简单的可视化任务板,项目管理
  3. ASP.NET Core 进程内(InProcess)托管(6)《从零开始学ASP.NET CORE MVC》:
  4. android条形图,MPAndroid组条形图未显示
  5. finally不管有没有错都会运行 finally 块用于清除 try 块中分配的任何资源,以及运行任何即使在发生异常时也必须执行的代码...
  6. shiny动态仪表盘应用 | 中国世界自然文化遗产可视化案例
  7. MySQL客户端使用
  8. 高程(DEM) ASCII数据获取
  9. 基于遗传算法(deap库)的一元函数寻优代码详解
  10. 【Linux】之 从源代码安装软件(HelloWorld)
  11. 级数 p级数 q级数 调和级数为什么叫做“调和”级数 等比数列求和公式和等差数列求和 斜率:
  12. 在哪能查到英文论文?
  13. Linux unison 效率,Linux下inotify+unison双向同步环境部署
  14. Gradle依赖本地aar包
  15. 真实评测 rtx3080ti对比rx6800xt选哪个好
  16. 如何提高工作激情,打造狼性团队
  17. lnmp搭建qq农场
  18. Oracle 字段自增
  19. 微型计算机的基本组成及各个部分的作用
  20. C++和C语言求解一个数的阶乘以及多个数的阶乘之和

热门文章

  1. Jsp与Servlet面试题
  2. 现有Unity项目修改渲染管线
  3. 模块式工业机器人柔性自动化生产线实训系统(五站)
  4. 小米研发类Kindle电子阅读器
  5. Cocos Creator 使用位图工具BMFont自定义字体 fnt
  6. Lyapunov稳定性分析3(离散时间系统)
  7. 使用Arduino IDE环境学习ESP32--CAM
  8. php开启ziparchive类,php压缩解压文件ZipArchive类的方法使用教程
  9. tar 打包隐藏文件
  10. 中文版Photoshop.CS6完全自学教程 李金明.全彩版.pdf