【数理知识】欧拉复数公式

公式:
e i π + 1 = 0 e^{i\pi}+1 = 0 eiπ+1=0

这个方程真的很奇妙,因为它集合了:

  • e e e (欧拉数)
  • i i i (单位 虚数)
  • π \pi π (大名鼎鼎的 pi,一个在很多不同领域都出现的数)
  • 0 和 1(也是不凡的数!)

欧拉公式

这方程其实源自欧拉公式:

e i x = cos ⁡ x + i sin ⁡ x e^{ix} = \cos x + i \sin x eix=cosx+isinx

x = π x = π x=π,我们得到:

e i π = cos ⁡ π + i sin ⁡ π e i π = − 1 + i × 0 ( 因 为 cos ⁡ π = − 1 和 sin ⁡ π = 0 ) e i π = − 1 e i π + 1 = 0 \begin{aligned} &e^{iπ} = \cos π + i \sin π\\ &e^{iπ} = −1 + i × 0 (因为 \cos π = −1 和 \sin π = 0)\\ &e^{iπ} = −1\\ &e^{iπ} + 1 = 0 \end{aligned} eiπ=cosπ+isinπeiπ=1+i×0cosπ=1sinπ=0eiπ=1eiπ+1=0

故此, e i π + 1 = 0 e^{iπ} + 1 = 0 eiπ+1=0 只不过是更有用的欧拉公式的一个特例。

