MATLAB数学建模1自行车的运动
自行车建模渲染全教程

车轮建模
总结词
车轮是自行车的重要组成部分,其建模过程需要考虑到轮胎、轮毂和气瓶等细节 。
详细描述
在车轮建模过程中,需要分别对轮胎和轮毂进行建模。轮胎的建模需要考虑其厚 度、宽度和纹理等细节,而轮毂的建模则需要考虑到其尺寸、形状和结构。此外 ,还需要为轮胎和轮毂添加纹理和材质,以使其看起来更加真实。
自行车建模渲染全教程
contents
目录
• 自行车建模基础 • 自行车详细建模 • 材质与贴图 • 渲染技巧 • 后期处理与合成
01 自行车建模基础
建模软件介绍
Blender
Blender是一款开源的3D图形软 件,功能强大,支持从建模、动 画到渲染的全流程制作。
Maya
Maya是Autodesk公司出品的世 界顶级的三维动画软件,应用对 象是专业的影视广告,角色动画, 电影特技等。
细节增强
通过锐化、降噪等操作,增强图像的细节表现力,使自行车 模型看起来更加精致。
添加特效
光影效果
在图像上添加光影效果,模拟自然光 照射在自行车上的效果,增强立体感 和真实感。可以使用各种光影工具或 插件来实现。
动态效果
为了使图像更加生动,可以添加一些 动态效果,如车轮转动、尾灯闪烁等 。这些效果可以通过软件中的动画工 具或粒子系统来实现。
其他细节建模
总结词
其他细节包括链条、脚踏、挡泥板等,这些细节的建模可以使自行车更加真实。
详细描述
在细节建模过程中,需要考虑到这些部件的尺寸、形状和材质等。例如,链条的建模需要考虑其长度 、宽度和纹理等细节,而挡泥板的建模则需要考虑到其尺寸、形状和安装位置等。此外,还需要为这 些部件添加纹理和材质,以使其看起来更加真实。
matlab数学建模程序代码

matlab数学建模程序代码【实用版】目录1.MATLAB 数学建模概述2.MATLAB 数学建模程序代码的基本结构3.常用的 MATLAB 数学建模函数和命令4.MATLAB 数学建模程序代码的编写流程5.MATLAB 数学建模程序代码的示例正文一、MATLAB 数学建模概述MATLAB(Matrix Laboratory)是一款强大的数学软件,广泛应用于数学建模、数据分析、可视化等领域。
通过 MATLAB,用户可以方便地进行数学计算、编写程序以及绘制图表等。
在数学建模领域,MATLAB 为研究人员和工程师提供了丰富的工具箱和函数,使得数学模型的构建、求解和分析变得更加简单高效。
二、MATLAB 数学建模程序代码的基本结构MATLAB 数学建模程序代码通常分为以下几个部分:1.导入 MATLAB 库:在建模过程中,可能需要使用 MATLAB 提供的某些库或工具箱,需要在代码开头进行导入。
2.定义变量和参数:在建模过程中,需要定义一些变量和参数,用于表示模型中的各个要素。
3.建立数学模型:根据实际问题,编写相应的数学表达式或方程,构建数学模型。
4.求解模型:通过调用 MATLAB 内置函数或使用自定义函数,对数学模型进行求解。
5.分析结果:对求解结果进行分析,提取所需的信息,例如计算均值、方差等统计量。
6.可视化结果:使用 MATLAB 绘制图表,将结果以直观的形式展示出来。
三、常用的 MATLAB 数学建模函数和命令MATLAB 提供了丰富的数学建模函数和命令,例如:1.线性规划:使用`linprog`函数求解线性规划问题。
2.非线性规划:使用`fmincon`或`fsolve`函数求解非线性规划问题。
3.优化问题:使用`optimize`函数求解优化问题。
4.数据处理:使用`mean`、`std`等函数对数据进行统计分析。
5.图表绘制:使用`plot`、`scatter`等函数绘制各种图表。
基于matlab的自行车控制稳定性仿真分析

