1.将公式a=π/2-1-1/600+n/300 (0≤n≤600) b=2a-π/2 y=300sina-300tanb*Cosa 重新建立一个二维坐标系并在二维坐标系中用红色标记出(0,y)点,并统计落在区间[-200,-180]中(0,y)点的数量,移动这个长度为20的区间使得落在这个区间内(0,y)点的数量最多,要求(0,y)必须出现在x轴下方 2.在坐标系中画出圆心为0点半径为300,圆心角弧度值为[3π/2-1, 3π/2+1]的圆弧,同时用红色标记出1中的(0,y)点 为什么刚才画出的(0,y)点没有(0,y)的负值点 转化为matlab代码
时间: 2023-07-16 09:13:07 浏览: 109
1.
```matlab
n = 0:600;
a = pi/2 - 1 - 1/600 + n/300;
b = 2*a - pi/2;
y = 300*sin(a) - 300*tan(b).*cos(a);
% 统计落在区间[-200,-180]中(0,y)点的数量
idx = find(y < 0 & y >= -200 & n <= 400);
max_count = sum(y(idx) == min(y(idx)));
for i = 1:201
count = sum(y(idx) == min(y(idx)));
if count > max_count
max_count = count;
y(idx) = y(idx) + 20;
else
break;
end
end
% 画图
plot(n, y, 'r');
hold on;
plot([0 600], [0 0], 'k--');
plot([0 0], [-300 0], 'k--');
plot(0, y(n==400), 'ro');
```
2.
```matlab
theta = linspace(3*pi/2-1, 3*pi/2+1, 1000);
x = 300 * cos(theta);
y = 300 * sin(theta);
plot(x, y, 'b');
hold on;
plot(0, y(n==400), 'ro');
```
刚才画出的点没有负值是因为在公式中,当 n 大于 400 时,y 始终为正值,因此不会出现负值。
阅读全文