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)./(sqr
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/24 21:05:31
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)./(sqr
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(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));
想画以ta和r为变量,以Rxta为函数的曲面图.
ta的范围是0到pi,r的范围是0到3.
谢谢了
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)./(sqr
如果要画空间曲面可以尝试使用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));
结果如图: