matlab标量的矩阵次幂,matlab计算时报错错误使用 ^ 用于对矩阵求幂的维度不正确。请检查并确保矩阵为方阵并且幂为标量。要执行按元素矩阵求幂,请使用 '.^'...

matlab报错:错误使用  ^ 用于对矩阵求幂的维度不正确。请检查并确保矩阵为方阵并且幂为标量。要执行按元素矩阵求幂,请使用 '.^'

源代码是:

if t1==2 %x轴为Db

for i=1:100

Db=0.01+0.0002*i;

syms y x        %y=ubv  x=cdv

if rhob>rhol

%默认第一个条件

[x, y]=solve(x==24/129*abs(y-ulv)*196.848*39.3701*Db*rhol/1000/mu,y==sqrt(2*m*g*(1-rhol/rhob)/x/A/rhol)+ulv);

x=vpa(x(1),5);

y=vpa(y(1),5);

Re=129*abs(y-ulv)*196.848*39.3701*Db*rhol/1000/mu;

if Re>0.1 && Re<1000      %第二个

syms y x

[x, y]=solve(x==24/Re*(1+0.14*Re^0.7),y==sqrt(2*m*g*(1-rhol/rhob)/x/A/rhol)+ulv);

x=vpa(x(1),5);

y=vpa(y(1),5);

Re=129*abs(y-ulv)*196.848*39.3701*Db*rhol/1000/mu;

elseif Re>=1000 && Re<=35000    %第三个

syms y x

[x, y]=solve(x==0.445,y==sqrt(2*m*g*(1-rhol/rhob)/x/A/rhol)+ulv);

x=vpa(x(1),5);

y=vpa(y(1),5);

Re=129*abs(y-ulv)*196.848*39.3701*Db*rhol/1000/mu;

elseif  Re>=35000 && Re<2.9*10^5   %第四个

syms y x

[x, y]=solve(x==24/Re*(1+0.1806*Re^0.6459)+0.4251/(1+6880.95*Re^(-1)),y==sqrt(2*m*g*(1-rhol/rhob)/x/A/rhol)+ulv);

x=vpa(x(1),5);

y=vpa(y(1),5);

Re=129*abs(y-ulv)*196.848*39.3701*Db*rhol/1000/mu;

elseif Re>=2.9*10^5 && Re<=3.85*10^5      %第五个

syms y x

[x, y]=solve(x==-4.16*10^(-6)*Re+1.67,y==sqrt(2*m*g*(1-rhol/rhob)/x/A/rhol)+ulv);

x=vpa(x(1),5);

y=vpa(y(1),5);

Re=129*abs(y-ulv)*196.848*39.3701*Db*rhol/1000/mu;

elseif  Re>=3.85*10^5 && Re<=1*10^6   %第六个

syms y x

[x, y]=solve(x==7.45*10^(-8)*Re+0.0385,y==sqrt(2*m*g*(1-rhol/rhob)/x/A/rhol)+ulv);

x=vpa(x(1),5);

y=vpa(y(1),5);

Re=129*abs(y-ulv)*196.848*39.3701*Db*rhol/1000/mu;

elseif  Re>1*10^6                     %第七个

syms y x

[x, y]=solve(x==0.19-8*10^4/Re,y==sqrt(2*m*g*(1-rhol/rhob)/x/A/rhol)+ulv);

x=vpa(x(1),5);

y=vpa(y(1),5);

Re=129*abs(y-ulv)*196.848*39.3701*Db*rhol/1000/mu;

end

else

%默认第一个条件

[x, y]=solve(x==24/129*abs(y-ulv)*196.848*39.3701*Db*rhol/1000/mu,y==sqrt(-2*m*g*(1-rhol/rhob)/x/A/rhol)+ulv);

x=vpa(x(1),5);

y=vpa(y(1),5);

Re=129*abs(y-ulv)*196.848*39.3701*Db*rhol/1000/mu;

