MJ.Ian 发表于 2024-8-8 14:13
这个进行优化了吗,为什么 我做的都不行,设置的都没有问题,实体图是SW的吗
...
可能是算法上的问题,我是迭代求解出来的,很久前弄的了,算法上你自己再看下
function f=initial
R=1500 ;
H=1000 ;
n=1.4935 ;
r0=4 ;
end
function f=freeform_U(x,r)
initial;
O=sqrt((R-r)^2*sin(x)^2+(H-r*cos(x))^2);
O1=(R-r)*sin(x)/O;
O2=(H-r*cos(x))/O;
I=[sin(x),cos(x)];
f=r*((O2-n*I(2))*sin(x)-(O1-n*I(1))*cos(x))/...
((O2-n*I(2))*cos(x)+(O1-n*I(1))*sin(x));
end
clc;
clear;
initial;
N=200;
theta=linspace(0,pi/2,N);
sol=ode45(@freeform_U,[0 pi/2],r0);
r=deval(sol,theta);
plot(r.*sin(theta),r.*cos(theta));
fid=fopen('freecurve.txt','w');
formatSpec='%f %f %f\n';
for j=1:N
fprintf(fid,formatSpec,r(j).*sin(theta(j)),r(j).*cos(theta(j)),0);
end
fclose(fid);