matlab 非线性方程组求解。

7 Ansichten (letzte 30 Tage)
AG官方入口网址【tlyf002 .com】
小弟在求一个比较复杂的非线性方程组时出现错误,方程组中包含二重积分,且未知数在积分的上下限之中,希望大家帮忙看看,不甚感激我的代码如下
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.

Akzeptierte Antwort

AG官方入口app【gb2032 .com】
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;
刚刚代码没提交上去

Weitere Antworten (0)

Kategorien

Mehr zu 启动和关闭 finden Sie in Help Center und File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!