0

3D次の3つの方程式と軸で囲まれ た領域があります。x+y<1, x>(z/(1+z))*(1-y), x>1-((1+z)*y/z). xyおよびzは および で制限され0ます1

次の matlab コードは 3D プロットを生成します。境界領域をソリッドとして表示したいと思います。どうやってするか ?

y=0:0.05:1; %v2
z=0:0.05:1; % delta
[Y,Z]= meshgrid(y,z);
X = 1-Y;
axis([0 1 0 1 0 1]);
surf(X,Y,Z);
hold on;
X = (Z./(1+Z))*(1-Y);
axis([0 1 0 1 0 1]);
surf(X,Y,Z);
X = 1-((1+Z)./Z)*Y;
axis([0 1 0 1 0 1]);
surf(X,Y,Z);

解をMatlabまたはに制限してくださいR

4

1 に答える 1

2

% 単位立方体のテッセレーションを単体複体として構築 sc = tessellatelattice({0:.1:1,0:.1:1,0:.1:1});

% x + y <= 1 となるように切り捨てて、直角三角柱を作成します。 % sc = planetruncate(sc,[.5 .5 0],-[1 1 0]);

% ポイントを抽出して、一連の非線形制約を作成します x = sc.domain(:,1); y = sc.domain(:,2); z = sc.domain(:,3); % 非線形曲面制約を作成します sc.range = [x - (z./(1+z)).*(1-y), x - (1-((1+z).*y./z)) ];

% これらの制約に違反する部分を切り捨てます % x>(z/(1+z))*(1-y) sc = isotruncate(sc,0,1,'range','above');

% x>1-((1+z)*y/z) sc = isotruncate(sc,0,2,'range','above');

% 結果のブロブをプロット plotsc(sc,'marker','none')

三角ブロブ

ご覧のとおり、これは正三角柱ですが、双曲線のような 2 つの「面」があります。

ブロブ

これは私の simplicialcomplex ツールボックスを使用します。これは私が時折配布するものですが、使用方法を習得するには少し手間がかかるため、投稿していません。ひとたび学べば、それを学ぶために努力を惜しみなく費やすならば、それは役に立つものです。

于 2013-03-28T14:29:51.813 に答える