这个含有定积分的方程组怎么解?
题主给出的含有定积分的方程组怎么解?这个问题我们可以这样考虑求解:
第一步,使用函数体,创建自定义函数,即func(x)。其主要思想是
eq1=0 %使得方程1等于0
eq2=0 %使得方程2等于0
eq3=0 %使得方程3等于0
eq4=0 %使得方程4等于0
即
fun1=@(theta)1/sqrt(cos(theta_A)-cos(theta));
fun2=@(theta)-1/sqrt(1-cos(theta)+theta_C^2);
y3=sqrt(cos(theta_A)-cos(theta_B))+sqrt(1-cos(theta_B)+theta_C^2);
fun3=@(theta)cos(theta)/sqrt(cos(theta_A)-cos(theta));
fun4=@(theta)cos(theta)/sqrt(1-cos(theta)+theta_C^2);
y1=integral(fun1,theta_A,theta_B);
y2=integral(fun2,theta_B,0);
y4=integral(fun3,theta_A,theta_B)+integral(fun4,0,theta_B);
eq1=y1-R1*L1/2;
eq2=y2-pi*R1/2;
eq3=y3-1/R1;
eq4=y4-R1*Xc;
第二步, 使用fmincon或lsqnonlin函数求其数值解,并使得其误差小于±1e-10。即
x0 =[1 1.1 1.5 0.4]; %初始值
lb=[0,0,0,0];ub=[2,2,3,2];
[x,fval,flag] = fmincon(@func,x0)
第三步,还原θA, θB, θC, R值,即
theta_A=x(1);
theta_B=x(2);
theta_C=x(3);
R1=x(4);
第四步,计算方程组的误差,即
y=func(x)
disp('误差')
disp(['方程1:',num2str(y1)])
disp(['方程2:',num2str(y2)])
disp(['方程3:',num2str(y3)])
disp(['方程4:',num2str(y4)])
运行结果如下。
目标函数是什么?