能帮忙找找问题吗?

clc;
clear;
syms h l
XG=1/(2*3.14*50*0.014);
XL=0.26298;
x01=XL-XG;
r01=0.00827+x01;
b01=1/x01;
y=h*b01*i;
z=0.288*r01+0.138*sqrt(h*r01)+h*x01*i;
k=sqrt(z*y);
Zch=sqrt(z/y);
Z1h=Zch*tanh(k*l);
Th=cosh(k*l)-Z1h/Zch*sin(k*l);
mesh(l,h,Th)

错误使用 mesh (line 71)
Z 必须为矩阵,不能是标量或向量。

第1个回答  2020-10-23
syms不能用mesh画图,可这样改:
clc;
clear;
%syms h l
h=linspace(0,200,100);
l=linspace(0,200,100)';
XG=1/(2*3.14*50*0.014);
XL=0.26298;
x01=XL-XG;
r01=0.00827+x01;
b01=1/x01;
y=h.*b01*1i;
z=0.288*r01+0.138.*sqrt(h.*r01)+h.*x01*1i;
k=sqrt(z.*y);
Zch=sqrt(z./y);
Z1h=Zch.*tanh(k.*l);
Th=cosh(k.*l)-Z1h./Zch.*sin(k.*l);
mesh(l,h,real(Th))
第2个回答  2020-10-23

题主的代码存在着下列几个问题:

1、主要是对mesh函数的要求没能理解。mesh函数要求(X,Y,Z)为二维矩阵

2、矩阵运算应采用点运算,点运算符如点乘(.*)、点除(./)、点乘方(.^)

3、绘制三维曲面图,应按下列步骤进行,

(1)对变量l,h,确定其变化范围,如l=【0,1】,h=【0,1】,步长为0.01

(2)对变量l,h进行平面网格化,即meshgrid(l,h)

(3)计算Th,即Th=cosh(k.*l)-Z1h./Zch.*sin(k.*l),注意相关的变量Z1h,Zch,k等运算都需要用点运算符

(4)绘制图形,mesh(l,h,Th)

(5)标注坐标轴名称,xlabel('l'),ylabel('h'),zlabel('Th')

4、按上述方法,修改即可得到你所需的图形。

相似回答