在MATLAB中使用integral2的错误

时间:2016-02-23 08:22:10

标签: matlab integration

两天前我问过这个问题。现在我重新推导出公式并编写新代码。但是在使用integral2时我仍然遇到同样的错误。

clear
clc
% parameter settings
syms KI c r phi
KId = 0.000005;
G = 76.0;
nu = 0.31;
Vh = 2;
NA = 6.02214129*10^23;
b = 3.52*sqrt(6)/6;
A0 = G*b^2*(2-nu)/(8*pi*(1-nu));
lambda = 2;
m = 2.2;
kapa = 1.0;
beff = b;
delta2 = 1.0;
D = 1.9*10^(-14);
kB = 1.38064852*10^(-23);
R = 8.3144598;
E = 250;
Rc = 2*b;
for c0=0.0000005:0.0000005:0.0001
    for T=1:1:300
        for rou=b:b:10*b
            for theta=0:0.01*pi:pi
                h = (5*(1+nu)*D*Vh*cos(theta/2)*KI^2/(12*sqrt(2*pi)*kB*NA*T*KId))^(2/5);
                B0 = G*Vh*c*h^2/(2*pi*(1-nu));
                sigma1122 = ((cos(2*theta)*rou^2 + cos(2*phi)*r^2 - cos(theta - phi)*2*rou*r)*((sqrt(rou/r) + sqrt(r/rou))*cos((theta + phi)/2) - 2) + (sin(2*theta)*rou^2 - sin(2*phi)*r^2 - sin(theta - phi)*2*rou*r)*(sqrt(rou/r) - sqrt(r/rou))*sin((theta + phi)/2))*B0/((cos(2*theta)*rou^2 + cos(2*phi)*r^2 - cos(theta - phi)*2*rou*r)^2 + (sin(2*theta)*rou^2 - sin(2*phi)*r^2 - sin(theta - phi)*2*rou*r)^2); % 2*(psiHc+conj(psiHc));
                sigma12 = KI*sin(theta)*cos(theta/2)/(2*sqrt(2*pi*rou));
                c = c0*exp(((1+nu)*sigma1122/3-2*E*Vh*(c-c0)/(9*(1-nu)))*Vh/(R*T));
                fun = @(r,phi) c*sin(2*phi)/r;
                eq = pi*rou*A0*(log(8*rou*m/(lambda*b))-2)+kapa*G*beff^2*delta2-0.5*b*pi*rou^2*(sigma12-(G*Vh/(2*pi*(1-nu)*NA))*integral2(fun,0,Rc,0,2*pi));
                solve(eq==0,KI);
            end
        end
    end
end

错误信息是:

  

警告:系统不一致。解决方案不存在。

     

在symengine(第57行)

     

在sym / privBinaryOp(第903行)

     

在/(第297行)

     

在@(r,phi)c * sin(2 * phi)/ r

中      

在integral2Calc> integral2t / tensor(第228行)

     

在integral2Calc> integral2t(第55行)

     

在integral2Calc(第9行)

     

在整数2(第106行)

     

在KIpredictor(第44行)

     

使用integral2Calc> integral2t / tensor(第231行)

时出错      

输入函数必须返回'double'或'single'值。找到'sym'。

     

integral2Calc中的错误> integral2t(第55行)

     

[Qsub,esub] =张量(thetaL,thetaR,phiB,phiT);

     

integral2Calc中的错误(第9行)

> [q,errbnd] = integral2t(fun,xmin,xmax,ymin,ymax,optionstruct);
  

整数2错误(第106行)

> Q = integral2Calc(fun,xmin,xmax,yminfun,ymaxfun,opstruct);
  

KIpredictor出错(第44行)

            > eq =
            pi*rou*A0*(log(8*rou*m/(lambda*b))-2)+kapa*G*beff^2*delta2-0.5*b*pi*rou^2*(sigma12-(G*Vh/(2*pi*(1-nu)*NA))*integral2(fun,0,Rc,0,2*pi)); 

我认为这个问题是由于被积函数的复杂性。附图的详细描述在附图中。 formula

0 个答案:

没有答案