matlab 求解方程~~急急
没有方程怎么解
快给出方程
你先等等,这个东西需要迭代求解,速度比较慢。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function dx=nonlinear(t,x)
persistent count
if isempty(count)
count=0;
end
count=count+1;
fprintf('正在运行第%d次\n',count);
fprintf('运行到角度:%d\n',t);
theta1=85*pi/180;
r0=2000*tan(pi/6);
l=2000;
h=8;
d=15;
n=1.586;
%% 取使约束方程r0*sin(t)/sin(theta1)=n*l*sin(w)/sqrt(1-n^2*sin(w)^2)+(h+d+x)*tan(t)-x*tan(w)
%% 等式两边之差小于shredhold的最优w,如果没有满足精度要求的,则进一步精确划分W可能值,直到得到满足要求
%% 的W为止。
w_about=0;
calError=1;
shredhold=0.0005;
w=-pi;
percesion=0.001;
midVar=0.01;
flag=0; %精化等级
while w_about==0
while calError>shredhold
if w>=pi
break;
end
w=w+pi/180*percesion;
calError=abs(3172*sin(w)/sqrt(1-2.5154*sin(w)^2)+(23+x)*tan(t)-x*tan(w)-1159.1*sin(t));
if calError<midVar
midVar=[midVar calError];
w_about=[w_about w];
end
end
w=w_about((midVar==min(midVar)));
fprintf('截断误差:%f',min(midVar));
percesion=percesion/10;
flag=flag+1;
fprintf('flag:%d\n',flag);
end
dx=(h+d+x)/( -(n*cos(w)-cos(t))/(n*sin(w)-sin(t))-tan(t) )/cos(t)^2;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
求theta在[0 PI/4]之间的关系
tic,[T3,Y3] = ode45(@nonlinear,[0 pi/4],-15);toc
有些误差: