将以下三个问题转化为matlab代码,每个问题单独给出代码 问题一:建立一个二维直角坐标系并在上面画出半径为300,圆弧的两个端点与x轴正向夹角在[π/2-1, π/2+1]的这一段圆弧,并且画出光线平行于y轴入射时经过圆弧反射之后反射光线于y轴的交点,交点用红色标出。 问题二:公式a=π/2-1-1/600+n/300 (0≤n≤300) b=2a-π/2,a和b的单位都为弧度 y=300sina-300tanb*Cosa 计算出y的值,统计出y的值在区间[-200,-180]的数量并输出该数量的值。 问题三:重新建立一个坐标系将问题2中计算得出的y值用红色的点描绘在y轴上
时间: 2023-12-03 16:44:32 浏览: 174
问题一代码:
```
% 建立二维直角坐标系
figure;
axis([-350 350 -350 350]);
hold on;
% 画出圆弧
theta = linspace(pi/2-1, pi/2+1, 100);
x = 300*cos(theta);
y = 300*sin(theta);
plot(x, y);
% 求出反射光线的交点
incidence_angle = pi/2; % 入射角为90度
reflection_angle = pi - theta(end); % 计算反射角
slope = tan(reflection_angle); % 反射光线的斜率
x_intersect = 300/slope; % 反射光线与y轴的交点
plot(x_intersect, 0, 'ro'); % 用红色标出交点
```
问题二代码:
```
a = linspace(pi/2-1-1/600, pi/2-1-1/600+300/300, 301);
b = 2*a - pi/2;
y = 300*sin(a) - 300*tan(b).*cos(a);
num = sum(y >= -200 & y <= -180);
disp(num);
```
问题三代码:
```
figure;
axis([-350 350 -350 350]);
hold on;
plot([0 0], [-350 350], 'k--'); % 画出y轴
plot(zeros(1,num), linspace(-200,-180,num), 'ro'); % 用红色点描绘y值
```
阅读全文