-1
私は2つの方程式を持っています。最初は線、2番目は円、私は交点をプロットしたいと思います。2つの方程式の交点
Y =黄褐色(PHI)* X (XV)^ 2 + y^2 = R^2
'PHI' は角、φ= linspace(PI/30、PI/3,100)であります] 私はこのコードを試してみたが、私はプロットしたい後、私は助けを
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];
感謝「『ライン』でプロットを使用してエラーが 非数値データがサポートされていません」 がこのメッセージを持って!
あなたはおそらく、プロットする前に 'double'(彼らが象徴されている)として' x2'と 'y2'をキャストする必要があります:'プロット(ダブル( x2)、double(y2)) ' – Suever
私はそれを試して、今このエラーを受け取ります インデックスが行列の次元を超えています。 sym/subsref(行805)のエラー R_tilde =組み込み( 'subsref'、L_tilde、Idx); – knightom
問題を引き起こしている行は何ですか。また、コードを更新して実行できるようにしてください。多くの変数宣言がありません – Suever