mathematica画三维曲面

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mathematica画三维曲面相关的知识,希望对你有一定的参考价值。

mathematica5如何画二次曲面呀???说详细点
还是我自己回答好了,用ContourPLot3D[f[x,y,z]==a,x,x1,x2,y,y1,y2,z,z1,z2]就可以绘制三维隐函数了。如ContourPlot3D[
x^2 + y^2 + z^2 == 1, x, -1, 1, y, -1, 1, z, -1, 1]可以画一个球

参考技术A 使用Plot3D这个语句,简单的语法为:
Plot3D[f(x,y),x,x1,x2,y,y1,y2],其中f(x,y)为二元函数,x1、x2和y1、y2分别为x,y两个变量的上下限
例如你想在x[-2,2]和y[-2,2]这个区间内画x^2+y^2这个曲面
那么就应该为:
Plot3D[x^2+y^2,x,-2,2,y,-2,2]

注意单词大小写,mathematica对语法要求很严格的
Plot3D还有很多附加选项,例如Mesh,如果想把上面三维图像的网格去除掉,可以这样写
Plot3D[x^2+y^2,x,-2,2,y,-2,2,Mesh -> None]

建议楼主使用Mathematica 6以上的版本,5版本实在比较老,并多看看Documentation Center ,很有帮助的。
如果不喜欢Documentation Center英文的界面可以上网看看Mathematica的资料中心,最近汉化的很不错的:
http://reference.wolfram.com/mathematica/guide/Mathematica.html
参考技术B 我经常用的是以下函数:

Plot3D:用于显式曲线:z=f(x,y)
CountorPlot3D:用于隐函数的绘制
ParametricPlot3D:用于绘制参数曲线

具体用法的话参照Mathematica的帮助文档,其实他本身的文档就介绍得很详细了,不需要看其他书籍,不过这东西主要还是自己折腾,说不了太多,哈哈
参考技术C matlab很容易,我以前用mathematica,现在完全转到matlab了,建议用matlab,随便一个网上教程上都有

常见的使用水平集函数的零水平集表示的曲面汇总(3D)(MATLAB 画三维图)

常见的使用水平集函数的零水平集表示的曲面汇总(3D)

感谢周同学和张师兄的公式提供。

Donut甜甜圈

水平集函数:
ϕ ( x , y , z ) = ( x 2 + y 2 − 0.6 ) 2 + z 2 − 0.09 \\phi(x, y, z)=\\left(\\sqrt{x^{2}+y^{2}}-0.6\\right)^{2}+z^{2}-0.09 ϕ(x,y,z)=(x2+y2 0.6)2+z20.09

c 代码:

sqrt(pow(sqrt(x*x+y*y)-1.0,2.0)+z*z)-3.0/5.0;

Atom原子

水平集函数:
ϕ ( x , y , z ) = ( ( 2.5 ( x − 0.0 ) ) 2 + ( 4.2 ( y − 0.0 ) ) 2 + ( 2.5 ( z − 0.0 ) ) 2 + 0.9 ) 2 − 64 ( y − 0.5 ) 2 − 1.3 \\phi(x, y, z)=\\left((2.5(x-0.0))^{2}+(4.2(y-0.0))^{2}+(2.5(z-0.0))^{2}+0.9\\right)^{2}-64(y-0.5)^{2}-1.3 ϕ(x,y,z)=((2.5(x0.0))2+(4.2(y0.0))2+(2.5(z0.0))2+0.9)264(y0.5)21.3

c 代码:

pow((x*x)*(2.5E+1/4.0)+(y*y)*(4.41E+2/2.5E+1)+(z*z)*(2.5E+1/4.0)+9.0/1.0E+1,2.0)-(y*y)*6.4E+1-1.3E+1/1.0E+1;

Popcorn爆米花

水平集函数:
ϕ ( x , y , z ) = x 2 + y 2 + z 2 − r 0 − ∑ k = 0 11 A e − ( ( x − x k ) 2 + ( y − y k ) 2 + ( z − z k ) 2 ) / σ 2 \\phi(x, y, z)=\\sqrt{x^{2}+y^{2}+z^{2}}-r_{0}-\\sum_{k=0}^{11} A e^{-\\left(\\left(x-x_{k}\\right)^{2}+\\left(y-y_{k}\\right)^{2}+\\left(z-z_{k}\\right)^{2}\\right) / \\sigma^{2}} ϕ(x,y,z)=x2+y2+z2 r0k=011Ae((xxk)2+(yyk)2+(zzk)2)/σ2
其中,

r 0 = 0.6 , A = 2 , σ = 0.2 r_{0}=0.6, A=2, \\sigma=0.2 r0=0.6,A=2,σ=0.2

( x k , y k , z k ) = r 0 5 ( 2 cos ⁡ ( 2 k π 5 ) , 2 sin ⁡ ( 2 k π 5 ) , 1 ) , 0 ≤ k ≤ 1 ( x k , y k , z k ) = r 0 5 ( 2 cos ⁡ ( ( 2 ( k − 5 ) − 1 ) π 5 ) , 2 sin ⁡ ( ( 2 ( k − 5 ) − 1 ) π 5 ) , − 1 ) , 5 ≤ k ≤ 9 ( x 10 , y 10 , z 10 ) = ( 0 , 0 , r 0 ) ( x 11 , y 11 , z 11 ) = ( 0 , 0 , − r 0 ) \\begin{aligned} &\\left(x_{k}, y_{k}, z_{k}\\right)=\\frac{r_{0}}{\\sqrt{5}}\\left(2 \\cos \\left(\\frac{2 k \\pi}{5}\\right), 2 \\sin \\left(\\frac{2 k \\pi}{5}\\right), 1\\right), 0 \\leq k \\leq 1 \\\\ &\\left(x_{k}, y_{k}, z_{k}\\right)=\\frac{r_{0}}{\\sqrt{5}}\\left(2 \\cos \\left(\\frac{(2(k-5)-1) \\pi}{5}\\right), 2 \\sin \\left(\\frac{(2(k-5)-1) \\pi}{5}\\right),-1\\right), 5 \\leq k \\leq 9 \\\\ &\\left(x_{10}, y_{10}, z_{10}\\right)=\\left(0,0, r_{0}\\right) \\\\ &\\left(x_{11}, y_{11}, z_{11}\\right)=\\left(0,0,-r_{0}\\right) \\end{aligned} (xk,yk,zk)=5 r0(2cos(52kπ),2sin(52kπ),1),0k1(xk,yk,zk)=5 r0(2cos(5(2(k5)1)π),2sin(5(2(k5)1)π),1),5k9(x我用mathematica画三维图像,为啥输出结果是这个呢?

如何在Mathematica 软件中画出一个三维向量的3D 图像,是否用这个函数ListVectorFieldPlot3D ,怎么画的

python用matpiotilb画三维曲面图

origin三维图数据过少,曲面不圆滑,如何处理可以使曲面圆滑。拟合、差值等,不能改变原来的走势

常见的使用水平集函数的零水平集表示的曲面汇总(3D)(MATLAB 画三维图)

常见的使用水平集函数的零水平集表示的曲面汇总(3D)(MATLAB 画三维图)