写在最前面
-
点进来看的同学你好啊!笔者很有可能就是你的同学。。。因为这是笔者在实验周内发布的,实验报告的提交此时还没有截止,所以笔者在此郑重声明,本份实验报告仅供学习与参考使用,严禁抄袭!如有部分题目答案或者解法有误的,请及时联系笔者!
-
还有想提的一点是有一份同样题目的实验报告早在8天前已由一位学长上传了(link),笔者都仔细地看过了,其中存在的一些小的错误已在这篇中纠正过来,而且对比这两篇来看一些建模的思路会不一样,一些代码上的习惯也会不同。所以读者可以对比着两篇来看的!但是千万要记住,不要抄袭!不要抄袭!不要抄袭!
-
本实验报告采用matlab实时脚本编写,每个代码块都继承前面的变量(在没有clear的情况下)且每个代码框的运行结果会在代码框下方显现(可以类比jupyter notebook)如想要获取本报告源代码(mlx文件),请访问我的Github数学实验A代码库。不要忘记给star哦~
-
另外欢迎交友 + follow:在我的Github 上可以在上面找到我的联系方式~
实验报告
特别提示
-
阅读本份实验报告之前,请在MatlabR2024a环境下首先将实时脚本全部运行一遍,以确保每一张图都可被画出,每一个结果或公式都会被打印出来。
-
首次运行该实时脚本的时间约为40秒,请耐心等待。(但如果发现文件打开后就有图片等就不用运行)
-
本脚本在运行过程中会出现较多警告,忽略即可,不影响最终答案的输出。
-
警告的主要原因是一些算法或者表达式Matlab认为效率不够高或精度不够高。
特别注意
在下面的题目中,1-4班m为你学号的后3位,00班 m为你学号的后2位+70
在此有:
m = 424;
模块一
(1)
syms x;
limit_0 =limit((sqrt(1+m*x^2)-cos(m*x))/x^2);
disp(limit_0);
90100 \displaystyle 90100 90100
(2)
limit_1 = limit((sqrt(1 + m*x^2)-cos(m*x))/x,x,Inf);
disp(limit_1)
424 \displaystyle \sqrt{424} 424
(1)
v1 = int(exp(-m*x^2),x,0,Inf);
disp(v1);
106 π 424 \displaystyle \frac{\sqrt{106}\,\sqrt{\pi }}{424} 424106π
(2)
v2 = int(exp(x^2),x,0,1/2);
disp(v2);
π erfi ( 1 2 ) 2 \displaystyle \frac{\sqrt{\pi }\,\textrm{erfi}\left(\frac{1}{2}\right)}{2} 2πerfi(21)
(3)
v3 = int((m*x^4)/(25 + 4*x^2));
disp(v3);
6625 atan ( 2 x 5 ) 4 − 1325 x 2 + 106 x 3 3 \displaystyle \frac{6625\,\textrm{atan}\left(\frac{2\,x}{5}\right)}{4}-\frac{1325\,x}{2}+\frac{106\,x^3 }{3} 46625atan(52x)−21325x+3106x3
(4)
syms y;
v4 = int(int(sqrt(1-x^2),y,-sqrt(1-x^2),sqrt(1-x^2)),x,-1,1);
disp(v4);
8 3 \displaystyle \frac{8}{3} 38
(5)
v5 = int(exp(-abs(x))*abs(sin(x)),x,-3*pi,1.6*pi);
disp(vpa(v5,64));
1.086229283558525811440413924347348147077977176807481700165368465 \displaystyle 1.086229283558525811440413924347348147077977176807481700165368465 1.086229283558525811440413924347348147077977176807481700165368465
防止图片盗用,此题不予展示
(1)
M = 0;
s = 0;
for n = 2:10000
s = s + 1/(sqrt(n)*log(n));
if s > 10
M = n;
break;
end
end
disp(M);
333
(2)
n = 1:1000;
s = sum(n.*sin(n)./(2.^n));
disp(s);
0.6265
(1)
syms x;
y = exp(x)*cos((m/100)*x^2 + x + 1);
disp(y);
e x cos ( 106 x 2 25 + x + 1 ) \displaystyle {\mathrm{e}}^x \,\cos \left(\frac{106\,x^2 }{25}+x+1\right) excos(25106x2+x+1)
disp(diff(y,x,2));
e x σ 1 − 212 e x σ 2 25 − e x σ 1 ( 212 x 25 + 1 ) 2 − 2 e x σ 2 ( 212 x 25 + 1 ) where σ 1 = cos ( 106 x 2 25 + x + 1 ) σ 2 = sin ( 106 x 2 25 + x + 1 ) \displaystyle \begin{array}{l} {\mathrm{e}}^x \,\sigma_1 -\frac{212\,{\mathrm{e}}^x \,\sigma_2 }{25}-{\mathrm{e}}^x \,\sigma_1 \,{{\left(\frac{212\,x}{25}+1\right)}}^2 -2\,{\mathrm{e}}^x \,\sigma_2 \,{\left(\frac{212\,x}{25}+1\right)}\newline \mathrm{}\newline \textrm{where}\newline \mathrm{}\newline \;\;\sigma_1 =\cos \left(\frac{106\,x^2 }{25}+x+1\right)\newline \mathrm{}\newline \;\;\sigma_2 =\sin \left(\frac{106\,x^2 }{25}+x+1\right) \end{array} exσ1−25212exσ2−exσ1(25212x+1)2−2exσ2(25212x+1)whereσ1=cos(25106x2+x+1)σ2=sin(25106x2+x+1)
disp(subs(diff(y,x,10),x,0));
− 192105798209248 sin ( 1 ) 1953125 \displaystyle -\frac{192105798209248\,\sin \left(1\right)}{1953125} −1953125192105798209248sin(1)
(2)
syms y;
z = x^2*exp(-y);
disp(z);
x 2 e − y x^2 \mathit{e}^{-y} x2e−y
disp(subs(subs(diff(diff(z),x),x),x,1),y,2);
2 e − 1 2 e^{-1} 2e−1
disp(subs(subs(diff(diff(z),x),y),x,1),y,2);
2 e − y 2 e^{-y} 2e−y
A = [4 -2 2;-3 0 5;1 5 0.1*m];
B = [1 3 4;-2 0 -3;2 -1 1];
disp(det(A));
-394.4000
disp(det(B));
-7
disp(inv(A));
0.0634 -0.2404 0.0254
-0.3352 -0.4249 0.0659
0.0380 0.0558 0.0152
disp(inv(B));
0.4286 1.0000 1.2857
0.5714 1.0000 0.7143
-0.2857 -1.0000 -0.8571
[q,w] = eig(A)
q = 3x3
0.8803 -0.3598 0.0451
-0.4728 -0.9261 0.1122
0.0398 0.1130 0.9927
w = 3x3
5.1646 0 0
0 -1.7755 0
0 0 43.0109
[q2,w2] = eig(B)
q2 = 3x3
-0.0566 0.2637 -0.8195
0.7886 0.7861 0.0395
-0.6123 -0.5591 0.5718
w2 = 3x3
2.4728 0 0
0 1.4626 0
0 0 -1.9354
syms n;
[N,D] = eig(A);
disp(vpa(N*D^n/N,2));
( 0.83 5.2 n + 7.5e-4 43.0 n + 0.17 ( − 1.8 ) n 5.2e-3 43.0 n − 0.32 5.2 n + 0.32 ( − 1.8 ) n 0.045 43.0 n − 1.3e-3 5.2 n − 0.044 ( − 1.8 ) n 1.9e-3 43.0 n − 0.44 5.2 n + 0.44 ( − 1.8 ) n 0.17 5.2 n + 0.013 43.0 n + 0.81 ( − 1.8 ) n 6.7e-4 5.2 n + 0.11 43.0 n − 0.11 ( − 1.8 ) n 0.037 5.2 n + 0.017 43.0 n − 0.054 ( − 1.8 ) n 0.11 43.0 n − 0.015 5.2 n − 0.099 ( − 1.8 ) n 0.99 43.0 n − 5.7e-5 5.2 n + 0.014 ( − 1.8 ) n ) \displaystyle \left(\begin{array}{ccc} 0.83\,{5.2}^n +\text{7.5e-4}\,{43.0}^n +0.17\,{{\left(-1.8\right)}}^n & \text{5.2e-3}\,{43.0}^n -0.32\,{5.2}^n +0.32\,{{\left(-1.8\right)}}^n & 0.045\,{43.0}^n -\text{1.3e-3}\,{5.2}^n -0.044\,{{\left(-1.8\right)}}^n \newline \text{1.9e-3}\,{43.0}^n -0.44\,{5.2}^n +0.44\,{{\left(-1.8\right)}}^n & 0.17\,{5.2}^n +0.013\,{43.0}^n +0.81\,{{\left(-1.8\right)}}^n & \text{6.7e-4}\,{5.2}^n +0.11\,{43.0}^n -0.11\,{{\left(-1.8\right)}}^n \newline 0.037\,{5.2}^n +0.017\,{43.0}^n -0.054\,{{\left(-1.8\right)}}^n & 0.11\,{43.0}^n -0.015\,{5.2}^n -0.099\,{{\left(-1.8\right)}}^n & 0.99\,{43.0}^n -\text{5.7e-5}\,{5.2}^n +0.014\,{{\left(-1.8\right)}}^n \end{array}\right) 0.835.2n+7.5e-443.0n+0.17(−1.8)n1.9e-343.0n−0.445.2n+0.44(−1.8)n0.0375.2n+0.01743.0n−0.054(−1.8)n5.2e-343.0n−0.325.2n+0.32(−1.8)n0.175.2n+0.01343.0n+0.81(−1.8)n0.1143.0n−0.0155.2n−0.099(−1.8)n0.04543.0n−1.3e-35.2n−0.044(−1.8)n6.7e-45.2n+0.1143.0n−0.11(−1.8)n0.9943.0n−5.7e-55.2n+0.014(−1.8)n
disp(A/B);
0 0 2.0000
-2.7143 -8.0000 -8.1429
-8.8286 -36.4000 -31.4857
disp(A\B);
0.5948 0.1648 1.0000
0.6466 -1.0715 0
-0.0431 0.0989 0
a1 = [-5 -1 -5 -1 5]';
a2 = [-2 2 -10 2 10]';
a3 = [-3 3 -5 3 5]';
a4 = [0 1 -1 1 1]';
a5 = [-1 1 -11 1 11]';
mat = [a1 a2 a3 a4 a5];
disp(rref(mat));
1.0000 0 0 -0.1667 0
0 1.0000 0 0.0667 1.4000
0 0 1.0000 0.2333 -0.6000
0 0 0 0 0
0 0 0 0 0
由题意可知,a1,a2,a3为极大无关组,其中
a4
= - 0.1667a1 + 0.0667a2 + 0.2333a3
a5
= 1.4000a2 - 0.6000a3
第8题以后有较多图片,防止图片盗用,实验周内不予展示
模块二
初始化:
min_x = 10000;
delta = 0.1;
% x_1 = -3;
% x_2 = -3;
% x_3 = -3;
fun = @(x)(x*1.00000)^4 - 2^x;
1).
绝对值普通遍历:
flag = 0;
for x = -2:delta:2
if fun(x) * fun(x + delta) <= 0
if flag == 0
flag = 1;
if abs(fun(x)) < abs(fun(x + delta))
x1 = x;
else
x1 = x + delta;
end
else
if abs(fun(x)) < abs(fun(x + delta))
x2 = x;
else
x2 = x + delta;
end
end
end
end
disp([x1,x2]);
-0.9000 1.2000
2).
精度聚焦遍历:
x1 = -2;
x2 = -2;
fun_ = @(x) abs(x^4 - 2^x);
microdelta = delta/100000;
flag = 0;
X = ones([1,2]);
x_1 = -2;
x_2 = x_1 + delta;
x_3 = x_2 + delta;
for x_1 = -2:delta:2-2*delta
x_2 = x_1 + delta;
x_3 = x_2 + delta;
if fun_(x_2)<fun_(x_1)&&fun_(x_2)<fun_(x_3)&&flag<=1
if flag==0
min1 = fun_(x_2);
for j = x_1:microdelta:x_3
if fun_(j) <= min1
min1 = fun_(j);
x1 = j;
end
end
else
min2 = fun_(x_2);
for j = x_1:microdelta:x_3
if fun_(j) <= min2
min2 = fun_(j);
x2 = j;
end
end
end
flag = flag + 1;
end
end
disp([x1,x2]);
-0.8613 1.2396
3).
使用matlab的函数:
disp(fminbnd(fun_, -2, 0));
-0.8613
disp(fminbnd(fun_, 0, 2));
1.2396
首先在合适的区域内画出图像:
figure(1);
x_domain = -4:0.01:4.5;
y2 = zeros([1,length(x_domain)]);
fun2 = @(x)exp(x) - 3 .* m .* x.^2./(m + 100);
plot(x_domain,fun2(x_domain),'b-',x_domain,y2,'--r');
title('II-2');
如图II-2,结合函数性质,可以判断在x<-1以及x>4时图像分别趋近于-Inf和Inf,则可知根落于
(-1,4)之间。同时,由红色辅助线可以观察到函数共有三个根。
我们在此猜测,函数的三个根分别为-0.5,1,3.2
猜测根值配合matlab中的fzero函数可求得精确根如下:
XA = [-0.5 1 3.2];
RO = [-0.5 1 3.2];
for i = 1:3
RO(i) = fzero(fun2, XA(i));
disp(['Root',num2str(i),': ', num2str(RO(i))]);
end
Root1: -0.49989
Root2: 1.1283
Root3: 3.2348
防止抄袭,第3题以后笔者不予展示
模块三
防止抄袭,此部分笔者不予展示
模块四
防止抄袭,此部分笔者不予展示
模块五
综合练习一
防止抄袭,此部分笔者不予展示
如需获取相关帮助的,可由我的Github页面联系到我,或评论区留言
个人感想
下面我来谈一谈我对于数学实验周学习的感受。
一、关于matlab
我接触matlab的时间约一周左右。在接触这个软件之前我对于它几乎无感,我认为像python之类的语言配合其强大的拓展库可以完全替代它,比如matplotlib能够替代几乎所有matlab的绘图功能。然而真正在使用了matlab的r2024a版本的绘图后我发现它能够让用户在UI界面互动式地作图,协助用户完成代码,而这是特定语言一个库所不能够实现的,它对于低代码的用户来说相对比较友好,用起来更加顺手。而且我最初下载matlab时我就发现它至少是一款紧跟时代发展的软件,它的拓展库涵盖了在AI领域的RL、CV等。尽管我们的课程体系中极少提及相关的拓展库,但是我还是尝试性地下载了一部分拓展的app,然而效果是令我极为震撼的,比如Deep Network Designer居然可以随意拖拽一些现成的网络层、激活函数等等就可以像一个流程图一样搭建一个机器学习模型,以往在python中可能需要用一些代码来实现,看起来会有一些费劲,然而matlab将神经网路的可视化做得很好。总之这提示了我未来在解决一些项目问题时除了python外还可以考虑使用matlab。
在学习matlab这个软件的过程就像是在学一个语言的特定的一个库的过程(就和matplotlib一样),其实一旦有了数学上的基础以及接触过编程语言等等就可以极快地上手,在遇到一些所谓的小问题时除了查官方文档或者Google以外还可以适当的借力大语言模型,因为语言是死的,往往最高效的解决方案就是借助大模型来解决一些语法问题。
二、关于数学建模
数学建模和学习matlab一样,都需要比较扎实的数学功底,比如实验中涉及的大量线性代数以及高等数学方面的知识,如果没有这部分知识一些模型是几乎无法被建立的。另外就是要对实际问题有一种深入的洞察力,根据一些现象或者自己创造出一些实验现象来观察最终的结果与哪些因素相关,在这些结果与因素中又能否用数学的语言去描绘,去近似,这大体就应该是数学建模的一个思路吧。
三、意见与建议
1.首先,最需要提出的建议,就是取消手抄实验报告的机制。老师们这么做可能是为了防止同学们复制粘贴就把作业交上来,但是个人认为手抄代码实再是不可取,因为这非常地耗时间精力,而且完全没有必要,对于一些已经把作业都写在mlx或者m里但纸质作业都没有碰的同学实在是太痛苦了。笔者认为,对于作业抄袭的避免就是提高抄袭作业的代价(比如综合实验的要求雷同就不及格这一点提出的比较令人满意,其他题目皆可效仿,比如将所有题目都引入学号变量,在查作业的时候建议直接使用自动化脚本查重即可。)
2.关于课程设置上,老师从第一节课一上课开始就说最后的线性规划可能上不完,课上老师的讲课速度在一些地方比较快,可以感受到可能我们的课程课时会有一些紧张。所以建议适当增加课时,比如把周一也算上上课时间。
3.智慧课堂的回放还没有跟上,还维持着原先的教学课表进行拍摄,数学实验的课程也不在智慧课堂回放中。