两个方程的交集

时间:2016-12-07 15:16:54

标签: matlab debugging intersection

我有2个等式,第一个是一条线,第二个是圆形,我想绘制交点。

Y = TAN(PHI)* X (X-V)^ 2 + Y ^ 2 = R ^ 2

其中'phi'是角度[phi = linspace(pi / 30,pi / 3,100)] 我尝试这个代码,但在我想绘制后我得到了这个消息 “使用情节时出错 “Line”“

不支持非数字数据
clear all
close all
clc
N=10;
R=70;
w=40;
v=10;
K=100*10^6;
q=3/4;



%Geometria szmítások
phi=asin((R-w)/R);
teta=acos((v/2)/R);
Rx=(R+v)-(v*(phi/teta));

%Szögek felbontása x darabra
f1=linspace(phi,teta,N);
f2=linspace(phi,teta,N);
%Külső ív felbontása
sugar=linspace(Rx,R,N);

%Belső ív közelítése
x1=R*cos(f1);
y1=R*sin(f1);

syms valt
egyenlet=(valt-v)^2+(valt*tan(asin((R-w)/R)))^2-R^2==0;
S=solve(egyenlet,valt);
k=max(S)

%küls ív közelítése
x2=k;
y2=k*tan(phi);

%%%%%Geometria kirajzolása
plot(x1,y1)
hold on
plot(double(x2),double(y2))
hold on
%axis([0,100,0,100])

for k=1:(N-1)
    h(k)=sqrt(((((x2(k+1)+x2(k))/2)-((x1(k+1)+x1(k))/2))^2)+((((y2(k+1)+y2(k))/2)-((y1(k+1)+y1(k))/2))^2));
end

%terület számítása 
for j=1:(N-1)
    u=[x2(j);x2(j+1);x1(j+1);x1(j);x2(j)];
    uv=[y2(j);y2(j+1);y1(j+1);y1(j);y2(j)];
    A(j)=polyarea(u,uv);
end

%az elemi forgácsvastagság "fogásmélysége"
whullam=A./h;

%az elemi darabokhoz tartozó szögek
for n=1:(N-1)
    %xhosz(n)=((x2(n+1)+x2(n))/2)-((x1(n+1)+x1(n))/2);
    %yhosz(n)=(((y2(n+1)+y2(n))/2)-((y1(n+1)+y1(n))/2));
 beta(n)=atan((((y2(n+1)+y2(n))/2)-((y1(n+1)+y1(n))/2))/(((x2(n+1)+x2(n))/2)-((x1(n+1)+x1(n))/2)));
end

%erő meghatározása

Fx=sum(K.*h.^q.*whullam.*cos(beta));
Fy=sum(K.*h.^q.*whullam.*sin(beta));
F=[Fx;Fy];

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我开发了一个完全不同于你的代码。但它执行我从你的理解问题。你有一个圆和一条线,你想要得到两者之间的交集。我提供了以下代码。

$(e)[0].currentTime

结果将是:

result