if Re>0.1 && Re<1000      %第二个

syms y x

[x, y]=solve(x==24/Re*(1+0.14*Re^0.7),y==sqrt(-2*m*g*(1-rhol/rhob)/x/A/rhol)+ulv);

x=vpa(x(1),5);

y=vpa(y(1),5);

Re=129*abs(y-ulv)*196.848*39.3701*Db*rhol/1000/mu;

elseif Re>=1000 && Re<=35000    %第三个

syms y x

[x, y]=solve(x==0.445,y==sqrt(-2*m*g*(1-rhol/rhob)/x/A/rhol)+ulv);

x=vpa(x(1),5);

y=vpa(y(1),5);

Re=129*abs(y-ulv)*196.848*39.3701*Db*rhol/1000/mu;

elseif  Re>=35000 && Re<2.9*10^5   %第四个

syms y x

[x, y]=solve(x==24/Re*(1+0.1806*Re^0.6459)+0.4251/(1+6880.95*Re^(-1)),y==sqrt(-2*m*g*(1-rhol/rhob)/x/A/rhol)+ulv);

x=vpa(x(1),5);

y=vpa(y(1),5);

Re=129*abs(y-ulv)*196.848*39.3701*Db*rhol/1000/mu;

elseif Re>=2.9*10^5 && Re<=3.85*10^5      %第五个

syms y x

[x, y]=solve(x==-4.16*10^(-6)*Re+1.67,y==sqrt(-2*m*g*(1-rhol/rhob)/x/A/rhol)+ulv);

x=vpa(x(1),5);

y=vpa(y(1),5);

Re=129*abs(y-ulv)*196.848*39.3701*Db*rhol/1000/mu;

elseif  Re>=3.85*10^5 && Re<=1*10^6   %第六个

syms y x

[x, y]=solve(x==7.45*10^(-8)*Re+0.0385,y==sqrt(-2*m*g*(1-rhol/rhob)/x/A/rhol)+ulv);

x=vpa(x(1),5);

y=vpa(y(1),5);

Re=129*abs(y-ulv)*196.848*39.3701*Db*rhol/1000/mu;

elseif  Re>1*10^6                     %第七个

syms y x

[x, y]=solve(x==0.19-8*10^4/Re,y==sqrt(-2*m*g*(1-rhol/rhob)/x/A/rhol)+ulv);

x=vpa(x(1),5);

y=vpa(y(1),5);

Re=129*abs(y-ulv)*196.848*39.3701*Db*rhol/1000/mu;

end

end

Nre(i)=double(Re);

ubv(i)=double(y);

Cdv(i)=double(x);

db(i,1)=Db;

FI(i)=(0.4536*0.3048)*3.78*10^(-4)*rhob/1000*(39.3701)^3*Db^3*(196.848*ubv)^2/39.3701/Dc; %N  %惯性力

Fd(i)=(0.4536*0.3048)*1.18*10^(-5)*Cdv*rhol/1000*(39.3701*Db)^2*Vperf^2;  %拖拽力 N

Fu(i)=0.3927*Cdv*rhol*Vl^2*(Db^2-Db^2*theta(i)/180+(Dp/pi)*(Db^2-Dp^2)^(1/2)); %脱落力N

Fh(i)=Dp/sqrt(Db^2-Dp^2)*(1.76*10^(-4)*Dp^2*rhol*Q^2*(1.062/n^2/Dp^4/alpha^2-1/Dc^4));

view=strcat('已经到计算Db=',num2str(Db));

disp(view);

end

axes(handles.axes1) ;

plot(db,FI,'b','linewidth',3);

hold on

plot(db,Fd,'r','linewidth',3);

hold on

plot(db,Fu,'g','linewidth',3);

hold on

plot(db,Fh,'y','linewidth',3);

legend('惯性力','拖拽力','脱落力','保持力','Location','Northeast');

grid on

xlabel('封堵球直径(m)');

ylabel('合力 N');

end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值