在考虑到空气阻力()和因地球自转引起的科里奥利力后,列出运动方程

---->抛出点的北纬读数

---->表示地球自转角速度

算法:

四阶龙格库塔

代码

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from math import *def runge_kutta4(df,a,b,h,y0):num = len(y0)t = np.arange(a,b+h,h)w = np.zeros((t.size,num))w[0,:] = y0for i in range(t.size - 1):s0 = df(t[i], w[i,:])s1 = df(t[i] + h/2.,w[i,:] + h * s0 / 2.)s2 = df(t[i] + h/2.,w[i,:] + h * s1 / 2.)s3 = df(t[i+1], w[i,:] + h * s2)w[i+1,:] = w[i,:] + h * (s0 + 2*(s1+s2) + s3) / 6.if w[i+1,:][2] <= 0:q = ixl,yl,zl =  w[i+1,:][0],w[i+1,:][1],max(w[:,2])breakreturn t,w,q,xl,yl,zldef df(t, variables):x,y,z,x1,y1,z1 = variablesA = np.zeros((3,3))b = np.zeros(3)A[0,0] = 1A[0,1] = 0A[0,2] = 0A[1,0] = 0A[1,1] = 1A[1,2] = 0A[2,0] = 0A[2,1] = 0A[2,2] = 1phi = 30 * pi/180k = 0.00001n = 5g = 9.8b[0] = -2 * pi * 15/180/3600 * (cos(phi) * z1 - sin(phi) * y1) - k * (x1)**nb[1] = -2 * pi * 15/180/3600 * sin(phi) * x1 - k * (y1)**nb[2] = -g + pi * 15/180/3600 * 2 * cos(phi) * x1 - k * (z1)**nx2,y2,z2 = np.linalg.solve(A, b)return np.array([x1,y1,z1,x2,y2,z2])a,b = 0.0,20.0
h = 0.01x = 0
y = 0
z = 0
x1 = 10
y1 = 0
z1 = 70y0 = np.array([x,y,z,x1,y1,z1])t,w,q,xl,yl,zl = runge_kutta4(df, a, b, h, y0)x = w[:,0]
y = w[:,1]
z = w[:,2]
x1 = w[:,3]
y1 = w[:,4]
z1 = w[:,5]if 1:fig = plt.figure()ax = fig.add_subplot(projection='3d')ax.scatter(x,y,z,label="projectile",s=0.5)ax.set_xlabel("X"+" covers "+str(round(xl,2)) +" meters in x")ax.set_ylabel("Y"+" covers "+str(round(yl,2)) +"meters in y")ax.set_zlabel("Z"+" the highest is "+str(round(zl,2)) +" meters in z")ax.set_title("3D projectile draw"+"  end in  "+str(q*h)+"  second")ax.legend()else:#plt.plot(x,z)plt.plot(x,y)
plt.show()

效果图

    Vx=10,Vy=10,Vz=20,k=0.000001,n=5

Vx,y=0.5Vz=10 ,k=0.05 n=2

Python数值分析案例01--------四阶龙格库塔法解抛体运动相关推荐

  1. 二阶偏微分方程组 龙格库塔法_1、经典四阶龙格库塔法解一阶微分方程组

    1.经典四阶龙格库塔法解一阶微分方程组 陕 西 科 技 大 学 数值计算课程设计任务书 理学院信息与计算科学/应用数学专业信息08/数学08 班级 学生: 题目:典型数值算法的C++语言程序设计 课程 ...

  2. 四阶龙格库塔法的基本思想_经典四阶龙格库塔法解一阶微分方程组讲义.doc

    1.经典四阶龙格库塔法解一阶微分方程组 1.1运用四阶龙格库塔法解一阶微分方程组算法分析 , 经过循环计算由 推得 -- 每个龙格-库塔方法都是由一个合适的泰勒方法推导而来,使得其最终全局误差为,一种 ...

  3. 四阶龙格库塔法的基本思想_请问用四阶龙格库塔法解二阶微分方程的思想是什么?...

    默认y的单位是弧度 k=1000; t=0:0.001:1; Y=[]; err=1 K=[]; Ymax=[]; xishu=1.01; while err X=[0 0]; k=xishu*k; ...

  4. Python实战案例01

    文章目录 1.打印购物小票 2.打印蚂蚁森林植树证书 3.绝对温标 4.身体质量指标 5.计算器 6.猜数字 7.逢 7 拍手游戏 8.打印五子棋棋盘 9.房贷计算器 1.打印购物小票 购物小票又称购 ...

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

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

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

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

  7. 代码检查规则:Python语言案例详解

    在之前的文章中代码检查规则:Java语言案例详解学习了Java的检查规则.我们今天将学习<代码检查规则:Python语言案例详解>,内容主要分为两个部分:Python的代码检查规则和Pyt ...

  8. AidLux“换脸”案例源码详解 (Python)

    "换脸"案例源码详解 (Python) faceswap_gui.py用于换脸,可与facemovie_gui.py身体互换源码(上一篇文章)对照观看 打开faceswap_gui ...

  9. AidLux“人像抠图”案例源码详解 (Python)

    "人像抠图"案例源码详解 (Python) seg_gui_meet.py用于人像抠图 导入基础包作用详解 构建程序图形化类 初始化处理函数(人体抠图应用启动时首先被调用) 程序入 ...

  10. python编程入门与案例详解-Python程序设计案例课堂

    Python程序设计案例课堂 第Ⅰ篇 基础知识 1 揭开Python神秘面纱 1.1 什么是Python 1.2 Python的优点和特性 1.2.1 Python的优点 1.2.2 Python的特 ...

最新文章

  1. 高等数学·为什么f``(x)小于0:则f(x)在[a,b]上的图形是凹的。f``(x)大于0:则f(x)在[a,b]上的图形是凸的。
  2. 2018年聊天机器人状态报告
  3. Get Started with Omni-Channel
  4. 推导LookAt函数定义的视图矩阵
  5. C++Primer笔记之复制控制
  6. DL框架之Tensorflow:深度学习框架Tensorflow的简介、安装、使用方法之详细攻略
  7. linux dhcp解释,教会你Suse Linux DHCP服务器配置详解
  8. 基于PyTorch搭建CNN实现视频动作分类任务代码详解
  9. 关于fi dd ler 手机抓包 网卡地址地址_136w、136nw、138pnw 通过手机设置无线连接
  10. 通信原理 第7版 樊昌信版
  11. 用html做一个图表,04做一个简单的图表.html
  12. 从零开发微信公众号(PC)
  13. pc游戏手柄测试软件,《原神》PC版技术性开发测试,游戏手柄操作更佳爽快
  14. Arcgis3_地图符号制作与地图数据符号化
  15. Java技术体系简介
  16. oracle学习视频
  17. eigen向量计算_Eigen矩阵基本运算
  18. @PropertySource配置的用法
  19. keras指定gpu_keras-gpu的安装与配置
  20. 一个有趣的时钟flash

热门文章

  1. python爬数据是什么意思-爬数据是什么意思?
  2. 人工智能发展历史概述
  3. js获取某月的天数以及某天的前一个日期和后一天日期
  4. 购物车程序流程图01
  5. 【工控老马】基于MODBUS协议的上位机与PLC及智能仪表之间的通信实现方法
  6. 使用CMD隐藏文件夹
  7. python中空格怎么打_191012 python3关于空格打印、赋值、+=符号的小坑
  8. 数据产品经理——数据指标
  9. 基于vue添加刻度线比例尺
  10. python人脸识别毕业设计-毕业论文:基于树莓派的人脸识别门禁系统本科毕业设计文章...