matlab 隐函数三维图问题

学习 时间:2026-04-08 23:51:57 阅读:5219
matlab 隐函数三维图问题我用的isosurface和 patch,我的程序是:function sita45[x,y,z]=meshgrid(linspace(-150,150,200),linspace(-150,150,200),linspace(-150,150,200));v=(3*x./(x+y+z)-1.13).^2+(3*y./(x+y+z)-0.75).^2+(3*z./(x+y+z)-1.13).^2+0.28-(2/3)*(log(300./abs(x+y+z))).^2;p=patch(isosurface(x,y,z,v,0));view(3)set(p,'FaceColor','blue','EdgeColor','none');camlight; lighting phong画出来是关于原点对称的,但是我只要正的那个图.约束条件应该是x+y+z>0,我就不知道应该怎样画了.而且有了这个条件以后log里面也不用加绝对值了.注意:不能直接把x,y,z的范围分别改成正的,因为我并不是只要第一象限,可以改一下试试就明白.

最佳回答

等待的紫菜

爱撒娇的白羊

2026-04-08 23:51:57

function sita45[x,y,z]=meshgrid(linspace(-150,150,200),linspace(-150,150,200),linspace(-150,150,200));v=(3*x。/(x+y+z)-1。13)。^2+(3*y。/(x+y+z)-0。75)。^2+(3*z。/(x+y+z)-1。13)。^2+0。28-(2/3)*(log(300。/abs(x+y+z)))。^2;v(x+y+z 再问: 太感谢了,还有一个问题,我还要在这个图上加两个函数: x=y=z;就是一条直线 ((x-y)。^2+(y-z)。^2+(z-x)。^2)*4。5=x+y+z;这是一个圆锥 怎样将这两个图加到原来的图上去?最好把整个程序给我,谢谢啦! P。S。能给我你的QQ吗?我不是专门做这个的,水平太菜啦,希望有其他问题还能请教你。 再答: function sita45 plot3([0 150],[0 150],[0 150],'k');hold on [x,y,z]=meshgrid(linspace(-20,150)); v=(3*x。/(x+y+z)-1。13)。^2+(3*y。/(x+y+z)-0。75)。^2+(3*z。/(x+y+z)-1。13)。^2+0。28-(2/3)*(log(300。/abs(x+y+z)))。^2; c=cat(4,v,-x-y-z);%加这句 v=max(c,[],4);%加这句 p=patch(isosurface(x,y,z,v,0)); set(p, 'FaceColor', 'blue', 'EdgeColor', 'none'); q=patch(isosurface(x,y,z,max(cat(4,((x-y)。^2+(y-z)。^2+(z-x)。^2)*4。5-x-y-z,-x-y-z),[],4),0),'FaceColor', 'r', 'EdgeColor', 'none'); camlight;lighting phong;alpha 。4;grid on

最新回答共有2条回答

  • 怡然的月光
    回复
    2026-04-08 23:51:57

    function sita45[x,y,z]=meshgrid(linspace(-150,150,200),linspace(-150,150,200),linspace(-150,150,200));v=(3*x。/(x+y+z)-1。13)。^2+(3*y。/(x+y+z)-0。75)。^2+(3*z。/(x+y+z)-1。13)。^2+0。28-(2/3)*(log(300。/abs(x+y+z)))。^2;v(x+y+z 再问: 太感谢了,还有一个问题,我还要在这个图上加两个函数: x=y=z;就是一条直线 ((x-y)。^2+(y-z)。^2+(z-x)。^2)*4。5=x+y+z;这是一个圆锥 怎样将这两个图加到原来的图上去?最好把整个程序给我,谢谢啦! P。S。能给我你的QQ吗?我不是专门做这个的,水平太菜啦,希望有其他问题还能请教你。 再答: function sita45 plot3([0 150],[0 150],[0 150],'k');hold on [x,y,z]=meshgrid(linspace(-20,150)); v=(3*x。/(x+y+z)-1。13)。^2+(3*y。/(x+y+z)-0。75)。^2+(3*z。/(x+y+z)-1。13)。^2+0。28-(2/3)*(log(300。/abs(x+y+z)))。^2; c=cat(4,v,-x-y-z);%加这句 v=max(c,[],4);%加这句 p=patch(isosurface(x,y,z,v,0)); set(p, 'FaceColor', 'blue', 'EdgeColor', 'none'); q=patch(isosurface(x,y,z,max(cat(4,((x-y)。^2+(y-z)。^2+(z-x)。^2)*4。5-x-y-z,-x-y-z),[],4),0),'FaceColor', 'r', 'EdgeColor', 'none'); camlight;lighting phong;alpha 。4;grid on

上一篇 100ML酒精度为50%的白酒,酒精量相当于多少瓶500ML酒精度为4%的啤酒?

下一篇 求边城 (沈从文)影评