matlab 非线性方程组求解。

7 ビュー (過去 30 日間)
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.

採用された回答

AG官方入口app【gb2032 .com】
AG官方入口app【gb2032 .com】 2022 年 10 月 14 日
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 件)

カテゴリ

Help Center および File Exchange启动和关闭 についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!