Main Content

使用实时编辑器创建交互式课程材料

下面是一个如何在课堂中使用实时脚本的示例。以下示例演示如何:

  • 添加方程用于解释底层数学原理。

  • 执行 MATLAB® 代码的各个节。

  • 纳入绘图以实现可视化。

  • 使用链接和图像提供支持信息。

  • 使用 MATLAB 代码进行交互式试验。

  • 使用其他示例加深概念理解。

  • 使用实时脚本进行赋值。

计算 1 的 n 次方根意味着什么?

为您要讲解的概念添加方程以解释底层数学原理。要添加方程,请转至插入选项卡并点击方程按钮。然后,从方程选项卡中选择符号和结构体。

现在我们探讨如何计算 1 的根。计算 1 的 n 次方根意味着什么?1 的 n 次方根是方程 xn1=0 的解。

对于平方根,很容易计算。值为 x=±1=±1。对于高阶根,则要困难很多。要计算 1 的立方根,需要对方程 x31=0 求解。我们可以分解此方程以获取

(x1)(x2+x+1)=0.

因此,第一个立方根是 1。现在,我们可以使用二次公式获取第二个和第三个立方根。

x=b±b24ac2a

计算立方根

要执行 MATLAB 代码的各个节,请转至实时编辑器选项卡,然后点击运行节按钮。输出与创建它的代码显示在一起。使用分节符按钮创建节。

在示例中,abc 都等于 1。其他两个根基于下列公式计算得到:

a = 1 ; b = 1 ; c = 1;
roots = [];
roots(1) = 1;
roots(2) = (-b + sqrt(b^2 - 4*a*c))/(2*a);    % Use the quadratic formula
roots(3) = (-b - sqrt(b^2 - 4*a*c))/(2*a);

因此 1 的完整立方根集合为:

disp(roots')
   1.0000 + 0.0000i
  -0.5000 - 0.8660i
  -0.5000 + 0.8660i

在复平面中显示根

在实时编辑器中纳入绘图,以便学生以可视方式了解重要概念。

我们可以在复平面中以可视方式呈现根以查看其位置。

range = 0:0.01:2*pi;                              
plot(cos(range),sin(range),'k')                % Plot the unit circle                 
axis square; box off
ax = gca;
ax.XAxisLocation = 'origin';
ax.YAxisLocation = 'origin';
hold on
plot(real(roots), imag(roots), 'ro')           % Plot the roots

Figure contains an axes object. The axes object contains 2 objects of type line. One or more of the lines displays its values using only markers

计算高阶根

要添加支持信息,请转至插入选项卡,然后点击超链接图像按钮。学生可以在课堂外使用支持信息了解课程主题。

一旦超过 n=3,情况会变得更加棘手。可以使用 Lodovico Ferrari 在 1540 年发现的四次公式来获取 4 次方根。但此公式较长且难以处理,对于计算 4 次以上的根没有帮助。幸运地是,17 世纪的法国数学家亚伯拉罕·德·莫弗给出了更好的解决方法。

亚伯拉罕·德·莫弗于 1667 年 5 月 26 日出生于香巴尼地区的维特里。他与 Isaac Newton、Edmund Halley 和 James Stirling 是同代人,并且都是朋友。https://en.wikipedia.org/wiki/Abraham_de_Moivre

他因德·莫弗定理而闻名于世,该定理在复数与三角学之间建立了关联,并且他在正态分布和概率论方面也做出了巨大贡献。德·莫弗撰写了一本关于概率论的书 The Doctrine of Chances,倍受赌博者的推崇。德·莫弗首先发现了比内公式,它是斐波那契数的闭型表达式,该公式将黄金分割率 φn 次幂与第 n 个斐波那契数建立关联。他也是第一个做出中心极限定理假设的人,这一定理奠定了概率论的基础。

德·莫弗定理阐释,对于任何实数 x 和任何整数 n

(cosx+isinx)n=cos(nx)+isin(nx).

这如何帮助我们解决我们的问题?我们还知道,对于任何整数 k

1=cos(2kπ)+isin(2kπ).

因此,根据德·莫弗定理,可以得到

11/n=(cos(2kπ)+isin(2kπ))1/n=cos(2kπn)+isin(2kπn).

计算 1 的 n 次方根

使用实时编辑器对 MATLAB 代码进行交互式试验。添加控件以向学生展示重要参数会对分析产生怎样的影响。要添加控件,请转至实时编辑器选项卡,点击控件按钮,然后从可用选项中进行选择。

我们可以使用此最后一个方程计算 1 的 n 次方根。例如,对于任何值 n,我们可以将值 k=0n1 用于上述公式。我们可以使用此 MATLAB 代码对不同的 n 值进行试验:

n = 6;
roots = zeros(1, n);
for k = 0:n-1
    roots(k+1) = cos(2*k*pi/n) + 1i*sin(2*k*pi/n);    % Calculate the roots
end
disp(roots')
   1.0000 + 0.0000i
   0.5000 - 0.8660i
  -0.5000 - 0.8660i
  -1.0000 - 0.0000i
  -0.5000 + 0.8660i
   0.5000 + 0.8660i

在复平面中绘制的根显示,这些根以 2π/n 间隔等间距分布在单位圆上。

cla
plot(cos(range),sin(range),'k')                   % Plot the unit circle
hold on
plot(real(roots),imag(roots),'ro')              % Plot the roots

Figure contains an axes object. The axes object contains 2 objects of type line. One or more of the lines displays its values using only markers

计算 -1、i 和 -i 的 n 次方根

使用其他示例加深对重要概念的理解。在讲课过程中修改代码以回答问题或者更深入地探讨想法。

只需对上述方法进行延伸,即可计算出 -1、i 和 -i 的根。如果观察一下单位圆,可以看出值 1、i、-1、-i 分别出现在角度 0π/2π3π/2 位置。

r = ones(1,4);
theta = [0 pi/2 pi 3*pi/2];
[x,y] = pol2cart(theta,r);
cla
plot(cos(range),sin(range),'k')           % Plot the unit circle
hold on
plot(x, y, 'ro')                          % Plot the values of 1, i, -1, and -i
text(x(1)+0.05,y(1),'1')                  % Add text labels
text(x(2),y(2)+0.1,'i')
text(x(3)-0.1,y(3),'-1')
text(x(4)-0.02,y(4)-0.1,'-i')

Figure contains an axes object. The axes object contains 6 objects of type line, text. One or more of the lines displays its values using only markers

清楚这一点后,可以对 i 编写以下表达式:

i=cos((2k+1/2)π)+isin((2k+1/2)π).

对等式的两端取 n 次方根,得到

i1/n=(cos((2k+1/2)π)+isin((2k+1/2)π))1/n

通过德·莫弗定理,得到

i1/n=(cos((2k+1/2)π)+isin((2k+1/2)π))1/n=cos((2k+1/2)πn)+isin((2k+1/2)πn).

家庭作业

以实时脚本为基础分配作业。为学生提供课堂中使用的实时脚本,并让学生完成练习,从而测试学生对课堂内容的理解程度。

使用上述方法完成以下练习:

练习 1:编写 MATLAB 代码,计算 i 的 3 个立方根。

% Put your code here

练习 2:编写 MATLAB 代码,计算 -1 的 5 个 5 次方根。

% Put your code here

练习 3:描述计算任意复数的 n 次方根的数学方法。提供该方法所用的方程。

(在此处描述该方法。)

相关主题