我们可以把任何点(例如 3 + 4 i 3 + 4i 3+4i)变成 r e i x re^{ix} reix 的格式(只需找到 x x x 的值和圆形的半径, r r r

例子 3 + 4 i 3 + 4i 3+4i

把这复数转换为 r e i x re^{ix} reix 的格式,我们要转换笛卡尔坐标为极坐标:

r = ( 3 2 + 4 2 ) = ( 9 + 16 ) = 25 = 5 r = \sqrt{(3^2 + 4^2)} = \sqrt{(9+16)} = \sqrt{25} = 5 r=(32+42) =(9+16) =25 =5
x = arctan ⁡ ( 4 / 3 ) = 0.927 ( 保 留 三 位 小 数 ) x = \arctan( 4 / 3 ) = 0.927 (保留三位小数) x=arctan(4/3)=0.927

所以 3 + 4 i 3 + 4i 3+4i 也可以是 5 e 0.927 i 5e^{0.927 i} 5e0.927i

未完待续…

From: 欧拉复数公式

泰勒级数展开

泰勒级数展开总和符号记法
e x = 1 + x + x 2 2 ! + x 3 3 ! + ⋯ e^{x} = 1+ x + \frac{x^2}{2!} + \frac{x^3}{3!} + \cdots ex=1+x+2!x2+3!x3+ ∑ n = 0 ∞ x n n ! \sum_{n=0}^{\infty} \frac{x^n}{n!} n=0n!xn
sin ⁡ x = x − x 3 3 ! + x 5 5 ! − ⋯ \sin x = x - \frac{x^3}{3!} + \frac{x^5}{5!} - \cdots sinx=x3!x3+5!x5 ∑ n = 0 ∞ ( − 1 ) n ( 2 n + 1 ) ! x 2 n + 1 \sum_{n=0}^{\infty} \frac{(-1)^n}{(2n+1)!}x^{2n+1} n=0(2n+1)!(1)nx2n+1
cos ⁡ x = 1 − x 2 2 ! + x 4 4 ! − ⋯ \cos x = 1 - \frac{x^2}{2!} + \frac{x^4}{4!} - \cdots cosx=12!x2+4!x4 ∑ n = 0 ∞ ( − 1 ) n ( 2 n ) ! x 2 n \sum_{n=0}^{\infty} \frac{(-1)^n}{(2n)!}x^{2n} n=0(2n)!(1)nx2n
1 1 − x = 1 + x + x 2 + x 3 + ⋯ f o r   ∥ x ∥ < 1 \frac{1}{1-x} = 1 + x + x^2 + x^3 + \cdots \quad for\ \|x\|<1 1x1=1+x+x2+x3+for x<1 ∑ n = 0 ∞ x n \sum_{n=0}^{\infty} x^n n=0xn

近似值

你可以用泰勒级数的头几项来估计函数的近似值。

这里是越来越准确的 cos(x) 近似值。红线是 cos(x),蓝线是近似值(自己画图来看看):

From: 泰勒级数展开

欧拉公式,复数域的成人礼

但向量没有乘法(点积、叉积和实数乘法不一样),这就是复数和向量的区别。复数是对实数的扩展,所以要尽量兼容实数,必须要有加减乘除、乘方开方、对数等运算。

可能你还会问,直接替换 x x x i θ i\theta iθ ,合理吗:

在这里插入图片描述

这里是理解欧拉公式的 关键 ,我们要意识到一点,欧拉公式是一种人为的选择,完全可以不这么去定义 e i θ e^{i\theta} eiθ 。但是,做了别的选择,会面临一个问题:会不会在现有的庞大复杂的数学体系中产生矛盾?

打个比方吧,在实数中“除以0 ”是不合理的,假如你想让它变得合理,那么分分钟会导出矛盾:

在这里插入图片描述
欧拉公式并不会引发冲突,并且随着学习的深入,你会发现数学家已经证明了它是一种足够好的选择,这里就不赘述了。

总结

有了欧拉公式后,任何复数都可以表示为:

z = a + b i = r e i θ z = a + bi = r e^{i\theta} z=a+bi=reiθ

其中: r = ∣ z ∣ , θ = a r g ( z ) r=|z|,\quad \theta = arg(z) r=z,θ=arg(z)

个人觉得 a + b i a+bi a+bi 只是复数的初始形态,而 r e i θ re^{i\theta} reiθ 才是复数的完成形态,因为它更具有启发性。

比如计算乘法时:

z 1 = r 1 e i θ 1 , z 2 = r 2 e i θ 2 z_1=r_1e^{i\theta_1},\quad z_2=r_2e^{i\theta_2} z1=r1eiθ1,z2=r2eiθ2

那么有:

z 1 × z 2 = r 1 r 2 e i ( θ 1 + θ 2 ) z_1 \times z_2 = r_1r_2e^{i(\theta_1+\theta_2)} z1×z2=r1r2ei(θ1+θ2)

z 1 ÷ z 2 = r 1 r 2 e i ( θ 1 − θ 2 ) z_1 \div z_2 = \frac{r_1}{r_2}e^{i(\theta_1-\theta_2)} z1÷z2=r2r1ei(θ1θ2)

几何意义更加明显。并且扩展了乘方和对数运算:

a i = e i ln ⁡ a a^i=e^{i\ln a} ai=eilna

ln ⁡ i ⏟ 单 位 圆 上 幅 角 为 π 2 的 点 = ln ⁡ ( e i π 2 ) = i π 2 \ln \underbrace{i}_{单位圆上幅角为\frac{\pi}{2}的点}=\ln \left(e^{i\frac{\pi}{2}}\right)=i\frac{\pi}{2} ln2π i=ln(ei2π)=i2π

到此为止,基本上所有的初等运算都全了。更多高等的运算比如三角函数、积分、导数,也需要借助欧拉公式在复数上进行推广。

欧拉公式中,如果取 θ = π \theta=\pi θ=π ,就得到了欧拉恒等式:

e i π + 1 = 0 e^{i\pi}+1=0 eiπ+1=0

这个公式也被誉为了上帝公式,包含了数学中最基本的 e 、 π 、 i 、 1 、 0 e 、\pi 、i 、1 、0 eπi10 ,仿佛一句诗,道尽了数学的美好。

From: 欧拉公式,复数域的成人礼

<think>好的,我现在要解决用户关于STM32外部中断按键的优先级处理的问题。首先,我需要回忆一下STM32的中断优先级机制。根据引用[3],STM32的中断优先级分为抢占优先级和响应优先级,通过NVIC_PriorityGroup_x来配置这两种优先级的数量。比如,如果选择NVIC_PriorityGroup_2,那么抢占优先级有4个级别,响应优先级也有4个级别。每个中断的优先级需要在这两个部分中分配。 接下来,用户提到按键,这通常涉及到硬件或软件方法。在外部中断中使用按键时,动会产生多次中断,导致误触发。所以需要处理问题。常见的软件方法是在中断服务程序(ISR)中加入延时定时器检测按键的稳定状态。但这里用户特别询问了优先级处理,所以可能需要结合中断优先级来优化处理。 首先,配置外部中断的优先级。假设用户使用的是EXTI0中断,对应的中断处理函数是EXTI0_IRQHandler,如引用[1]所述。需要设置该中断的抢占优先级和响应优先级。比如,可以将按键中断的抢占优先级设为较低,这样其他更高优先级的中断可以打断它,避免影响系统实时性。但具体配置要根据系统需求来定。 然后,考虑处理。在中断服务程序中直接进行延时可能不太合适,因为这会阻塞其他中断。更好的方法是启动一个定时器中断,在按键外部中断触发后,启动定时器,比如10ms后再次检测按键状态。这样,定时器中断的优先级需要合理设置。如果定时器中断的抢占优先级低于按键中断,那么在处理定时器中断时,按键中断无法打断它,这样可以确保的有效性。但需要根据实际应用调整优先级,避免冲突。 此外,引用[3]提到硬件,比如使用RC滤波器,这可以减少软件处理的负担。如果同时使用硬件和软件,中断优先级的配置可能更灵活,因为硬件已经减少了误触发的次数,软件部分可能只需要简单的状态检查。 总结步骤应该是:配置外部中断的优先级,处理(软件或硬件),以及在中断服务程序中合理使用定时器并设置其优先级。同时要注意,在中断服务程序中尽量减少耗时操作,确保系统响应速度。 可能还需要考虑中断标志的清除,避免重复进入中断。例如,在EXTI0的中断处理中,先清除中断标志,然后启动定时器定时器到期后再次读取GPIO状态,确认按键是否稳定按下。这样,定时器的优先级设置需要不影响其他关键任务。 用户的问题还涉及具体实现和配置步骤,可能需要给出代码示例,比如使用HAL配置NVIC,设置优先级,以及在中断服务程序中添加逻辑。同时,提醒用户注意中断处理函数中的延迟操作可能带来的影响,建议使用非阻塞的方式处理,比如状态机或定时器回调。 最后,确保回答结构清晰,分步骤说明优先级配置和处理的实现方法,并引用提供的参考资料作为支持。</think>### STM32外部中断按键的优先级处理及配置 #### 1. **中断优先级配置** STM32的中断优先级通过**抢占优先级**和**响应优先级**(子优先级)共同决定,需通过`NVIC_PriorityGroupConfig()`函数设置优先级分组。例如: - 若选择`NVIC_PriorityGroup_2`,则抢占优先级范围为`0-3`,响应优先级范围为`0-3`(共4级)。 - 配置外部中断(如EXTI0)的优先级时,需分配抢占和响应优先级值: ```c NVIC_InitTypeDef NVIC_InitStruct = {0}; NVIC_InitStruct.NVIC_IRQChannel = EXTI0_IRQn; NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 1; // 抢占优先级 NVIC_InitStruct.NVIC_IRQChannelSubPriority = 0; // 响应优先级 NVIC_InitStruct.NVIC_IRQChannelCmd = ENABLE; HAL_NVIC_Init(&NVIC_InitStruct); ``` 此处将按键中断的抢占优先级设为1,允许更高优先级(如0)的中断打断它[^3]。 #### 2. **按键实现** **软件**通常结合定时器中断实现: 1. **外部中断服务函数**中启动定时器: ```c void EXTI0_IRQHandler(void) { HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_0); // 清除中断标志 HAL_TIM_Base_Start_IT(&htim2); // 启动定时器(例如TIM2) } ``` 2. **定时器中断服务函数**中检测按键稳定状态: ```c void TIM2_IRQHandler(void) { HAL_TIM_IRQHandler(&htim2); if (HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0) == GPIO_PIN_RESET) { // 执行按键动作 } } ``` 3. **配置定时器优先级**(需低于按键中断的抢占优先级): ```c NVIC_InitStruct.NVIC_IRQChannel = TIM2_IRQn; NVIC_InitStruct.NVIC_IRQChannelPreemptionPriority = 2; // 低于EXTI0的抢占优先级 HAL_NVIC_Init(&NVIC_InitStruct); ``` #### 3. **硬件优化** 在按键电路中添加RC滤波电路(如10kΩ电阻 + 0.1μF电容),减少动信号对中断的触发次数,降低软件处理负担[^3]。 #### 4. **注意事项** - 中断服务函数应尽量简短,避免阻塞其他中断。 - 清除中断标志必须在服务函数开始处执行,防止重复触发。 - 若系统需要实时性,可提高定时器中断的响应优先级。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zhao-Jichao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值