使用matlab解下述問題

2022-12-07 03:16:31 字數 2073 閱讀 4452

1樓:

假設a追b,b追c,c追d,d追a;

以b作為參考系,那麼a就朝b方向做速度為v的勻速直線運動,顯然當他追上b時,需要走的路程是初始條件下ab的距離,即正方形邊長,設為l,時間則為l/v

求軌跡解析的方法需要解微分方程組,在matlab下可以用數值方法來做。假設正方形邊長為1,將整個過程分為1000步來實現:

1.確定初始值;

2.根據t時刻4個點的的座標,求出t+1時刻的座標

3.繪製曲線

當然這樣做存在誤差,減小誤差的方法是減小步長。

m檔案:

clear all;clc;close all;

ax=zeros(1,1000);ay=ax;% 存放四個點的軌跡座標

bx=zeros(1,1000);by=bx;

cx=zeros(1,1000);cy=cx;

dx=zeros(1,1000);dy=dx;

ax(1)=0;ay(1)=0; %初始座標

bx(1)=1;by(1)=0;

cx(1)=1;cy(1)=1;

dx(1)=0;dy(1)=1;

for t=1:999

ax(t+1)=ax(t)+0.001*(bx(t)-ax(t))/sqrt((bx(t)-ax(t))^2+(by(t)-ay(t))^2);%a向b前進了千分之一

ay(t+1)=ay(t)+0.001*(by(t)-ay(t))/sqrt((bx(t)-ax(t))^2+(by(t)-ay(t))^2);

bx(t+1)=bx(t)+0.001*(cx(t)-bx(t))/sqrt((cx(t)-bx(t))^2+(cy(t)-by(t))^2);

by(t+1)=by(t)+0.001*(cy(t)-by(t))/sqrt((cx(t)-bx(t))^2+(cy(t)-by(t))^2);

cx(t+1)=cx(t)+0.001*(dx(t)-cx(t))/sqrt((dx(t)-cx(t))^2+(dy(t)-cy(t))^2);

cy(t+1)=cy(t)+0.001*(dy(t)-cy(t))/sqrt((dx(t)-cx(t))^2+(dy(t)-cy(t))^2);

dx(t+1)=dx(t)+0.001*(ax(t)-dx(t))/sqrt((ax(t)-dx(t))^2+(ay(t)-dy(t))^2);

dy(t+1)=dy(t)+0.001*(ay(t)-dy(t))/sqrt((ax(t)-dx(t))^2+(ay(t)-dy(t))^2);

endfigure;

plot(ax,ay,bx,by,cx,cy,dx,dy);

2樓:產業投資小茶館

function zhuigan

x1=0;

y1=0;

x2=0;

y2=1;

x3=1;

y3=1;

x4=0;

y4=1;

l=0.1;

theta21 = atan2(y2-y1,x2-x1);

theta32 = atan2(y3-y2,x3-x2);

theta43 = atan2(y4-y3,x4-x3);

theta14 = atan2(y1-y4,x1-x4);

for ii=1:1:10

x1(ii+1) = x1(ii)+l*cos(theta21);

y1(ii+1) = y1(ii)+l*sin(theta21);

x2(ii+1) = x2(ii)+l*cos(theta32);

y2(ii+1) = y2(ii)+l*sin(theta32);

x3(ii+1) = x3(ii)+l*cos(theta43);

y3(ii+1) = y3(ii)+l*sin(theta43);

x4(ii+1) = x4(ii)+l*cos(theta14);

y4(ii+1) = y4(ii)+l*sin(theta14);

endt=1:11;

plot(x1(t),y1(t),'k',x2(t),y2(t),'r',x3(t),y3(t),'b',x4(t),y4(t),'g')

用單純形法求解下述線性規劃問題,用單純形法求解以下線性規劃問題

原引入鬆弛變數x4,x5,x6,將原模型轉換為最小化模型,變形為minw 100x1 200x2 st.x1 x2 x3 500 x1 x4 200 2x1 6x2 x5 1200 x1.x5 0 利用單版純型表看 可計算得minw 140000 3此時,權x 200,400 3 方法就是這樣 計算...

matlab程式設計問題,matlab程式設計問題,題目如下

提示的很清楚了啊 error using inputs must be a scalar and a square matrix.to pute elementwise power,use power instead.用冪的時候如果次數為一向量或矩陣,應當用.而單用 是不行專的。希望可屬以幫到你。m...

matlab錯誤使用datenum line 75 輸入

是在說datenum這個函式輸入值個數太少了,可能本身預設3個,你只輸入了兩個,所以出錯。建議你help datenum一下。matlab錯誤使用 feedback line 71 輸入引數的數目不足。就是當執行函式的時候,沒有提供足夠的引數。比如,如果需要計算一個數 x 的正弦值,那麼,如果不給定...