当前位置: 首页 > article >正文

数学建模-1:对变化建模

文章目录

  • 对变化建模
    • 比例性
  • 1.1用差分方程对变化建模
  • 1.2 利用差分方程近似描述变化
  • 1.3 动力系统解法
  • 1.4 差分方程组
      • 定义与一般形式
      • 求解方法

对变化建模

比例性

定义:两个变量yx是互成比例的,如果一个变量是另一个变量的常数倍,即,y=kx

【测试比例性】
考虑弹簧-小球系统。

质量 m m m伸长量 e e e
501.000
1001.875
1502.750
2003.250
2504.375
3004.875
3505.675
4006.500
4507.250
5008.000
5508.750

首先,可视化数据:
在这里插入图片描述
注意到,数据貌似呈现线性关系:
在这里插入图片描述

import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt

mpl.rcParams["font.sans-serif"] = ["SimHei"]
mpl.rcParams["axes.unicode_minus"] = False

x = [50, 100, 150, 200, 250, 300, 350, 400, 450, 500, 550]
y = [1.000, 1.875, 2.750, 3.250, 4.375, 4.875, 5.675, 6.500, 7.250, 8.000, 8.750]

# 线性拟合
coefficients = np.polyfit(x, y, 1)
a = coefficients[0]
b = coefficients[1]
y_fit = a * np.array(x) + b

# 打印直线方程
equation = f"y = {a:.4f}x + {b:.4f}"
print("直线方程为:", equation)

plt.scatter(x, y, color="c", label="散点图")
plt.plot(x, y_fit, color='red', label='最佳拟合曲线')

# 在图中添加直线方程文本
plt.text(0.05, 0.9, equation, transform=plt.gca().transAxes, fontsize=12)

plt.xlabel("小球质量")
plt.ylabel("伸长量")
plt.title("弹簧 - 小球系统数据可视化")
plt.legend()
plt.show()

分析原因,为什么不符合胡克定律呢?可能是弹簧自重对弹簧原场伸长量的影响。

1.1用差分方程对变化建模

定义1:数列 A = { a 0 , a 1 , a 2 , a 3 , . . . } A=\{a_0,a_1,a_2,a_3,...\} A={a0,a1,a2,a3,...}的第 n n n个一阶差分为:
Δ a n = a n + 1 − a n \Delta a_n=a_{n+1}-a_n Δan=an+1an
在这里插入图片描述
一阶差分表示该序列两个相邻值的增加或者减少,即在一个周期里序列图中的垂直变化。
定义2:用于描述从一个周期到下一个周期的变化的无穷多个代数方程的递推方程,称动力系统

1.2 利用差分方程近似描述变化

Δ a n = f ( a i , 外 来 项 ) \Delta a_n=f(a_i,外来项) Δan=f(ai,)

1.3 动力系统解法

单一动力系统
线性动力系统
分式动力系统
非线性动力系统

1.4 差分方程组

差分方程组是由多个差分方程组成的方程组,用于描述多个相关序列之间的关系。以下是关于差分方程组的详细介绍:

定义与一般形式

