matlab画图问题

约束条件为-sin(2*t)-0.1882*sin(4*t)-0.6135*cos(2*t).*sin(t)-1.227*cos(t).*sin(2*t)+2*0.1*sin(t).*cos(t+h)+2*0.1*cos(t).*sin(t+h)+1.227*0.1*sin(2*t).*cos(t+h)+0.6135*0.1*cos(2*t).*sin(t+h)=0, d1=sqrt(abs(cos(t).^2+0.0941*cos(2*t).^2+0.6135*cos(t).*cos(2*t)-2*0.5*cos(t).*cos(t+h)-0.6135*0.5*cos(2*t).*cos(t+h)+0.5^2)); d2=sqrt(abs(sin(t).^2+0.0941*cos(2*t).^2+0.6135*sin(t).*cos(2*t)-2*0.5*sin(t).*sin(t+h)-0.6135*0.5*cos(2*t).*sin(t+h)+0.5^2)); 要得到y=100*d2/(d1+d2)的图形,用下面的代码:t=@(h)fsolve(@(t)-sin(2*t)-0.1882*sin(4*t)-0.6135*cos(2*t).*sin(t)-1.227*cos(t).*sin(2*t)+2*0.5*sin(t).*cos(t+h)+2*0.5*cos(t).*sin(t+h)+1.227*0.5*sin(2*t).*cos(t+h)+0.6135*0.5*cos(2*t).*sin(t+h),zeros(1,length(h)),optimset(✀display✀,✀off✀));d1=@(h)sqrt(abs(cos(t(h)).^2+0.0941*cos(2*t(h)).^2+0.6135*cos(t(h)).*cos(2*t(h))-2*0.5*cos(t(h)).*cos(t(h)+h)-0.6135*0.5*cos(2*t(h)).*cos(t(h)+h)+0.5^2));d2=@(h)sqrt(abs(sin(t(h)).^2+0.0941*cos(2*t(h)).^2+0.6135*sin(t(h)).*cos(2*t(h))-2*0.5*sin(t(h)).*sin(t(h)+h)-0.6135*0.5*cos(2*t(h)).*sin(t(h)+h)+0.5^2));h=linspace(0,2*pi);y=100*d2(h)./(d2(h)+d1(h));plot(180*h/pi,y,✀k✀)但是得到的图形却是y=100*d2(h)的图形,请高手指点错误在哪里,谢谢。
2026年09月27日 08:35
有1个网友回答
网友(1):

得到的图形是y = 100*d2(h)./(d2(h)+d1(h))的图形。对比一下:

t = @(h) fsolve(@(t)-sin(2*t)-0.1882*sin(4*t)-0.6135*cos(2*t).*sin(t)-1.227*cos(t).*sin(2*t)+2*0.5*sin(t).*cos(t+h)+2*0.5*cos(t).*sin(t+h)+1.227*0.5*sin(2*t).*cos(t+h)+0.6135*0.5*cos(2*t).*sin(t+h),zeros(1,length(h)),optimset('display','off'));
d1 = @(h) sqrt(abs(cos(t(h)).^2+0.0941*cos(2*t(h)).^2+0.6135*cos(t(h)).*cos(2*t(h))-2*0.5*cos(t(h)).*cos(t(h)+h)-0.6135*0.5*cos(2*t(h)).*cos(t(h)+h)+0.5^2));
d2 = @(h) sqrt(abs(sin(t(h)).^2+0.0941*cos(2*t(h)).^2+0.6135*sin(t(h)).*cos(2*t(h))-2*0.5*sin(t(h)).*sin(t(h)+h)-0.6135*0.5*cos(2*t(h)).*sin(t(h)+h)+0.5^2));
h = linspace(0,2*pi);
y = 100*d2(h)./(d2(h)+d1(h));
plot(180*h/pi,y,'k')

y1 = 100*d2(h);
hold on
plot(180*h/pi,y1,'.')