2016-12-06 2 views
0

2つの曲線は3つの点で交差します。左側に1つ、中央に1つ、右側に1つ。私は3つの交点の(x、y)座標を見つける必要がありますが、それを行う方法を考えるのは難しいです。以下は、私のコードは、これまでのところで、プロット:MATLAB-以下のプロット上の2つの曲線から複数のxとyの交点を見つける方法

Click here for plot

は、ここに私のコードです:

% Define 

b1=3.5; 
b2=4.5; 
rho1=2.7; 
rho2=3.3; 
h=40; 
u2=(b2^2)*rho2; 


f1=.15; 
w1=2*pi*f1; 
cvec=3.5:.01:4.5; 
p2=1./cvec; 
lhs=tan(h*w1.*sqrt((1./b1.^2)-(p2.^2))); 
rhs=(u2.*sqrt((p2.^2)-(1./b2.^2)))./(u1.*sqrt((1./b1.^2)-(p2.^2))); 

plot(cvec,rhs,cvec,lhs) 
xlim([3.6 4.6]) 

答えて

1

あなたのコードは(u1が欠落している)実行に失敗しました。しかし、いずれにせよ、あなたはLHS-RHSを減算して、結果zero-crossing

すなわち

zci = @(v) find(v(1:end-1).*circshift(v(2:end), [-1 0]) <= 0); % Returns Zero-Crossing Indices Of Argument Vector 
zx = zci(lhs-rhs); 
cross_points = cvec(zx) 
を探すことができます
関連する問題