差分方程组是包含多个差分方程,且这些方程相互关联,共同描述多个离散变量之间动态关系的方程组。设 x n x_n xn y n y_n yn等是关于 n n n的离散序列,一般形式可以表示为:
{ Δ x n = f 1 ( x n , y n , ⋯   ) Δ y n = f 2 ( x n , y n , ⋯   ) ⋯ \begin{cases}\Delta x_n = f_1(x_n,y_n,\cdots)\\\Delta y_n = f_2(x_n,y_n,\cdots)\\\cdots\end{cases} Δxn=f1(xn,yn,)Δyn=f2(xn,yn,)
其中 Δ x n = x n + 1 − x n \Delta x_n = x_{n + 1}-x_n Δxn=xn+1xn Δ y n = y n + 1 − y n \Delta y_n = y_{n + 1}-y_n Δyn=yn+1yn f 1 f_1 f1 f 2 f_2 f2等是关于 x n x_n xn y n y_n yn等序列的函数。

求解方法

  • 迭代法:已知初始条件 x 0 x_0 x0 y 0 y_0 y0等,根据差分方程组依次计算出 x 1 x_1 x1 y 1 y_1 y1 x 2 x_2 x2 y 2 y_2 y2等后续的值。例如,对于方程组: { x n + 1 = x n + 2 y n y n + 1 = 3 x n − y n \begin{cases}x_{n + 1}=x_n + 2y_n\\y_{n + 1}=3x_n - y_n\end{cases} {xn+1=xn+2ynyn+1=3xnyn,给定 x 0 = 1 x_0 = 1 x0=1 y 0 = 2 y_0 = 2 y0=2,可以先计算 x 1 = x 0 + 2 y 0 = 1 + 2 × 2 = 5 x_1 = x_0 + 2y_0=1 + 2\times2=5 x1=x0+2y0=1+2×2=5 y 1 = 3 x 0 − y 0 = 3 × 1 − 2 = 1 y_1 = 3x_0 - y_0=3\times1 - 2=1 y1=3x0y0=3×12=1,然后继续计算 x 2 x_2 x2 y 2 y_2 y2等。
  • 矩阵法:对于线性差分方程组,可以将其表示为矩阵形式 X n + 1 = A X n \mathbf{X}_{n + 1}=\mathbf{A}\mathbf{X}_n Xn+1=AXn,其中 X n = ( x n y n ⋯ ) \mathbf{X}_n=\begin{pmatrix}x_n\\y_n\\\cdots\end{pmatrix} Xn=xnyn是向量, A \mathbf{A} A是系数矩阵。
    通过对矩阵 A \mathbf{A} A进行特征值分解等操作来求解。
    例如对于方程组 { x n + 1 = 2 x n + y n y n + 1 = x n + 3 y n \begin{cases}x_{n + 1}=2x_n + y_n\\y_{n + 1}=x_n + 3y_n\end{cases} {xn+1=2xn+ynyn+1=xn+3yn,可以写成矩阵形式 ( x n + 1 y n + 1 ) = ( 2 1 1 3 ) ( x n y n ) \begin{pmatrix}x_{n + 1}\\y_{n + 1}\end{pmatrix}=\begin{pmatrix}2&1\\1&3\end{pmatrix}\begin{pmatrix}x_n\\y_n\end{pmatrix} (xn+1yn+1)=(2113)(xnyn),然后利用矩阵的特征值和特征向量来求解。

http://www.kler.cn/a/579599.html

相关文章:

  • Python正则表达式完全指南:从入门到精通
  • 【Linux网络(一)】初始网络
  • Linux:多线程(单例模式,其他常见的锁,读者写者问题)
  • ESP8266UDP透传
  • 华为Mate 60 Pro+ 等机型适配支持运营商北斗卫星短信功能
  • C++:vector容器(下篇)
  • Milvus的匹配语法
  • 二维码识别OCR接口:开启高效信息提取的新篇章
  • RK Android14 在计算器内输入特定字符跳转到其他应用
  • 文件上传漏洞测试
  • Java 大视界 -- Java 大数据在智慧交通信号灯智能控制中的应用(116)
  • TCP/IP 5层协议簇:网络层(ICMP协议)
  • 论文阅读-秦汉时期北方边疆组织的空间互动模式与直道的定位(中国)
  • 自学微信小程序的第十二天
  • lodash手写源码-cloneDeep,debounce,throttle
  • 【并发】 synchronized 关键字详解
  • 实现一键不同环境迁移ES模板
  • Mysql配置文件My.cnf(my.ini)配置参数说明
  • 如何判断住宅IP与机房IP的方法
  • 双击PPT文件界面灰色不可用,需要再次打开该PPT文件才能正常打开