- 博客(22)
- 收藏
- 关注
原创 Java数组相关知识
Java数组1. 数组概述2. 数组声明与创建3. 数组初始化和内存分析4. 多维数组5. Arrays类6. 稀疏数组1. 数组概述(1)数组是相同类型数据的有序集合;(2)数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成;(3)其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问他们。下标从0开始。2. 数组声明与创建(1)如定义int数组nums的方式:int[] nums; //首选,Java风格int nums[]; //效果相同,非首选,c/c++
2021-10-12 16:43:39
284
原创 Java方法02 递归
(1)递归:A方法调用A方法,即自己调用自己(2)利用递归可以用简单的程序来解决一些复杂的问题。它通常把一个大型的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可以描述出解题过程所需要的多次重复计算,大大减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限几何。(3)递归结构包括两个部分:a. 递归头:什么时候不调用自身方法。如果没有头,将陷入死循环。递归需要有尽头,如下面这个例子中,到n==1的时候结束递归,返回一个值。b. 递归体:什么时候需要调用自身方
2021-09-27 21:26:35
174
原创 Python06 向前Euler法、向后Euler法、梯形方法、改进的Euler方法以及四阶Runge_Kutta方法(附代码)
1. 实验结果(1)解如下常微分方程:(2)分别使用向前 Euler 法、向后 Euler 法、梯形方法、改进的 Euler 方法以及 四阶 Runge_Kutta 方法,结果如下图所示:由结果可以发现,向前 Euler 法、向后 Euler 法和准确值的误差比较大, 梯形方法、改进的 Euler 方法以及四阶 Runge_Kutta 方法和准确值更为接近,并 且在该微分方程中的效果相差不大。(3)因为上图中梯形方法、改进的 Euler 方法以及四阶 Runge_Kutta 方法的重叠, 单独的
2021-09-26 17:06:31
5052
3
原创 Python05 梯形公式 Simpson公式 Cotes公式 Romber公式(附代码)
1. 实验结果(1)计算如下积分的近似值及误差:(真实值约0.693147118)(2)分别使用梯形公式、Simpson 公式、Cotes 公式以及 Romber 公式计算积分的近似值,并估计误差,结果如下:由结果可以发现,梯形公式、Simpson 公式以及 Cotes 公式计算结果的误差越来越小。 因为定义的 Romberg 公式的输入参数包括精度要求,本次运行设置精度要求为 0.001,由结 果可见求得的值满足误差要求。改变输入的参数,设置 Romberg 求积法的精度要求为 0.000
2021-09-26 16:50:46
1743
原创 Python04 直线拟合 多项式曲线拟合 指数曲线拟合(附代码)
1. 实验结果(1)在定义的类中设置已知的函数值列表为:(2)在 test.py 中选择直线拟合:输出:拟合的直线函数及图像;(3)选择多项式曲线拟合:输入:多项式拟合函数的次数;输出:拟合的多项式函数及图像;①二次多项式函数②三次多项式函数③四次多项式函数(3)选择指数曲线拟合:输出:拟合的指数函数及图像;2. 代码test.pyfrom class4 import fittingfitting = fitting() # 实例化# 选择方法,根据所选方法
2021-09-26 16:18:20
2352
1
原创 Python03 拉格朗日插值法 牛顿插值法(附代码)
1.实验结果(1)在定义的类中设置已知的函数值列表为:(2)在 test.py 中选择 Lagrange 插值法求解:输入:需求的 y 值对应的 x 值;输出:所求函数值;(3)选择 Newton 插值法求解:输入:需求的 y 值对应的 x 值;输出:差商表、所求函数值;2. 代码test.pyfrom class3 import interpolationinter = interpolation() # 实例化# 选择两种插值方法中的一种求解方法,根据所选方法的要求输入
2021-09-26 15:55:41
1680
原创 Python02 雅克比迭代法 Gauss-Seidel迭代法 列选主元法 LU分解法(附代码)
1. 实验结果(1)在定义的矩阵类中设置需要求解的方程为:(2)在 test.py 中选择雅克比迭代法求解:输入:最大容许迭代次数和精度要求;输出:根据谱半径判断方法是否收敛,收敛时得到满足精度要求的方程的根 及迭代次数;当把方程改成时,再使用雅克比迭代法,可得到迭代 矩阵的谱半径不小于 1,即该方法发散,直到达到迭代次数上限也未得到方程的解:(3)选择 Guass-Seidel 迭代法求解:输入:最大容许迭代次数和精度要求;输出:根据谱半径判断方法是否收敛,收敛时得到满足精度要求
2021-09-26 14:38:33
1541
原创 Python01 二分法 简单迭代法 Newton迭代法 (附代码)
1. 实验结果(1)在定义的方程类中设置需要求解的方程为:(2)调用方程类中定义的显示图像函数,显示曲线如下:(3)选择二分法求解,输入所需参数:精度要求和区间[a , b],得到满足精度要求的方程的根及迭代次数;(4)选择简单迭代法求解,输入所需参数:精度要求和初始点 x0,得到每次迭、代的值及满足精度要求的方程的根;(5)选择 Newton 迭代法求解,输入所需参数:精度要求和初始点 x0 ,得到每次迭代的值及满足精度要求的方程的根;2. 代码main.pyfrom unl_e
2021-09-26 13:36:20
2210
原创 机器人与目标匹配问题及解决 虚拟动力学 纳什平衡 Q-Learning
机器人与目标匹配问题及解决1. 问题描述2. 环境模型3. 博弈模型4. 虚拟动力学求纳什平衡5. Q-Learning 解决问题6. 仿真实验1. 问题描述在世界各地,由于自然灾害或者各种突发事件等原因,灾难经常发生。例如 在森林火灾救援的过程中,消防人员必须保证以最短时间以及在自身能力允许的 情况下尽可能地扑灭所有的火,防止火势蔓延造成更大的损失。如今随着科技的 进步,机器人的应用范围越来越广泛,如多机器人同样也可以使用于上述的救灾 场景之中。如上图所示,模拟了一个森林的实际环境场景,其中三角形
2021-09-24 21:38:52
515
原创 Java方法01 方法(函数)定义、调用、值传递、重载、命令行传递参数
Java 方法的定义、调用、值传递、重载、命令行传递参数1. 什么是方法?2. 方法的定义和调用3. 值传递和引用传递4. 方法的重载5. 命令行传递参数6. 可变参数(输入参数的数量不确定)1. 什么是方法?(1)如System.out.println(),指调用系统类System中的标准输出对象out中的println()方法;(2)方法的定义: Java方法是语句的集合,它们在一起执行一个特定功能:a. 方法是解决一类问题的步骤的有序组合;b. 方法包含于类或对象中;c. 方法在程序中被创
2021-09-24 20:56:11
175
原创 Java练习02 打印三角形
题目: 使用Java打印一个五行的三角形思路: 直接打印三角形比较困难,可以对三角形进行拆分,如下图画垂直线,将三角形拆分成左右对称的两部分;为了便于输出,在三角形外部增加一个外框变成一个矩形;最终按照标注的顺序即可打印出一个三角形。代码测试:(1)首先,打印出上图的标注的第一部分:倒三角型一个for循环内嵌一个for循环public class data { public static void main(String[] args) { for (int i = 1
2021-09-24 11:42:03
361
原创 LoRa、LoRaWAN及网关相关技术介绍
LoRa、LoRaWAN及网关技术介绍1. LoRa与LoRaWAN2. LoRaWAN协议定义的终端节点工作模式3. LoRaWan网络架构4. 组网方式5. 终端节点→网关:多对一时6. 终端节点→网关:一对多时7. 网关↔服务器间连接方式8. 数据上下行传输9. 终端节点加网1. LoRa与LoRaWAN二者对应关系如下:1)LoRaLoRa是一种低功耗远程无线通信技术,特点是远距离、低功耗、多节点、低成本、抗扰特性,同时LoRa低速率,小数据传输。LoRa工作频段为433/470/868/
2021-09-24 10:37:32
5260
原创 Java练习01 输出质数(素数) 使用及不使用标签Lable
质数(素数)的定义对于大于1的数,如果除了1和它本身,它不能再被其他正整数整除,则为质数。判断一个数是否为质数(素数)的方法方法一:对于需要判断的数来说,取余从2开始,步长为1,直到被判断的数的平方根为止,如果取余这些数后都不为零则该数为质数。方法二:如果是偶数,则必定不是质数;对于需要判断的数来说,取余从3开始,步长为2,直到被判断的数的平方根为止,如果取余这些数后都不为零则该数为质数。代码题目:输出101到150之间的质数。方法一(标签Lable):public class data.
2021-09-17 21:29:27
160
原创 Java基础05 break和continue比较区别
1. break1)在任何循环语句的主体部分,均可用break控制循环的流程。2)break用于强行退出循环,不执行循环中剩余语句。仅仅是终止循环,循环后面的语句依旧执行。3)break语句也在switch中使用。2. continue用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。3. 测试代码比较public class data { public static void main(String[] args) {
2021-09-17 20:45:23
83
原创 Java流程控制03 循环结构 While循环 DoWhile循环 For循环 增强型For循环
1. While循环while(布尔表达式){ //循环内容}a. 只要布尔表达式为true,循环就会一直执行下去。b. 大多数情况下要让循环停止,徐亚一个让表达式失效的方式来结束循环。c. 少部分情况需要循环一直执行,比如服务器的请求响应接听等。d. 循环条件一直为true就会造成无限循环(死循环),正常业务编程中应避免,会影响程序性能或者造成程序卡死奔溃。2. do…while循环a. 对于while语句而言,不满足条件时不能进入循环。但有时候即使不满足条件,
2021-09-17 11:18:41
111
原创 Java流程控制02 选择结构 if结构 switch结构
Java流控制2 选择结构 if结构 switch结构1. if 选泽结构2. switch多选择结构1. if 选泽结构1)if 单选泽结构语法:if (布尔表达式){ //布尔表达式为真时执行 }2)if 双选择结构语法:if (布尔表达式){ //布尔表达式为真时执行 }else{ //布尔表达式为假时执行}3)if 多选择结构语法:if (布尔表达式 1){
2021-09-16 16:27:24
68
原创 Java基础04 编译与反编译
1. 编译编译: 把所写的高级语言所写作的源代码程序,转换成计算机能直接识别、执行的低级语言的程序,也就是可执行文件。Java语言的编译: Java语言作为一种高级语言,想要被执行就要通过编译将其转换为机器语言。Java的编译分为两步:1)前端编译: * . java文件转换为 * .class文件(字节码文件)。Java的前端编译器主要是javac, Eclipse JDT 中的增量式编译器 ECJ 等。2)后端编译:在经过后端编译器,将class字节码文件,编译成机器语言。Java的后端编译器主
2021-09-16 16:25:51
445
原创 Java流程控制01 用户交互Scanner
Java流程控制1 用户交互Scanner1. Scanner对象2. 测试代码3. 比较4. Scanner进阶使用1. Scanner对象1) 在Java中可以通过Scanner类来获取用户的输入。java.util.Scanner是Java5的新特征。2)基本语法:Scanner s = new Scanner(System.in);3)一般使用方法:首先使用hasNext()与hasNextLine()判断是否有输入的数据;然后通过Scanner类的next()与nextLine()方法
2021-09-15 11:08:42
143
原创 Java基础03 字符串连接符+
测试代码:public class data { public static void main(String[] args) { int a = 10; int b = 20; System.out.println(a+b); System.out.println(""+a+b); System.out.println(a+b+""); }}运行结果:结论:+运算符两侧中一侧出现String类型
2021-09-13 11:20:47
82
原创 Java基础02 位运算符<<、>>
题:如何快速计算2的3次方?(利用位运算符)答:public class data { public static void main(String[] args) { System.out.println(2<<3); }}左移<< 右移>>左移<<:乘 2右移>>:除 2比如:0000 0010左移1位变成0000 0100,右移1位变成0000 0001...
2021-09-13 11:08:37
120
原创 Java基础01 1个&和2个&&区别比较
&位运算符&&逻辑运算符举例说明逻辑运算符&&:一旦左端为false,不再运算右端,直接得到结果为false测试代码:public class data { public static void main(String[] args) { //短路运算 int a = 5; boolean b = (a<4)&&(a++<4); S...
2021-09-13 11:00:19
494
原创 NUC980开发板Linux系统EC20模块 移植 串口 PPP拨号
NUC980开发板Linux系统EC20 4G模块移植 PPP拨号1. EC20模块连接Linux内核配置交叉编译PPP拨号脚本进行拨号1. EC20模块连接对于嵌入式Linux而言,4G网络连接是一个比较容易实现的功能,大多数的4G模块接口都是MiniPCIE接口,深入了解一下就会发现,4G模块的通信接口是USB,所以4G模块的驱动经常会使用USB驱动,只要USB驱动正常,4G模块在硬件上就能正常通信。但是本文中不采用USB驱动,而是串口驱动,将NUC980主控板中芯片NUC980DK61Y的引脚和E
2021-09-08 16:25:18
2521
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人