You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matlab绘制质点圆周运动轨迹及速度向量的代码问题求助

圆周运动轨迹绘制问题修复

需求说明

  • 编写dibujaMUC.m函数,根据角速度ω和旋转半径r绘制质点的圆周运动轨迹,对应笛卡尔方程:
    ( x = r \cdot \cos(\omega \cdot t) ),( y = r \cdot \sin(\omega \cdot t) )
  • 使用quiver命令为轨迹各点添加速度向量,速度方程:
    ( v_x = -r\omega \cdot \sin(\omega \cdot t) ),( v_y = r\omega \cdot \cos(\omega \cdot t) )

尝试代码

第一部分(仅绘制轨迹)

function dibujaMUC(w,r)

t=1:(2*pi)/(w);
y=r.*sin(w.*t);
x=r.*cos(w*t);
plot(x,y)

>> dibujaMUC(0.1,2)

第二部分(添加速度向量)

function dibujaMUC(w,r)

t=1:(2*pi)/(w);
y=r.*sin(w.*t);
x=r.*cos(w*t);
plot(x,y)
hold on
vx=-r.*w.*sin(w.*t);
vy=r.*w.*cos(w.*t);
quiver(vx,vy)

>> dibujaMUC(0.1,2)

问题点

  • 圆周轨迹无法完全闭合
  • 速度向量显示异常(起点未对应轨迹质点位置,不符合物理预期)

修复方案

1. 轨迹不闭合的原因与修复

原代码中t的取值逻辑错误:

  • 起始点从1开始,漏掉了t=0的初始位置
  • 用(2*pi)/w作为步长,会导致采样点数量极少且无法覆盖完整周期

修改为用linspace生成均匀采样点,保证覆盖完整运动周期:

t = linspace(0, 2*pi/w, 100); % 100个采样点可保证轨迹平滑闭合

2. 速度向量异常的原因与修复

quiver函数的正确调用格式是quiver(x,y,u,v),其中x,y是向量起点坐标,u,v是向量分量。原代码只传入vx,vy,导致所有向量起点默认在原点附近。

修正后调用方式:

quiver(x, y, vx, vy, 0.5); % 0.5是向量缩放比例,可按需调整

完整修复代码

function dibujaMUC(w,r)
    % 生成覆盖完整周期的时间采样点
    t = linspace(0, 2*pi/w, 100);
    % 计算轨迹坐标
    x = r .* cos(w .* t);
    y = r .* sin(w .* t);
    % 绘制轨迹
    plot(x, y, 'LineWidth', 1.5);
    hold on;
    % 计算速度向量分量
    vx = -r .* w .* sin(w .* t);
    vy = r .* w .* cos(w .* t);
    % 绘制速度向量(起点为轨迹对应点,缩放比例0.5)
    quiver(x, y, vx, vy, 0.5, 'Color', 'r');
    % 设置坐标轴等比例,避免圆变形
    axis equal;
    xlabel('x 坐标');
    ylabel('y 坐标');
    title('圆周运动轨迹及速度向量');
    hold off;
end

额外优化说明

  • axis equal确保坐标轴比例一致,圆周不会被拉伸变形
  • 增加线条宽度和向量颜色,提升可视化清晰度
  • 采样点数量设为100,平衡轨迹平滑度与计算效率

内容的提问来源于stack exchange,提问作者Acedium 20

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 21:35:21