基于matlab的自行车控制稳定性仿真分析实验报告姓名:杨荣宗学号:913110200228学院:自动化学院专业:自动化指导老师:张益军前言:在学校里,我们主要靠骑自行车和步行上课,本文介绍骑车稳定控制的简单过程仿真,人通过脚对脚蹬施加力,从而通过曲柄带动链轮的转动,链轮又通过链条带动飞轮的转动,飞轮进而后轮转动。
由于后轮与地面的摩擦力,整个车子就运动起来了。
但在校园不稳定因素有许多,一个坑洼的地方都会引起不稳定,这些不稳定随着人的运动系统调整达到原来状态.自行车行驶的稳定性控制的系统仿真自行车控制系统简单原理图自行车行驶的控制系统如上图所示。
假定z>0,p>0,则系统是开环不稳定的。
开环系统的特征方程为:s(s-1)(s+p)=s[s^2+(p-1)s-p]=0方括号内有一个参数为负,因此,开环特征方程至少有一个根位于S右半平面。
闭环系统特征方程为:s^3+(p-1)+(k-p)+Kz=0我们仿真的目的是确定K,p,z的稳定区域,使得系统能闭环稳定根据Routh判据,应有Kz>1,p>1.令b2=0,则有(p-1)(K-p)-Kz=K[(p-1)-z]-p(p-1)=0于是要求K>p(p-1)/(p-1)-Z于是分下面三种情况讨论:(1)z>p-1:由于p>1,因此只要K>0,就能满足稳定性要求。
(2)z=p-1:当0<K<∞,都不能满足稳定性要求。
(3)z<p-1:当0<K<∞,只有当K>p(p-1)/(p-1)-Z的K值符合稳定性要求。
为了寻找最合适的K值,用MATLAB进行仿真计算,用图形表示参数稳定性条件。
MATLAB文本如下%作图生成3维稳定平面%[p,z]=MESHGRID(1.0:0.2:10,0:.2:10);%提供mesh函数作图时需要的p 和z的坐标网格点k=p.*(p-1)./(p-1-z);%计算稳平面rc=size(k);r=rc(1);c=rc(2);for i=1:rfor j=1:cif abs(z(i,j)-p(i,j)+1)<1.0e-0.3k(i,j)=0;% 当z=p-1,跳过无穷大增益endif k(i,j)<0;k(i,j)=0;跳过负增益endendendM=[-50 25];mesh(k,M) 产生三维图参数K,p,z取值的三维稳定区域如图所示,一个可接受的参数稳定点是z=1,p=10,K=15.此时,自行车行驶能达到最大稳定状态。
matlab数学建模100例

matlab数学建模100例Matlab是一种强大的数学建模工具,广泛应用于科学研究、工程设计和数据分析等领域。
在这篇文章中,我们将介绍100个使用Matlab进行数学建模的例子,帮助读者更好地理解和应用这个工具。
1. 线性回归模型:使用Matlab拟合一组数据点,得到最佳拟合直线。
2. 多项式拟合:使用Matlab拟合一组数据点,得到最佳拟合多项式。
3. 非线性回归模型:使用Matlab拟合一组数据点,得到最佳拟合曲线。
4. 插值模型:使用Matlab根据已知数据点,估计未知数据点的值。
5. 数值积分:使用Matlab计算函数的定积分。
6. 微分方程求解:使用Matlab求解常微分方程。
7. 矩阵运算:使用Matlab进行矩阵的加减乘除运算。
8. 线性规划:使用Matlab求解线性规划问题。
9. 非线性规划:使用Matlab求解非线性规划问题。
10. 整数规划:使用Matlab求解整数规划问题。
11. 图论问题:使用Matlab解决图论问题,如最短路径、最小生成树等。
12. 网络流问题:使用Matlab解决网络流问题,如最大流、最小费用流等。
13. 动态规划:使用Matlab解决动态规划问题。
14. 遗传算法:使用Matlab实现遗传算法,求解优化问题。
15. 神经网络:使用Matlab实现神经网络,进行模式识别和预测等任务。
16. 支持向量机:使用Matlab实现支持向量机,进行分类和回归等任务。
17. 聚类分析:使用Matlab进行聚类分析,将数据点分成不同的类别。
18. 主成分分析:使用Matlab进行主成分分析,降低数据的维度。
19. 时间序列分析:使用Matlab进行时间序列分析,预测未来的趋势。
20. 图像处理:使用Matlab对图像进行处理,如滤波、边缘检测等。
21. 信号处理:使用Matlab对信号进行处理,如滤波、频谱分析等。
22. 控制系统设计:使用Matlab设计控制系统,如PID控制器等。
matlab建模教程

