作业帮 > 综合 > 作业

求问matlab大神,这个function为什么错了?

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/04/30 01:46:28
求问matlab大神,这个function为什么错了?
%解大型晶体方程组
c0=46;
Xeff_3=5.5e-3;
b0=11.4e6;
a=zeros(100,100);
a(50,50)=1;
options = odeset('RelTol',1e-4,'AbsTol',[1e-4 1e-4 1e-5]);
[Z,a] = ode45(@rigid,[0 12],a,options);
function da = rigid(z,a)
da = zeros(100,100); % a column vector
for m=2:99
for n=2:99
da(m,n) = ii*((b0+Xeff_3*a(m,n).^2)*a(m,n)+c0*(a(m,n+1)+a(m+1,n)+a(m,n-1)+a(m-1,n)+a(m+1,n+1)+a(m-1,n-1)));
end
end
end
function da = rigid(z,a) 这个函数里 da(m,n) = ii*((b0+Xeff_3*a(m,n).^2)*a(m,n)+c0*(a(m,n+1)+a(m+1,n)+a(m,n-1)+a(m-1,n)+a(m+1,n+1)+a(m-1,n-1)))有问题,ii,b0,Xeff_3应作为参数传入,还有那个ii要赋初值. 我用的是matlab 2007b,不知道你的什么版本,建议改写成function da = rigid(z,a,ii,b0,Xeff_3).希望对你有帮助!