matlab 怎么画两个曲面的交线。

一个曲面是椭球::x.^2/4+y.^2/4+z.^2/4-x=0另一个是平面:(307620*x)/2908093+(10070*y)/28793+671042474/... 一个曲面是椭球:
:x.^2/4+y.^2/4+z.^2/4-x=0
另一个是平面:
(307620*x)/2908093 + (10070*y)/28793 + 671042474/363511625
请问,matlab程序怎么写?
展开
 我来答
dukinkin
2014-11-26 · TA获得超过1.3万个赞
知道大有可为答主
回答量:2444
采纳率:90%
帮助的人:895万
展开全部
d=0.05;
[x,y,z]=meshgrid(0:d:4,-2:d:2,-2:d:3);
v=x.^2/4+y.^2/4+z.^2/4-x;
p=isosurface(x,y,z,v,0);

fz=@(x,y) (307620*x)/2908093 + (10070*y)/28793 + 671042474/363511625;
[xx yy]=meshgrid(0:d:4,-2:d:2);
zz=fz(xx,yy);

f=@(x,y) x.^2/4+y.^2/4+(fz(x,y)).^2/4-x;
c=contours(xx,yy,f(xx,yy),[0 0]);
xxx=c(1,2:end);yyy=c(2,2:end);
zzz=fz(xxx,yyy);

mesh(xx,yy,zz,'edgecolor','none','facecolor','r','facealpha',0.3);hold on
patch(p,'edgecolor','none','facecolor','b','facealpha',0.3);
plot3(xxx,yyy,zzz,'k','linewidth',1);hold off
axis equal;


追问
请问如果用contourslice该怎么写?
追答
d=0.05;
[x,y,z]=meshgrid(0:d:4,-2:d:2,-2:d:3);
v=x.^2/4+y.^2/4+z.^2/4-x;
p=isosurface(x,y,z,v,0);

[xx yy]=meshgrid(0:d:4,-2:d:2);
zz=(307620*x)/2908093 + (10070*y)/28793 + 671042474/363511625;

mesh(xx,yy,zz,'edgecolor','none','facecolor','r','facealpha',0.3);hold on
patch(p,'edgecolor','none','facecolor','b','facealpha',0.3);
contourslice(x,y,z,v,xx,yy,zz,[0 0]);hold off
axis equal;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式