matlab建模教程Matlab是一种强大的数学建模和仿真平台,广泛应用于科学、工程和金融领域。
本教程将介绍如何使用Matlab进行建模,并详细解释每个步骤。
首先,我们需要了解什么是建模。
建模是根据实际问题或系统的特性创建数学模型的过程。
这些数学模型可以帮助我们理解系统的行为并预测未来的结果。
使用Matlab进行建模可以简化模型的创建和分析过程。
在Matlab中,我们可以使用一个称为“脚本”的文件来编写和运行建模代码。
脚本是一系列Matlab命令的集合,这些命令可以被连续执行以创建所需的模型。
为了方便起见,我们可以在Matlab编辑器中创建和编辑脚本。
建模的第一步是定义问题。
要定义问题,我们需要确定所建模型的目标、输入和输出。
例如,如果我们想建立一个温度预测模型,我们需要明确模型的输入是什么(例如,环境条件)和输出是什么(例如,预测的温度值)。
接下来,我们需要收集数据。
收集数据是为了分析和验证我们的模型。
在Matlab中,我们可以使用数据存储和处理工具,如表格和数据数组,来导入和处理数据。
一旦我们有了数据,我们就可以开始建立模型。
在Matlab中,我们可以使用数学方程、统计方法和机器学习算法等多种方法来建立模型。
例如,我们可以使用线性回归来拟合数据,或者使用神经网络进行分类。
建立模型后,我们可以使用Matlab的可视化工具来分析模型的输出。
Matlab提供了各种绘图函数,如plot和scatter,来绘制图形并展示模型的结果。
我们可以使用这些图形来比较实际数据与模型的预测结果。
最后,我们可以优化我们的模型。
通过调整模型的参数和改进算法,我们可以提高模型的性能和准确性。
在Matlab中,我们可以使用遗传算法、粒子群优化和模拟退火等算法来优化我们的模型。
在建模过程中,我们还需要注意一些常见的问题和错误。
例如,过拟合是一种常见的问题,指的是模型过度适应训练数据,导致对新数据的预测效果较差。
为了避免过拟合,我们可以使用交叉验证和正则化等技术。
Matlab中的运动规划与轨迹优化技术

