# learning **Repository Path**: dai-yuzheng/learning ## Basic Information - **Project Name**: learning - **Description**: 学习日志同时练习git的使用 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-06 - **Last Updated**: 2026-10-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 个人学习仓库 个人学习记录仓库,涵盖机器学习课程 Python 基础作业、计算声学数值实验(二维旋转单极子与圆柱散射场)以及学习日志与资料。 - 语言:中文 - 主分支:`master` - 远程仓库:`git@gitee.com:dai-yuzheng/learning.git`(Gitee) - 起始时间:2026-09-06 ## 项目简介 本仓库包含三部分内容: 1. **机器学习课程作业**——Python 基础练习题 `problem1.py` ~ `problem15.py`; 2. **计算声学数值实验**——二维旋转点源自由场与圆柱散射场的解析计算及边界元法(BEM)数值求解,输出 Tecplot 数据文件; 3. **学习日志与资料**——按日期记录的 Git/Markdown 学习、论文精读、工具配置,以及配套的图片、动画、数据与论文 PDF。 这是一个以学习留痕为目的的个人仓库,**非工程项目**:没有测试、没有 CI,也没有打包配置。 ## 目录结构 ``` learning/ ├── practice_code/ # 全部代码:课程作业 + 声学脚本 + notebook │ ├── problem1.py ~ problem15.py # 机器学习课程 Python 基础作业 │ ├── practice1.py # 空文件 │ ├── data_write_time.py / data_write_omega.py # 单极子自由声场(时域/频域) │ ├── data_theory_time_revolve.py # 时域旋转源 + 圆柱散射场(解析法) │ ├── data_theory_omega_revolve.py # 频域旋转源 + 圆柱散射场(解析法) │ ├── data_shuzhi_omega_revolve.py # 频域散射场(边界元法 BEM) │ └── e.ipynb # NumPy 基础练习 ├── study_log/ │ ├── 日志.md # 每日学习日志(2026-09-06 ~ 09-22) │ └── w.ipynb # 绿色建材相关笔记 ├── assets/ │ ├── anim/ # 场动画(gif / mp4,约 1.7M) │ ├── data/ # Tecplot .dat 数据文件(约 110M)、codes.txt │ ├── esays/ # 论文 PDF(目录名原文如此,即 essays) │ ├── imgs/ # 插图:git 速查表、声压场截图 │ └── notes/ # AI 辅助论文精读笔记(PDF) ├── algorithm/ # 预留的空目录 └── .gitignore # 仅忽略 .venv ``` ## 代码说明 ### 机器学习课程作业(problem1–15) 均为独立可运行的脚本,除标注「输入」的题目外直接 `python` 运行即可。 | 题号 | 主题 | 备注 | |------|------|------| | 1 | 英文段落词频统计(去标点、转小写、字典计数) | | | 2 | 用 `itertools.product` 生成无重复数字的三位数 | | | 3 | 按利润分段计算提成 | 输入 | | 4 | 九九乘法表 | | | 5 | 2~100 交替加减求和 | | | 6 | 手写两两比较排序 | | | 7 | 矩阵中查找指定数字 | 输入 | | 8 | 求 1000 以内所有完数 | | | 9 | 快乐数判定 | 输入 | | 10 | 判断是否存在和能被 k 整除的子数组 | | | 11 | 判断字符串字符是否全部唯一 | | | 12 | 勒索信字符计数(能否用杂志拼出信件) | | | 13 | 随机优惠码生成器,输出 `codes.txt` | | | 14 | 递归遍历目录,按后缀查找文件 | 引用 `C:\` | | 15 | 递归遍历目录,按后缀统计文件行数 | 引用 `C:\` | `practice1.py` 为空文件。 ### 计算声学脚本(data_*.py) 研究对象:二维空间中绕原点旋转的点源(单极子)的自由声场,及其被同轴圆柱散射后的声场。解析法基于柱函数展开,`pressure_in` / `pressure_sc` 按多普勒边带条件 ω + s·ω_r = ω_s 筛选角阶数 s(旋转源的边带效应),格林函数使用 `scipy.special.hankel1` / `jv`。 | 脚本 | 内容 | 输出 | |------|------|------| | `data_write_time.py` | 自由场单极子声压 `Q·e^{jkr}/(4πr)`,时域 24 帧 | `data_time.dat` | | `data_write_omega.py` | 同上,频域 | `data_omega.dat` | | `data_theory_time_revolve.py` | 时域:`create_resource` 旋转点源类 + 入射/散射格林函数,360×100 网格、24 帧 | `data_theory_time_revolve.dat` | | `data_theory_omega_revolve.py` | 频域版,分别输出总场 / 入射场 / 散射场 | 3 个 `.dat` | | `data_shuzhi_omega_revolve.py` | 数值边界元法(BEM):360 个边界面板、4 点 Gauss-Legendre 积分,组装 360×360 复影响矩阵(对角 0.5)后 `np.linalg.solve` 求解面源密度 | 打印到终端 | 脚本间依赖:`data_shuzhi_omega_revolve.py` 从 `data_theory_time_revolve` 导入 `pressure_in`、`create_resource`,因此**须在 `practice_code/` 目录内运行**。 ## 运行环境与依赖 - Python 3.12.3(仓库自带 `.venv`,已安装 `numpy 2.5.3`) - 作业题(problem1–15)只用标准库,无需额外依赖 > **⚠️** 声学脚本依赖 `scipy`(`hankel1`、`jv`),当前 `.venv` 中**未安装**,运行前需先执行 `pip install scipy`。仓库暂无 requirements.txt。 ## 使用说明 ```bash cd learning source .venv/bin/activate # Windows: .venv\Scripts\activate pip install scipy # 声学脚本需要;作业题不需要 cd practice_code python data_write_time.py # 其余脚本同理 ``` > **⚠️ 路径警示**:`data_write_time.py`、`data_write_omega.py`、`data_theory_omega_revolve.py`、`data_theory_time_revolve.py` 硬编码了 Windows 输出路径 `D:\git_workplace\learning\assets\data\*.dat`,`problem14.py` / `problem15.py` 引用 `C:\`。在 Linux/macOS 下运行前,须先把输出路径改为相对路径(如 `../assets/data/xxx.dat`)。 完整工作流:脚本生成 `.dat` → Tecplot 绘图并导出 png/gif 至 `assets/` → 嵌入 [`study_log/日志.md`](study_log/日志.md)。 ## 学习进度与资料 - 学习日志:[`study_log/日志.md`](study_log/日志.md)(2026-09-06 ~ 09-22,含 Git/Markdown 笔记、作业进度表、Tecplot 作图记录) - 速查与插图:`assets/imgs/`(Git 命令速查表、同轴旋转散射声场 f=140/200/260) - 动画:`assets/anim/`(单极子自由场、时域旋转散射场) - 论文与笔记:`assets/esays/`(异构无人机任务重分配论文)、`assets/notes/`(AI 精读笔记) ![同轴旋转散射声场 f=200](assets/imgs/revolve_sc_f=200.png) ## 仓库体积说明 > `assets/` 约 110MB+(Tecplot `.dat` 数据、动图、论文 PDF),克隆会较慢。数据文件是学习记录的一部分,本仓库予以保留。