1.2 matlab与LINGO编程


函数作图

(1) 二维平面曲线作图函数

plot(x,y,’s’) 其中x和y是长度相同的向量,s表示线型和颜色 如果作多条曲线在同一图上,则用函数 plot(x1,y1,’s1’,x2,y2,’s2’,…,xn,yn,’sn’)
如将sin(x)和cos(x)同时作在一张图上,区间取[0,pi],程序如下:

x=0:0.1:2*pi; 
y1=sin(x); 
y2=cos(x); 
plot(x,y1,'r',x,y2,'b');

在这里插入图片描述

(2) 多窗口作图 将屏幕分为几个窗口分别作图 subplot(m,n,k) 表示将窗口分为 m*n个, 当前图在第k个窗口完成

x1=0:0.1:2*pi; 
y1=sin(x1); 
x2=-pi:0.1:pi; 
y2=cos(x2); 
x3=0:0.1:10; 
y3=sqrt(x3); 
x4=2:0.2:10; 
y4=log(x4); 
subplot(2,2,1); 
plot(x1,y1); 
title('y=sin(x)'); 
grid on 
subplot(2,2,2); 
plot(x2,y2); 
title('y=cos(x)'); 
grid on
为了建立模型,我们可以使用牛顿定律和运动学公式。假设网球受到重力和空气阻力,我们可以使用以下公式来计算网球在每个时间点的位置和速度: $$ \begin{aligned} \vec{F} &= m\vec{a} \\ \vec{F}_{air} &= -\frac{1}{2}\rho C_d A v^2 \hat{v} \\ \vec{F}_{gravity} &= -mg\hat{z} \\ \vec{a} &= \frac{\vec{F}_{air}+\vec{F}_{gravity}}{m} \\ \vec{v}(t+\Delta t) &= \vec{v}(t) + \vec{a}(t)\Delta t \\ \vec{r}(t+\Delta t) &= \vec{r}(t) + \vec{v}(t)\Delta t + \frac{1}{2}\vec{a}(t)\Delta t^2 \end{aligned} $$ 其中,$\vec{F}$ 是力,$m$ 是质量,$\vec{a}$ 是加速度,$\vec{v}$ 是速度,$\vec{r}$ 是位置,$\rho$ 是空气密度,$C_d$ 是空气阻力系数,$A$ 是网球的横截面积,$v$ 是速度大小,$\hat{v}$ 是速度方向单位向量,$g$ 是重力加速度,$\hat{z}$ 是竖直向下的单位向量,$\Delta t$ 是时间间隔。 现在,我们可以使用这些公式来计算网球在三维空间中的轨迹。下面是一个基本的 Lingo 代码示例,用于计算和绘制网球的轨迹: ``` -- 网球的初始位置和速度 on startMovie global x, y, z, vx, vy, vz x = 0 y = 6.4 z = 0 vx = 20 vy = -5 vz = 0 end -- 计算网球的轨迹 on enterFrame global x, y, z, vx, vy, vz local m = 0.057 -- 网球的质量 local rho = 1.2 -- 空气密度 local Cd = 0.5 -- 空气阻力系数 local A = 0.000433 -- 网球的横截面积 local g = 9.8 -- 重力加速度 local dt = 0.01 -- 时间间隔 -- 计算空气阻力和重力的合力 local v = sqrt(vx^2 + vy^2 + vz^2) local ax = -0.5*rho*Cd*A*v*vx/m local ay = -0.5*rho*Cd*A*v*vy/m - g local az = -0.5*rho*Cd*A*v*vz/m -- 计算新的速度和位置 vx = vx + ax*dt vy = vy + ay*dt vz = vz + az*dt x = x + vx*dt y = y + vy*dt z = z + vz*dt -- 绘制网球的轨迹 sprite(1).loc3D = point3d(x, y, z) end ``` 这个代码示例使用 Lingo 的 `on startMovie` 和 `on enterFrame` 事件来初始化网球的初始位置和速度,并且在每个帧中计算和绘制网球的轨迹。`sprite(1).loc3D` 属性用于设置网球的位置,使用 `point3d` 函数来指定三维坐标。在这个例子中,我们假设网球的初始位置在底线中点上方 $6.4$ 米,以 $20$ 米/秒的速度向左下方发射。 最后,这个代码示例将绘制网球的轨迹,这可以通过在 Lingo 的工具栏中选择“3D Sprite”工具并将其添加到舞台上来完成。然后,您可以单击“播放”按钮来查看网球的轨迹。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值