作业帮 > 数学 > 作业

Matlab中出现了Matrix must be square.

来源:学生作业帮 编辑:作业帮 分类:数学作业 时间:2024/05/17 08:12:34
Matlab中出现了Matrix must be square.
>> syms x y z X Y
x=-5:0.1:5; y=x;
[X,Y]=meshgrid(x,y);
x^2.*z^3+9.*y^2.*z^3/80==(x^2+9.*y^2/4+z^2-1)^3;
surf(X,Y,z)
Error using ==> mpower
Matrix must be square.
这个是什么问题?系统把x y z X Y当成了矩阵?
新手希望老鸟多教教.
x^2.*z^3+9.*y^2.*z^3/80==(x^2+9.*y^2/4+z^2-1)^3;
x^2默认是矩阵乘法,而你需要的是对应元素相乘,应该是x.^2
另外,这一句还有其他问题,应该给出的是z的显示表达式,并且应该用X和Y,而不是x,y
再问:
再答: surf要输入网格化的数据啊,你的x,y只是一维的,用你代码中的X,Y
z有显示表达式么?
再问: 要不然你帮我写个x.^2.*z^3+9.*y.^2.*z.^3/80==(x.^2+9.*y.^2/4+z.^2-1)^3;的曲线图像吧,万分感激啊。。
再答: x.^2.*z^3+9.*y.^2.*z.^3/80==(x.^2+9.*y.^2/4+z.^2-1)^3什么意思,x.^2.*z^3+9.*y.^2.*z.^3/80 = 0 和 (x.^2+9.*y.^2/4+z.^2-1)^3 = 0的交线?你把数学问题描述一下
再问: x²z³+9y²z³/80=(x²+9y²/4+z²-1)³

自己画这个的图像
再答: 直接点不就完了么,[x,y,z]=meshgrid(linspace(-5,5,100));
f = x.^2.*z.^3+9*y.^2.*z.^3/80-(x.^2+9*y.^2/4+z.^2-1).^3;
isosurface(x,y,z,f,0);话说这是画个屁股么?