matlab 非线性方程组求解。
7 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
AG官方入口网址【tlyf002 .com】
el 14 de Oct. de 2022
Respondida: AG官方入口app【gb2032 .com】
el 14 de Oct. de 2022
小弟在求一个比较复杂的非线性方程组时出现错误,方程组中包含二重积分,且未知数在积分的上下限之中,希望大家帮忙看看,不甚感激我的代码如下
function F=xiepo(a)
i1=@(y1)8*(1-(0.2194+0.02)*(y1+a(3)-0.02)/3)*2727.98;
i2=@(y2)8*(1-(0.2194+0.02)*(y2+a(3)-0.02)/3)*2814.58;
jx0=@(x1,y1)(-y1)*(0.5+0.02-a(3)-y1)/(0.112*a(1));
jy0=@(x1,y1)(sqrt(1-a(3)^2)+0.32+0.005+x1-0.112*a(1))*(0.5+0.02-a(3)-y1)/(0.112*a(1));
j0=@(x1,y1)sqrt(jx0^2+jy0^2);
jxi=@(x2,y2)(-y2)*(0.5+0.02-a(3)-y2)/(0.112*a(2));
jyi=@(x2,y2)(sqrt(1-a(3)^2)-0.32+0.005+x2-0.112*a(2))*(0.5+0.02-a(3)-y2)/(0.112*a(2));
ji=@(x2,y2)sqrt(jxi^2+jyi^2);
sini1=@(x1,y1)(sqrt(1-a(3)^2)+0.32+0.005+x(1)-0.112*a(1))/sqrt((sqrt(1-a(3)^2)+0.32+0.005+x1-0.112*a(1))^2+y1^2);
sini2=@(x2,y2)(sqrt(1-a(3)^2)-0.32+0.005+x(2)-0.112*a(2))/sqrt((sqrt(1-a(3)^2)-0.32+0.005+x2-0.112*a(2))^2+y2^2);
cosi1=@(x1,y1)-y(1)/sqrt((sqrt(1-a(3)^2)+0.32+0.005+x1-0.112*a(1))^2+y1^2);
cosi2=@(x2,y2)-y2/sqrt((sqrt(1-a(3)^2)-0.32+0.005+x2-0.112*a(2))^2+y2^2);
fx0=@(x1,y1)(4.15*1000+i1*0.231)*(1-exp^(-j0/0.025))*cosi1;
Fx0=integral2(fx0,-0.5+0.02-a(3),0.52-a(3),-0.125/2,0.125/2);
fxi=@(x2,y2)(4.15*1000+i2*0.231)*(1-exp^(-ji/0.025))*cosi2;
Fxi=integral2(fxi,-0.5+0.02-a(3),0.52-a(3),-0.125/2,0.125/2);
fy0=@(x1,y1)(4.15*1000+i1*0.231)*(1-exp^(-j0/0.025))*sini1;
Fy0=integral2(fy0,-0.5+0.02-a(3),0.52-a(3),-0.125/2,0.125/2);
fyi=@(x2,y2)(4.15*1000+i2*0.231)*(1-exp^(-ji/0.025))*sini2;
Fyi=integral2(fyi,-0.5+0.02-a(3),0.52-a(3),-0.125/2,0.125/2);
Mto=Fy0*(0.32);
Mti=Fyi*(0.32);
Mro=Fx0*0.32;
Mri=Fxi*0.32;
F(1)=Fx0+Fxi;
F(2)=Fy0-Fyi-0.68*2727.98-0.68*2814.58-6400*0.5;
F(3)=Mto+Mti+0.5*(0.68*2814.58-0.68*2727.98)*0.64+6400*0.005*0.5-Mro-Mri;
我用fsolve求解
[sol,fval]=fsolve(@xiepo,[0.5,0.5,0.5])
出现错误如下未定义与 'function_handle' 类型的输入参数相对应的函数 'mtimes'。
出错 xiepo>@(x1,y1)(4.15*1000+i1*0.231)*(1-exp^(-j0/0.025))*cosi1
(line 14)
fx0=@(x1,y1)(4.15*1000+i1*0.231)*(1-exp^(-j0/0.025))*cosi1;
出错 integral2Calc>integral2t/tensor (line 228)
Z = FUN(X,Y); NFE = NFE + 1;
出错 integral2Calc>integral2t (line 55)
[Qsub,esub] = tensor(thetaL,thetaR,phiB,phiT);
出错 integral2Calc (line 9)
[q,errbnd] =
integral2t(fun,xmin,xmax,ymin,ymax,optionstruct);
出错 integral2 (line 106)
Q = integral2Calc(fun,xmin,xmax,yminfun,ymaxfun,opstruct);
出错 xiepo (line 15)
Fx0=integral2(fx0,-0.5+0.02-a(3),0.52-a(3),-0.125/2,0.125/2);
出错 fsolve (line 217)
fuser = feval(funfcn{3},x,varargin{:});
原因:
Failure in initial user-supplied objective function
evaluation. FSOLVE cannot continue.
0 comentarios
Respuesta aceptada
AG官方入口app【gb2032 .com】
el 14 de Oct. de 2022
a=[0.5 0.5 0.5];
i1=@(y1)8*(1-(0.2194+0.02).*(y1+a(3)-0.02)/3)*2727.98;
i2=@(y2)8*(1-(0.2194+0.02).*(y2+a(3)-0.02)/3)*2814.58;
jx0=@(y1)(-y1).*(0.5+0.02-a(3)-y1)/(0.112*a(1));
jy0=@(x1,y1)(sqrt(1-a(3)^2)+0.32+0.005+x1-0.112*a(1)).*(0.5+0.02-a(3)-y1)/(0.112*a(1));
j0=@(x1,y1)sqrt(jx0(y1).^2+jy0(x1,y1).^2);
jxi=@(x2,y2)(-y2).*(0.5+0.02-a(3)-y2)/(0.112*a(2));
jyi=@(x2,y2)(sqrt(1-a(3)^2)-0.32+0.005+x2-0.112*a(2)).*(0.5+0.02-a(3)-y2)/(0.112*a(2));
ji=@(x2,y2)sqrt(jxi(x2,y2).^2+jyi(x2,y2).^2);
sini1=@(x1,y1)(sqrt(1-a(3)^2)+0.32+0.005+x1-0.112*a(1))./sqrt((sqrt(1-a(3)^2)+0.32+0.005+x1-0.112.*a(1)).^2+y1.^2);
sini2=@(x2,y2)(sqrt(1-a(3)^2)-0.32+0.005+x2-0.112*a(2))./sqrt((sqrt(1-a(3)^2)-0.32+0.005+x2-0.112.*a(2)).^2+y2.^2);
cosi1=@(x1,y1)-y1./sqrt((sqrt(1-a(3)^2)+0.32+0.005+x1-0.112*a(1)).^2+y1.^2);
cosi2=@(x2,y2)-y2./sqrt((sqrt(1-a(3)^2)-0.32+0.005+x2-0.112*a(2)).^2+y2.^2);
fx0=@(x1,y1)(4.15*1000+i1(y1)*0.231).*(1-exp(-j0(x1,y1)/0.025)).*cosi1(x1,y1);
Fx0=integral2(fx0,-0.5+0.02-a(3),0.52-a(3),-0.125/2,0.125/2);
fxi=@(x2,y2)(4.15*1000+i2(y2)*0.231).*(1-exp(-ji(x2,y2)/0.025)).*cosi2(x2,y2);
Fxi=integral2(fxi,-0.5+0.02-a(3),0.52-a(3),-0.125/2,0.125/2);
fy0=@(x1,y1)(4.15*1000+i1(y1)*0.231).*(1-exp(-j0(x1,y1)/0.025)).*sini1(x1,y1);
Fy0=integral2(fy0,-0.5+0.02-a(3),0.52-a(3),-0.125/2,0.125/2);
fyi=@(x2,y2)(4.15*1000+i2(y2)*0.231).*(1-exp(-ji(x2,y2)/0.025)).*sini2(x2,y2);
Fyi=integral2(fyi,-0.5+0.02-a(3),0.52-a(3),-0.125/2,0.125/2);
Mto=Fy0*(0.32);
Mti=Fyi*(0.32);
Mro=Fx0*0.32;
Mri=Fxi*0.32;
F(1)=Fx0+Fxi;
F(2)=Fy0-Fyi-0.68*2727.98-0.68*2814.58-6400*0.5;
F(3)=Mto+Mti+0.5*(0.68*2814.58-0.68*2727.98)*0.64+6400*0.005*0.5-Mro-Mri;
刚刚代码没提交上去
0 comentarios
Más respuestas (0)
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!