pembrokeshire 发表于 2008-4-4 09:18

哪位能帮忙看看这个函数怎么画?

想绘制一个分段函数的三维图象,这个函数是关于y轴对称的
我不会画三维的,只好画了个2维的,其描述如下:
f=f2(-x)   (-0.0025<x<=R0)
f=f1(-x)   (-R0<x<-0.0013)
f=0         (-0.0013=<x<=0.0013)
f=f1(x)    (0.0013<x<R0)
f=f2(x)    (R0=<x=<0.0025)
(R0为一常数)
其三维图象就是把2维的绕y轴旋转所得
以下是我写的绘制2维图象的代码:
R0=0.00186725213937;
R1=0.0013;
R2=0.0025;
um=2.2075;
um1=(R2.^2-R0.^2)/2-R0.^2*log(R2/R0);
um2=R0.^2*log(R0/R1)-(R0.^2-R1.^2)/2;
um1;
um2;
r=0.0013:0.000001:R0;
u1=um*(R0.^2*log(r/R1)-(r.^2-R1.^2)/2)/(R1.^2+R2.^2-2*R0.^2)*4;
v=R0:0.000001:0.0025;
u2=um*((R2.^2-v.^2)/2-R0.^2*log(R2./v))/(R1.^2+R2.^2-2*R0.^2)*4;
s=-R0:0.000001:-0.0013;
u3=um*(R0.^2*log(-s/R1)-((-s).^2-R1.^2)/2)/(R1.^2+R2.^2-2*R0.^2)*4;
t=-0.0025:0.000001:-R0;
u4=um*((R2.^2-(-t).^2)/2-R0.^2*log(R2./(-t)))/(R1.^2+R2.^2-2*R0.^2)*4
plot(r,u1,'b',v,u2,'b',s,u3,'b',t,u4,'b');

哪位大侠能教教我怎么画这个函数的三维图形呗,谢谢了!
(谢谢sigma665昨天的回复,但我太笨了,没理解)

sigma665 发表于 2008-4-4 09:44

你的是旋转面
首先要知道方程才行
已知某段曲线饶某轴旋转得到方程查看高数

matlab里有没有直接的命令将2维曲线旋转得到曲面我就不知道了

pembrokeshire 发表于 2008-4-4 10:16

回复 2楼 的帖子

先谢谢你啊!
方程我在2维图象的代码里已经写了:
u1=------------------------
u2=------------------------
u3=------------------------
u4=------------------------
其实u1和u2就够了,u3和u4是其绕y轴旋转所得的
我一开始的思路是能不能像2维图象那样按照分段函数画
在2维里可以与用x=-1:0.5:0,y=0:0.5:1来区分不同函数解析式的作用域
可在3维图象里不知怎样用meshgrid来完成相同的功能,而且我这个函数
在3维空间是按照环形区域(f=0那部分函数作用域为原点为圆心,0.0013为半径的园)来划分分段函数的定义域的。
也想能不能用cylinder函数来做,但看了help没太弄懂,也没画出来
向大家求助了!
页: [1]
查看完整版本: 哪位能帮忙看看这个函数怎么画?