matlab跳出输入参数框,出现这种情况怎么输入参数

function BCG_3D_(X,Y,Z,dx,dy,dz,K2,Omega,p_r,p_i,b,gamma,alpha_,c,errorCG,error_tolerance)

global Psi;

R=p_r*(cos(Omega*X)+cos(Omega*Y))+1i*p_i*(sin(Omega*X)+sin(Omega*Y));    %Omega=Ω

% R=1./(1+(X.^2+Y.^2+Z.^2).^3);

K22=sqrt(K2+(K2==0).*1e-9);

exp1=2/3*pi^2./K22.*(sqrt(3).*exp(K22./2).*sin(K22*sqrt(3)/2)-exp(K22/2).*cos(K22*sqrt(3)/2)+1).*exp(-K22);

u1=real(Psi);u2=imag(Psi);Uerror=1;

ncg=0; nnt=0;

while 1

UU=sum(sum(sum(abs(u1).^2+abs(u2).^2)))*dx*dy*dz;

nnt=nnt+1;

L0u=0.5*ifftn(K2.*fftn(u1))-real(R).*u1+imag(R).*u2-gamma*(abs(u1).^2+abs(u2).^2).*u1+b*u1-alpha_*ifftn(exp1.*fftn((abs(u1).^2+abs(u2).^2))).*u1;

L0v=0.5*ifftn(K2.*fftn(u2))-real(R).*u2-imag(R).*u1-gamma*(abs(u1).^2+abs(u2).^2).*u2+b*u2-alpha_*ifftn(exp1.*fftn((abs(u1).^2+abs(u2).^2))).*u2;

Uerror=max(max(max(abs(L0u)+abs(L0v))));Du=0*X;Dv=Du;

if Uerror

break

end

MinvL0u=ifftn(fftn(L0u)./(0.5*K2+c));

MinvL0v=ifftn(fftn(L0v)./(0.5*K2+c));

Ru=-L0u; MinvRu=ifftn(fftn(Ru)./(0.5*K2+c));gRu=Ru;

Rv=-L0v; MinvRv=ifftn(fftn(Rv)./(0.5*K2+c));gRv=Rv;

R2=sum(sum(sum(gRu.*MinvRu+gRv.*MinvRv))); R20=R2;

Du_=MinvRu;Dv_=MinvRv;gDu_=Du_;gDv_=Dv_;

display(['b:' num2str(b)  ' nnt' num2str(nnt) ' ncg:' num2str(ncg) ' error:'  num2str(Uerror) '  U:' num2str(UU)  ' R20:' num2str(R20)   ] );

while (abs(R2)> abs(R20)*errorCG^2)

T1=Du_;

T2=Dv_;

F11= 0.5*ifftn(K2.*fftn(T1))-(real(R)+gamma*(3*u1.^2+u2.^2)-b).*T1-alpha_*ifftn(exp1.*fftn(u1.^2+u2.^2)).*T1-alpha_*2*ifftn(exp1.*fftn(u1.*T1)).*u1;

F12= (imag(R)-gamma*2*u1.*u2).*T2-alpha_*2*ifftn(exp1.*fftn(u2.*T2)).*u1;

F21= -(imag(R)+gamma*2*u1.*u2).*T1-alpha_*2*ifftn(exp1.*fftn(u1.*T1)).*u2;

F22= 0.5*ifftn(K2.*fftn(T2))-(real(R)+gamma*(3*u2.^2+u1.^2)-b).*T2-alpha_*ifftn(exp1.*fftn(u1.^2+u2.^2)).*T2-alpha_*2*ifftn(exp1.*fftn(u2.*T2)).*u2;

L1Du=F11+F12;L1Dv=F21+F22;

T1=gDu_;

T2=gDv_;

F11= 0.5*ifftn(K2.*fftn(T1))-(real(R)+gamma*(3*u1.^2+u2.^2)-b).*T1-alpha_*ifftn(exp1.*fftn(u1.^2+u2.^2)).*T1-alpha_*2*ifftn(exp1.*fftn(u1.*T1)).*u1;

F12= -(imag(R)+gamma*2*u1.*u2).*T2-alpha_*2*ifftn(exp1.*fftn(u2.*T2)).*u1;

F21= (imag(R)-gamma*2*u1.*u2).*T1-alpha_*2*ifftn(exp1.*fftn(u1.*T1)).*u2;

F22= 0.5*ifftn(K2.*fftn(T2))-(real(R)+gamma*(3*u2.^2+u1.^2)-b).*T2-alpha_*ifftn(exp1.*fftn(u1.^2+u2.^2)).*T2-alpha_*2*ifftn(exp1.*fftn(u2.*T2)).*u2;

gL1Du=F11+F12;gL1Dv=F21+F22;

a=R2/sum(sum(sum(gDu_.*L1Du+gDv_.*L1Dv)));

Du=Du+a*Du_;Dv=Dv+a*Dv_;

Ru=Ru-a*L1Du;Rv=Rv-a*L1Dv;

gRu=gRu-a*gL1Du;gRv=gRv-a*gL1Dv;

MinvRu=ifftn(fftn(Ru)./(0.5*K2+c));MinvRv=ifftn(fftn(Rv)./(0.5*K2+c));

gMinvRu=ifftn(fftn(gRu)./(0.5*K2+c));gMinvRv=ifftn(fftn(gRv)./(0.5*K2+c));

R2old=R2;

R2=sum(sum(sum(gRu.*MinvRu+gRv.*MinvRv)));

bb=R2/R2old;

Du_=MinvRu+bb*Du_;Dv_=MinvRv+bb*Dv_;

gDu_=gMinvRu+bb*gDu_;gDv_=gMinvRv+bb*gDv_;

ncg=ncg+1;

display(['b:' num2str(b)  ' nnt' num2str(nnt) ' ncg:' num2str(ncg) ' error:'  num2str(Uerror) '  U:' num2str(UU)  ' R2:' num2str(R2)   ] );

end

u1=u1+Du;u2=u2+Dv;

Psi=u1+u2*1i;

end

end

那这个程序的参数也是这样输入吗?还有这个程序是什么意思啊

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值