Matlab中的运动规划与轨迹优化技术引言:在现代工程中,如何实现机器人和自动化设备的高效运动规划与轨迹优化成为了一个热门的研究领域。
Matlab作为一种高级的数学建模和仿真工具,为研究者和工程师们提供了许多强大的工具和技术,用于解决运动控制和轨迹优化的相关问题。
本文将介绍Matlab中一些常用的运动规划和轨迹优化技术,以及它们的应用领域和实际案例。
第一部分:运动规划基础1. 运动规划的概念与意义运动规划是指通过合理的算法和技术确定机器人或自动化设备在特定环境中的运动轨迹和关节配置,以实现特定任务。
它在工业生产、机器人导航、医疗手术等领域具有广泛的应用。
Matlab中提供了一系列用于运动规划的工具箱,包括Robotics System Toolbox和Control System Toolbox等,可以帮助工程师们实现复杂的运动规划问题。
2. 运动学建模为了实现运动规划,首先需要对机器人或自动化设备进行运动学建模。
这涉及到对机器人的几何结构和运动学参数进行建模和描述。
Matlab中提供了机器人运动学建模的功能,可以根据机器人类型和几何参数,自动生成运动学模型,为后续的轨迹规划和优化提供基础。
3. 轨迹规划算法在运动规划中,轨迹规划算法起到了关键的作用。
常用的轨迹规划算法包括插值法、最小时间规划法和动态规划法等。
插值法通过线性插值或样条插值的方法,生成平滑的轨迹。
最小时间规划法通过最小化运动时间来规划轨迹,保证在给定的约束条件下,机器人的运动最为高效。
动态规划法则是一种优化方法,通过动态规划的思想,在各种可能的运动轨迹中选择最佳的一条。
第二部分:Matlab中的应用案例1. 工业生产中的运动规划在工业生产中,运动规划和轨迹优化扮演着重要的角色,特别是在自动化装配线和机器人操作中。
通过Matlab中的运动规划工具箱,工程师们可以对机器人进行合理的运动规划,提高生产效率和质量。
例如,在汽车工厂中,通过Matlab进行路径规划和轨迹优化,可以实现机器人自动进行车身焊接和油漆等操作,提高汽车生产线的效率。
MATLAB数学建模1自行车的运动

