matlab题目求解

2025-06-23 08:47:15
推荐回答(2个)
回答1:

close all; clear all; clc

x = [50 50 -50 -50];y = [40 -40 -40 40];

dt = 0.02;
v = 0.5;
t=0;    %  Time
epsilon = 0.1;

d = zeros(4,1);

for i=1:4
    plot(x(i),y(i),'.','MarkerSize',8);
    hold on
end

x = [x x(1)];y = [y y(1)];

for j=1:4
    
    d(j)=sqrt((x(j+1)-x(j))^2+(y(j+1)-y(j))^2);
    d1 = sum(d);
end

k1 = 0;

XX = x;
YY = y;

while d1 > epsilon
    
    k1 = k1+1;
    
    t=t+dt;  %  Time
    
    x0 = x;
    y0 = y;
    
    for j=1:4
        
        d(j)=sqrt((x0(j+1)-x0(j))^2+(y0(j+1)-y0(j))^2);
        x(j)=x0(j)+v*dt*((x0(j+1)-x0(j))/d(j));
        y(j)=y0(j)+v*dt*((y0(j+1)-y0(j))/d(j));
        
        d1 = sum(d);
        
    end
    
    x(end) = x(1);
    y(end) = y(1);
    
    XX = [XX;x];
    YY = [YY;y];
    
end


plot(XX,YY,'.','MarkerSize',8);
axis equal
grid on

%  Time
t


回答2:

是MarkerSize,不是MakerSize,少了个r