若要获得更好的阅读体验,请前往 链接。
1(课本习题2)
求满足 ∑ n = 0 m ln ( 1 + n ) > 100 \sum_{n = 0}^{m}{\ln{(1 + n)}} > 100 ∑n=0mln(1+n)>100的m最小值.
代码:
s=log(1);n=0;
while s<=100n=n+1;s=s+log(1+n);
end
fprintf("最小m值是%d",n)
输出:
最小m值是37
2(课本习题6)
做出下列函数图像:
(1)曲线 y = x 2 sin ( x 2 − x − 2 ) y = x^{2}\sin{(x^{2} - x - 2)} y=x2sin(x2−x−2), − 2 ≤ x ≤ 2 - 2 \leq x \leq 2 −2≤x≤2
(分别使用plot和fplot完成);
使用plot完成:
x=-2:0.1:2;y=x.^2.*sin(x.^2-x-2);
plot(x,y)
使用fplot完成:
f = @(x) x.^2 .* sin(x.^2 - x - 2);
fplot(f, [-2, 2])
绘图结果:
(2) 椭圆 x 2 4 + y 2 9 = 1 \frac{x^{2}}{4} + \frac{y^{2}}{9} = 1 4x2+9y2=1;
代码和输出:
r=-pi:0.1:pi;x=2*cos(r);y=3*sin(r);
plot(x,y)
(3) 抛物面 z = x 2 + y 2 z = x^{2} + y^{2} z=x2+y2, ∣ x ∣ < 3 , ∣ y ∣ < 3 |x| < 3,\ |y| < 3 ∣x∣<3, ∣y∣<3;
代码和输出:
xa=-3:0.1:3;ya=-3:0.1:3;
[x,y]=meshgrid(xa,ya);
z=x.^2+y.^2;
surf(x,y,z);
(4) 曲面 z = x 4 + 3 x 2 + y 2 − 2 x − 2 y − 2 x 2 y + 6 z = x^{4} + 3x^{2} + y^{2} - 2x - 2y - 2x^{2}y + 6 z=x4+3x2+y2−2x−2y−2x2y+6, ∣ x ∣ < 3 |x| < 3 ∣x∣<3, − 3 < y < 13 - 3 < y < 13 −3<y<13;
代码和输出:
xa=linspace(-3,3,100);ya=linspace(-3,13,100);
[x,y]=meshgrid(xa,ya);
z=x.^4+3*x.^2+y.^2-2*x-2*y-2*x.^2.*y+6;
surf(x,y,z);
(5) 空间曲线 x = sin t , x = \sin t, x=sint, y = cos t y = \cos t y=cost, z = cos 2 t z = \cos{2t} z=cos2t, 0 < t < 2 π 0 < t < 2\pi 0<t<2π;
代码和输出:
t=linspace(0,2,50);
x=sin(t);y=cos(t);z=cos(2*t);
plot3(x,y,z)
(6)
半球面 x = 2 sin ϕ cos θ , y = 2 sin ϕ sin θ , z = 2 cos ϕ x = 2\sin\phi\cos\theta,\ y = 2\sin\phi\sin\theta,\ z = 2\cos\phi x=2sinϕcosθ, y=2sinϕsinθ, z=2cosϕ, 0 ≤ θ ≤ 36 0 o 0 \leq \theta \leq 360^{o} 0≤θ≤360o, 0 ≤ ϕ ≤ 9 0 o 0 \leq \phi \leq 90^{o} 0≤ϕ≤90o;
代码和输出:
a=linspace(0,2*pi,50);b=linspace(0,pi/2,50);
[a,b]=meshgrid(a,b);
x=2*sin(a).*cos(b);y=2*sin(a).*sin(b);z=2*cos(a);
surf(x,y,z)
(7)
三条曲线合成图 y 1 = sin x , y 2 = sin x sin 10 x , y 3 = − sin x y_{1} = \sin x,\ y_{2} = \sin x\sin{10x},\ y_{3} = - \sin x y1=sinx, y2=sinxsin10x, y3=−sinx, 0 < x < π 0 < x < \pi 0<x<π.
代码和输出:
x=linspace(0,pi,50);y1=sin(x);
plot(x,y1);
hold on;
y2=sin(x).*sin(10*x);
plot(x,y2);
y3=-sin(x);
plot(x,y3);
hold off;
3
设 f ( x ) = { x 2 , x ≥ 2 , x + 2 , x < 2 , f(x)=\left\{\begin{matrix}x^2,&x\geq2,\\ x+2,&x<2,\end{matrix}\right. f(x)={x2,x+2,x≥2,x<2,求 f ( 2 ) f(2) f(2), f ( − 2 ) f( - 2) f(−2).
代码:
function y = g(x)if x >= 2y = x^2;elsey = x + 2;end
endg2 = g(2);
g_minus_2 = g(-2);disp(['g(2) = ', num2str(g2)])
disp(['g(-2) = ', num2str(g_minus_2)])
结果:
g(2) = 4
g(-2) = 0
4
用循环语句计算10!
代码:
sum = 1;
for i = 1:10sum = sum * i;
end
disp(sum)
输出:
3628800
5. 使用两种方法求自然数1~100之和(使用循环和不使用循环)。
使用循环:
sum = 0;
for i = 1:100sum = sum + i;
end
disp(sum)
不使用循环:
clear
sum = sum(1:100);
disp(sum)
结果:
5050
6
某种电子产品使用寿命t (2000)与产品等级s间的对应关系如下表,使用swith判断测试产品的等级。
使用寿命t/h | t>=1500 | 1200<=t<=1500 | 1000<=t<=1200 | t<1000 |
---|---|---|---|---|
产品等级s | 一等品 | 二等品 | 三等品 | 不合格 |
代码:
n = input('请输入该电子产品的使用寿命:');if n < 0disp('输入非法!')
elseswitch ncase num2cell(0:1000)disp('不合格')case num2cell(1000:1200)disp('三等品')case num2cell(1200:1500)disp('二等品')otherwisedisp('一等品')end
end
输出:
请输入该电子产品的使用寿命:2000
一等品
7
判断下面语句的运算结果。
(1) 4 < 20 (2) 4 <= 20 (3) 4 == 20 (4) 4 ~= 20
答:(1)真;(2)真;(3)假;(4)真;
8
在MATLAB中使用一个循环确定:如果用户最初在一个银行帐户中存储$10000,并且在每年的年终再存储$10000(银行每年支付6%的利息),那么账户上要积累$1000000要需要多长时间。
代码:
k=1;Sum=1000;
while Sum<1000000Sum=Sum*(1+0.06)+10000;k=k+1;
end
fprintf("需要%d年",k);
输出:
需要35年
9
用matlab创建一个结构体,用于统计学生的情况,包括学生的姓名、学号、各科成绩等。然后使用该结构体对一个班级的学生成绩进行管理,计算总分、平均分。假设学生人数为m=randi([30,
60]).
代码:
% 随机生成学生人数
m = randi([30, 60]);
% 创建班级
class = struct();% 填充学生信息和成绩
for i = 1:mclass(i).name = ['Student ' num2str(i)];class(i).id = i;class(i).grades = randi([30, 100], 1, 5); % 假设每个学生有5门课程
endfor i = 1:mtotal_score = sum(class(i).grades);average_score = total_score/5;fprintf('学生 %s 的总分是 %d,平均分是 %.2f\n', class(i).name, total_score, average_score);
end
输出:
学生 Student 1 的总分是 371,平均分是 74.20
学生 Student 2 的总分是 303,平均分是 60.60
…
学生 Student 45 的总分是 254,平均分是 50.80
学生 Student 46 的总分是 421,平均分是 84.20
10
请编程计算 r = s 2 + s 4 + s 6 + s 8 + ⋯ + s 36 + s 38 r = s^{2} + s^{4} + s^{6} + s^{8} + \cdots + s^{36} + s^{38} r=s2+s4+s6+s8+⋯+s36+s38,
s=0.5.
代码:
s = 0.5;
r = 0;
for n = 2:2:38r = r + s^n;
end
r
输出:
r = 0.3333
11
用曲面表示函数 z = x 3 + y 3 z = x^{3} + y^{3} z=x3+y3
(1) 使用 ezsurf 函数画。 (2)不使用ezsurf 函数画。
答:
(1)代码:
% 定义函数
f = @(x,y) x.^3 + y.^3;
% 使用ezsurf函数绘制图形
ezsurf(f, [-10 10 -10 10])
输出:
(2)代码:
% 定义x和y的范围
x = -10:0.5:10; y = -10:0.5:10;
% 使用meshgrid函数生成网格点
[X,Y] = meshgrid(x, y);
% 计算每个网格点的z值
Z = X.^3 + Y.^3;
% 使用surf函数绘制图形
surf(X,Y,Z)
12
绘制 z = cos x sin y y z = \frac{\cos x\sin y}{y} z=ycosxsiny的完整光滑曲面。其中,x ∈ \in ∈[-2π,2π],y ∈ \in ∈[-2π,2π]。(不能使用ezsurf,ezmesh)。
代码:
% 定义x,y的范围
x = linspace(-2*pi, 2*pi, 100);
y = linspace(-2*pi, 2*pi, 100);
% 创建网格
[X, Y] = meshgrid(x, y);
% 计算Z的值,注意在y=0处进行除数异常处理
Z = (cos(X).*sin(Y))./(Y + (Y==0));
% 绘制曲面
surf(X, Y, Z);
xlabel('x');
ylabel('y');
zlabel('z');
str = 'Surface plot of $$ z = \frac{cos(x)sin(y)}{y} $$';
title(str,'Interpreter','latex')
13
在 0≤x≤2π 区间内,分别用红色虚线和蓝色实线绘制曲线 y 1 = 2 e − 0.5 x y1=2e^{- 0.5x} y1=2e−0.5x和y2=cos(4πx),给图形加上图例"Y1",“Y2”,,在坐标为(0.8,1.5)处为y1 曲线加上文本说明"曲线 y1=2e^{-0.5x})“;在坐标为(2.5,1.1)处为曲线y2加上文本说明"曲线 y2=cos(4{\pi}x))”; 对x、y轴加上标签"Variable X",“Variable y”.
代码:
% 定义x的范围
x = linspace(0, 2*pi, 100);
% 计算y1和y2的值
y1 = 2*exp(-0.5*x);
y2 = cos(4*pi*x);plot(x, y1, 'r--', 'DisplayName', 'Y1')
hold on
plot(x, y2, 'b-', 'DisplayName', 'Y2')% 添加图例
legend
text(0.8, 1.5, '曲线 y1=2e^{-0.5x}')
text(2.5, 1.1, '曲线 y2=cos(4{\pi}x)')
xlabel('Variable X')
ylabel('Variable Y')hold off
输出:
14
在同一平面中的两个窗口分别画出心形线 { x = a ( 1 − cos θ ) cos θ y = a ( 1 − cos θ ) sin θ \left\{\begin{aligned}x&=a(1-\cos\theta)\cos\theta\\y&=a(1-\cos\theta)\sin\theta\end{aligned}\right. {xy=a(1−cosθ)cosθ=a(1−cosθ)sinθ和马鞍面 x 2 a 2 − y 2 b 2 = 2 z \frac{x^{2}}{a^{2}} - \frac{y^{2}}{b^{2}} = 2z a2x2−b2y2=2z,其中,a取学号末尾数字,b取1到10之间的随机整数。
代码:
theta = linspace(0, 2*pi, 1000); % 定义θ的范围
a = 3; % 取学号末尾数字
x = a * (1 - cos(theta)) .* cos(theta); % 计算x的值
y = a * (1 - cos(theta)) .* sin(theta); % 计算y的值figure(1); % 创建新的图形窗口
plot(x, y); % 在图形窗口中绘制心形线
title('心形线'); % 给图形添加标题[x, y] = meshgrid(-2:0.1:2, -2:0.1:2); % 定义x和y的范围
b = randi([1, 10]); % 取1到10之间的随机整数
z = (x.^2/a^2 - y.^2/b^2)/2; % 计算z的值figure(2); % 创建新的图形窗口
surf(x, y, z); % 在图形窗口中绘制马鞍面
title('马鞍面'); % 给图形添加标题
输出: