MATLAB编程作图? 5
%%programP.mclcsymsPzkMuaBH;a=[-1:1];k=0.5;u=sqrt(1-a.^2);Pz=4.*k.*(1-k).*BH^2.*M^2.*...
%%program P.m
clc
syms Pz k M u a BH;
a=[-1:1];
k=0.5;
u=sqrt(1-a.^2);
Pz=4.*k.*(1-k).*BH^2.*M^2.*((sqrt((1+u)/(1-u))).*atan(sqrt((1-u)/(1+u)))-(1+u)/2);
plot(a,subs(Pz(2)),'r');
最后结果出来是sym转化不了double
求解决 展开
clc
syms Pz k M u a BH;
a=[-1:1];
k=0.5;
u=sqrt(1-a.^2);
Pz=4.*k.*(1-k).*BH^2.*M^2.*((sqrt((1+u)/(1-u))).*atan(sqrt((1-u)/(1+u)))-(1+u)/2);
plot(a,subs(Pz(2)),'r');
最后结果出来是sym转化不了double
求解决 展开
展开全部
题主你的问题在于没有理解polt函数方法。用plot函数绘制图形,要求参数是double型,而不能是sym型。如何更改:
1、题主你必须已知BH、M的具体值。
2、还有 plot(a,subs(Pz(2)),'r'); 这句Pz(2)中的2是赋值给谁,不清不楚
3、如BH=1,M=0.5,则可以按照下列代码执行:
clc
M=0.5;BH=1; %syms Pz k M u a BH
a=[-1:1];
k=0.5;
u=sqrt(1-a.^2);
Pz=4.*k.*(1-k).*BH^2.*M^2.*((sqrt((1+u)/(1-u))).*atan(sqrt((1-u)/(1+u)))-(1+u)/2);
plot(a,Pz),'r'); %plot(a,subs(Pz(2)),'r');
xlabel('x');ylabel('y')
运行结果
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询