自行车轮装饰物的运动轨迹{问题1}为了使平淡的自行车增添一份美感,同时,也为了增加自行车的安全系数,一些骑自行车的人及自行车厂家在自行车的辐条上安装一款亮丽夺目的饰物。
当有这种饰物的自行车在马路上驶过时,这种饰物就像游龙一样,对街边的行人闪过一道波浪形的轨迹。
(1)当自行车在平地上运动时。
这个轨迹是什么曲线?试画其图形。
(2)当自行车在斜坡上运动时。
这个轨迹是什么曲线?试画其图形。
(3)当自行车在一个抛物线型的拱桥上通过时。
这个轨迹是什么曲线?试画其图形。
(4)当自行车在一拱一拱的正弦曲线上通过时,这个轨迹是什么曲线?试画其图形。
[数学模型]假设路面曲线是y = f (x ),自行车在运动过程中,车轮在路面上作无滑动的滚动,与路面只有一个接触点。
车轮可当作一个半径为R 的圆,运动时与地面相切。
饰物P 离圆心的距离为r 。
如A1图所示,CP 与圆相交于A ,A 是初始接触点。
当圆滚过θ角之后,接触点移到A'处,圆从C 移到C'处,饰物从P 移到P'处。
曲线弧元为d s x x === 设A'点的坐标为(x 0,y 0),则有弧长关系0x R x θ=⎰(1) 设圆心C'的坐标为(x C ,y C ),C'在曲线的法线上,因此联立方程0001()()()C C y f x x x f x -=--' 22200()[()]C C x x f x y R -+-= 解得圆心坐标0()C f x x x R '=-(2) 0()C y f x R =+(3) 设P'的坐标为(x ,y ),则x = x C – r sin(θ - φ),y = y C + r cos(θ - φ)其中θ是圆心角,φ是法线与竖直方向的夹角,也是切线与水平方向的夹角,称为仰角。
由(1)式可得圆心角001x x R θ=⎰(4) 根据导数的定义可得仰角A1图φ = arctan[f '(x 0)] (5)饰物的轨迹方程为0()s in ()s in ()C f x x x r x R r θϕθϕ'=--=---(6a) 01c o s ()()c o s ()C y y r f x r θϕθϕ=--=+-- (6b)[解析](1)设y = 0,路面是一条直线,则f '(x ) = 0,φ = 0,θ = x 0/R ,饰物的轨迹方程为x = x 0 – r sin(x 0/R ),y = R – r cos(x 0/R ) (7a)或x = R θ – r sin θ,y = R – r cos θ (7b)当r < R 时,上式是短摆线方程;如果r = R ,上式就是典型的摆线方程。
自行车速度与里程表设计仿真代码

自行车速度与里程表设计仿真代码1. 引言自行车是一种受欢迎的交通工具,它不仅环保,而且对身体健康有益。
在自行车骑行过程中,了解自行车的速度和里程是非常重要的。
本文将探讨如何设计一个仿真代码来计算自行车的速度和里程。
2. 问题描述在设计仿真代码之前,首先需要明确问题的需求。
我们需要设计一个程序,根据用户输入的时间和轮胎周长,计算自行车的速度和里程。
3. 设计思路为了解决这个问题,我们可以采用以下设计思路:3.1. 用户输入首先,我们需要获取用户输入的时间和轮胎周长。
用户可以通过键盘输入这些信息。
3.2. 速度计算根据用户输入的时间和轮胎周长,我们可以计算自行车的速度。
速度可以通过公式速度 = 里程 / 时间来计算,其中里程可以通过轮胎周长和转数来计算。
3.3. 里程计算根据用户输入的时间和轮胎周长,我们也可以计算自行车的里程。
里程可以通过公式里程 = 速度 * 时间来计算,其中速度可以通过轮胎周长和转数来计算。
3.4. 结果输出最后,我们将计算得到的速度和里程输出给用户。
4. 代码实现下面是一个简单的Python代码示例,用于实现自行车速度和里程的计算:# 用户输入time = float(input("请输入时间(单位:小时):"))circumference = float(input("请输入轮胎周长(单位:米):"))# 速度计算speed = circumference / time# 里程计算distance = speed * time# 结果输出print("速度:", speed, "米/小时")print("里程:", distance, "米")5. 示例与测试为了验证代码的正确性,我们可以进行一些示例与测试。
下面是一些示例输入和输出的结果:示例1:输入:时间:2.5小时轮胎周长:2.1米输出:速度:0.84 米/小时里程:2.1 米示例2:输入:时间:1.8小时轮胎周长:1.5米输出:速度:0.83 米/小时里程:1.5 米6. 总结通过设计上述的仿真代码,我们可以方便地计算自行车的速度和里程。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
自行车轮装饰物的运动轨迹{问题1}为了使平淡的自行车增添一份美感,同时,也为了增加自行车的安全系数,一些骑自行车的人及自行车厂家在自行车的辐条上安装一款亮丽夺目的饰物。
当有这种饰物的自行车在马路上驶过时,这种饰物就像游龙一样,对街边的行人闪过一道波浪形的轨迹。
(1)当自行车在平地上运动时。
这个轨迹是什么曲线?试画其图形。
(2)当自行车在斜坡上运动时。
这个轨迹是什么曲线?试画其图形。
(3)当自行车在一个抛物线型的拱桥上通过时。
这个轨迹是什么曲线?试画其图形。
(4)当自行车在一拱一拱的正弦曲线上通过时,这个轨迹是什么曲线?试画其图形。
[数学模型]假设路面曲线是y = f (x ),自行车在运动过程中,车轮在路面上作无滑动的滚动,与路面只有一个接触点。
车轮可当作一个半径为R 的圆,运动时与地面相切。
饰物P 离圆心的距离为r 。
如A1图所示,CP 与圆相交于A ,A 是初始接触点。
当圆滚过θ角之后,接触点移到A'处,圆从C 移到C'处,饰物从P 移到P'处。
曲线弧元为d s x x === 设A'点的坐标为(x 0,y 0),则有弧长关系0x R x θ=⎰(1) 设圆心C'的坐标为(x C ,y C ),C'在曲线的法线上,因此联立方程0001()()()C C y f x x x f x -=--' 22200()[()]C C x x f x y R -+-= 解得圆心坐标0()C f x x x R '=-(2) 0()C y f x R =+(3) 设P'的坐标为(x ,y ),则x = x C – r sin(θ - φ),y = y C + r cos(θ - φ)其中θ是圆心角,φ是法线与竖直方向的夹角,也是切线与水平方向的夹角,称为仰角。
由(1)式可得圆心角001x x R θ=⎰(4) 根据导数的定义可得仰角A1图φ = arctan[f '(x 0)] (5)饰物的轨迹方程为0()s in ()s in ()C f x x x r x R r θϕθϕ'=--=---(6a) 01c o s ()()c o s ()C y y r f x r θϕθϕ=--=+-- (6b)[解析](1)设y = 0,路面是一条直线,则f '(x ) = 0,φ = 0,θ = x 0/R ,饰物的轨迹方程为x = x 0 – r sin(x 0/R ),y = R – r cos(x 0/R ) (7a)或x = R θ – r sin θ,y = R – r cos θ (7b)当r < R 时,上式是短摆线方程;如果r = R ,上式就是典型的摆线方程。
[算法](1)取R 为长度单位,则短摆线方程可化为x * = θ – r *sin θ,y * = 1 – r *cos θ (7*)其中x * = x /R ,y * = y /R ,r * = r /R 。
θ是自变量,r *是可调节的参数。
[图示](1)如M1_1_1a 图所示,当r < R 时,短摆线处处光滑。
如M1_1_1b 图所示,当r = R 时,摆线在x /R = 2n π处出现尖点。
如M1_1_1c 图所示,当r > R 时,即:饰物在车轮之外(例如火车车轮边缘的情况),摆线在x /R = 2n π附近出现回旋。
M1_1_1a 图 M1_1_1b 图[程序]zqy1_1_1bicycle.m%摆线的轨迹clear %清除变量r=input('请输入半径r/R:'); %键盘输入半径比th=linspace(0,2*2*pi,1000); %参数向量x=th-r*sin(th); %横坐标向量y=1-r*cos(th); %纵坐标向量figure %建立图形窗口plot([0,th(end)],[0,0]) %画横线hold on %保持图像plot(x,y) %画摆线axis equal %使坐标间隔相等grid on %加网格fs=16; %字体大小title('摆线的轨迹','FontSize',fs) %显示标题xlabel('\itx/R','FontSize',fs) %x标签ylabel('\ity/R','FontSize',fs) %y标签text(0,0,['\itr/R\rm=',num2str(r)],'FontSize',fs)%显示字符串M1_1_1c图M1_1_2图[程序]zqy1_1_2bicycle.m%摆线的轨迹族clear %清除变量r=[0.5,1,1.5]; %半径比向量th=linspace(0,2*2*pi,1000); %参数向量[R,TH]=meshgrid(r,th); %化为矩阵X=TH-R.*sin(TH); %横坐标向量Y=1-R.*cos(TH); %纵坐标向量figure %建立图形窗口plot(X,Y) %画摆线axis equal%使坐标间隔相等grid on%加网格fs=16; %字体大小title('自行车轮饰物的摆线族','FontSize',fs)%显示标题xlabel('\itx/R','FontSize',fs) %x标签ylabel('\ity/R','FontSize',fs) %y标签legend([repmat('\itr/R\rm=',length(r),1),num2str(r')])%显示图例hold on%保持图像plot([0,th(end)],[0,0]) %画横线[解析](2)设f(x) = kx,路面是一个斜坡,k是斜坡的斜率,则f '(x) = k。
设k = tanα,α是斜坡的角度,可得φ = arctan(k) = α(8)1c o sxxxR Rθα===⎰(9) 饰物的轨迹方程为x = x0–R sinα - r sin(θ–α),y = x0tanα + R cosα–r cos(θ–α) (10) 当α = 0时,斜坡变成平地,由上式可得(7)中两式。
[算法](2)取R 为长度单位,则饰物的方程可化为x * = x 0* – sin α - r *sin(θ – α),y * = x 0*tan α + cos α – r *cos(θ – α) (10*)其中x 0* = x 0/R ,y 0* = y 0/R 。
圆心角可表示为*0c o s x θα= (9*)x 0*是自变量,r *和α是可调节的参数。
[程序]zqy1_2bicycle.m%自行车沿着斜坡运动时饰物的轨迹clear %清除变量r=input('请输入相对半径r/R:'); %键盘输入相对半径alpha=input('请输入斜坡的度数alpha:'); %键盘输入角度a=alpha*pi/180; %化为弧度x0=0:0.001:20; %自变量向量y0=x0*tan(a); %坡度的纵坐标th=x0/cos(a); %参数向量x=x0-sin(a)-r*sin(th-a); %横坐标向量y=y0+cos(a)-r*cos(th-a); %纵坐标向量figure %建立图形窗口plot(x0,y0) %画斜坡hold on %保持图像plot(x,y) %画轨迹axis equal %使坐标间隔相等grid on %加网格fs=16; %字体大小title('自行车轮饰物在斜坡上的轨迹','FontSize',fs)%显示标题xlabel('\itx/R','FontSize',fs) %x 标签ylabel('\ity/R','FontSize',fs) %y 标签txt=['\itr/R\rm=',num2str(r),',\it\alpha\rm=',num2str(alpha),'\circ'];%字符串 text(0,0,txt,'FontSize',fs) %显示字符串M1_2a 图 M1_2b 图[图示](2)如M1_2a 图所示,当α > 0时,自行车上坡。
如M1_2b 图所示,当α < 0时,自行车下坡。
[解析](3)抛物线的标准方程为f (x ) = x 2/2p (11)路面是一条抛物线,p 是抛物线的准焦距。
由于f '(x ) = x /p ,因此仰角为φ = arctan(x 0/p ) (12)圆心角为0/001x x pp x y R R θ==⎰⎰根据积分公式可得0ln [2x p R p θ=+(13) 饰物的轨迹方程为0/s in ()x px x R r θϕ=---(14a) 201c o s ()2x y R r p θϕ=+--(14b) [算法](3)取R 为长度单位,则抛物线方程可化为y 0* = x 0*2/2p *(11*) 其中p * = p /R ,x 0* = x 0/R ,y 0* = y 0/R 。
饰物的方程可化为*****0/s in ()x p x x r θϕ=---(14a*) *2**0*1c o s ()2x y r p θϕ=---(14b*) 仰角为φ = arctan(x 0*/p *)(12*) 圆心角为**0*ln [2x p p θ=+(13*) x 0*是自变量,r *和p *是可调节的参数。
[程序]zqy1_3bicycle.m 如下。
%自行车沿着抛物线运动时饰物的轨迹clear %清除变量r=input('请输入相对半径r/R:'); %键盘输入相对半径p=input('请输入相对准焦距p/R:'); %键盘输入相对准焦距x0=-20:0.001:20; %自变量向量xx0=x0/p; %中间变量y0=x0.*xx0/2; %抛物线纵坐标phi=atan(x0/p); %仰角th=p*(xx0.*sqrt(1+xx0.^2)+log(xx0+sqrt(1+xx0.^2)))/2;%圆心角x=x0-xx0./sqrt(1+xx0.^2)-r*sin(th-phi);%横坐标y=y0+1./sqrt(1+xx0.^2)-r*cos(th-phi); %纵坐标figure %建立图形窗口plot(x0,y0) %画抛物线hold on %保持图像plot(x,y) %画摆线axis equal %使坐标间隔相等grid on %加网格fs=16; %字体大小title('自行车沿着抛物线运动时饰物的轨迹','FontSize',fs)%显示标题xlabel('\itx/R','FontSize',fs) %x 标签ylabel('\ity/R','FontSize',fs) %y 标签txt=['\itr/R\rm=',num2str(r),',\itp/R\rm=',num2str(p)];%参数字符串text(0,0,txt,'FontSize',fs) %显示字符串M1_3a 图 M1_3b 图M1_3c 图 M1_3d 图[图示](3)如M1_3a 图所示,当p > 0时,抛物线开口向上。