MATLAB中一个方程式中我定义了两个变量,为什么画出来的是空间曲线而不是空间曲面啊?Z=13;w=

发布时间:2021-02-25 03:56:24

MATLAB中一个方程式中我定义了两个变量,为什么画出来的是空间曲线而不是空间曲面啊?Z=13;w=10.*pi;B=pi./4;M=1.863;K=0.4367;e=1.75;la=(Z.*e./K).*sqrt(1+K.^2-2.*K.*cos(ta));ua=la.*w.*(2./Z);na=2.2.*M.*10.^3.*((sin(ta)./(sqrt(1+K.^2-2.*K.*cos(t

网友回答

如果要画空间曲面可以尝试使用meshgrid / mesh
不过不知道为什么直接改你的程序算出来Rxta里会有复数
而且虚数部分很小,感觉像误差,所以我就用real取了个实数部分
 
代码如下:close;clear;clc;
[ta, r] = meshgrid(0:pi/10:pi, 0:0.3:3);
Z=13; 
w=10.*pi;
B=pi./4;
M=1.863;
K=0.4367;
e=1.75;
la=(Z.*e./K).*sqrt(1+K.^2-2.*K.*cos(ta));
ua=la.*w.*(2./Z);
na=2.2.*M.*10.^3.*((sin(ta)./(sqrt(1+K.^2-2.*K.*cos(ta)))).^(3./2))./(e.*Z.*(Z+1).*cos(B));
pa=Z.*(e./K).*cos(B).*((1+K.^2-2.*K.*cos(ta)).^(3./2))./(1-K.^2.*Z-K.*(Z-1).*cos(ta))-r.*cos(B).^2;
E=206.*10.^9./1.82;
Etba=1.0003+0.5968.*(pa./(pa+r));
ktba=1.0339.*((1+r./pa).^(0.636));
kxta=(2.*Etba.*ktba.^2./pi).^(1./3);
kyta=(2.*Etba./(ktba.^2.*pi)).^(1./3);
Rxta=(2.*Etba.*ktba.^2./pi).^(1./3).*((3.*na./((4./r+2./pa).*E)).^(1./3));
mesh(ta, r, real(Rxta));
 
结果如图: MATLAB中一个方程式中我定义了两个变量,为什么画出来的是空间曲线而不是空间曲面啊?Z=13;w=10.*pi;B=pi./4;M=1.863;K=0.4367;e=1.75;la=(Z.*e./K).*sqrt(1+K.^2-2.*K.*cos(ta));ua=la.*w.*(2./Z);na=2.2.*M.*10.^3.*((sin(ta)./(sqrt(1+K.^2-2.*K.*cos(t(图1)
以上问题属网友观点,不代表本站立场,仅供参考!