用python编写程序:用迭代法求,20K6F9S)VFPZ0HF[PDYJ}GS.png,求平方根的迭代公式为:Y@`7~2]C9}EPXD]GDSM`A4V.png
时间: 2023-06-13 16:08:39 浏览: 72
以下是用 Python 编写的求平方根的迭代代码:
```python
def sqrt_iterative(n, guess, tolerance):
"""
使用迭代法求平方根
:param n: 待求平方根的数
:param guess: 初始猜测值
:param tolerance: 精度要求
:return: 平方根的近似值
"""
while abs(guess ** 2 - n) > tolerance:
guess = (guess + n / guess) / 2
return guess
# 测试
print(sqrt_iterative(2, 1, 0.0001)) # 输出 1.4142156862745097
```
其中,参数 `n` 为待求平方根的数,`guess` 为初始猜测值,`tolerance` 为精度要求。在迭代中,如果当前猜测的平方与 `n` 的差的绝对值小于指定的精度要求,迭代结束并返回当前的猜测值。否则,根据牛顿迭代公式更新猜测值,继续进行迭代。最终得到的猜测值即为平方根的近似值。
相关问题
【问题描述】用迭代法求,20K6F9S)VFPZ0HF[PDYJ}GS.png,求平方根的迭代公式为:Y@`7~2]C9}EPXD]GDSM`A4V.png。 【输入形式】a的值使用input函数从键盘输入。 【输出形式】求得的平方根使用print函数输出。
以下是求平方根的迭代代码实现:
```python
a = float(input("请输入一个数字:")) # 从键盘输入一个数字
x = a/2 # 初始化迭代值为a的一半
while abs(x*x - a) > 1e-9: # 当迭代值与真实值的误差小于1e-9时停止迭代
x = (x + a/x) / 2 # 根据迭代公式更新迭代值
print("平方根为:", x) # 输出求得的平方根
```
其中,`abs(x*x - a)` 表示迭代值与真实值的误差,`1e-9` 表示误差的阈值,即当误差小于1e-9时停止迭代。
用keil编写定时器设计倒计时9s程序(用一位七段数码管)
以下是使用Keil编写的定时器倒计时9秒程序,利用了`TM1637`库来控制七段数码管的显示:
```c
#include <reg52.h>
#include <intrins.h>
#include "TM1637.h" // 引入TM1637库
// 数码管的引脚定义
#define DIO P2_0
#define CLK P2_1
// 定义计时器的初值和计数器
#define TH0_INIT 0x3C
#define TL0_INIT 0xAF
unsigned int count = 0;
// 定时器中断服务函数
void timer0() interrupt 1
{
TH0 = TH0_INIT; // 重新设置初值
TL0 = TL0_INIT;
count++; // 计数器加1
if (count == 9000) // 9秒钟
{
count = 0; // 计数器清零
TM1637_display(8); // 显示倒计时的秒数
}
}
void main()
{
// 初始化定时器
TMOD |= 0x01; // 设置为模式1,16位定时器
TH0 = TH0_INIT;
TL0 = TL0_INIT;
ET0 = 1; // 允许定时器0中断
// 初始化数码管
TM1637_init(DIO, CLK);
TM1637_brightness(BRIGHT_TYPICAL);
// 启动定时器
TR0 = 1;
while (1)
{
// 程序等待中断
}
}
```
在该程序中,通过`TM1637`库控制数码管的引脚。程序中定义了定时器的初值和计数器,并在定时器中断服务函数中实现了倒计时的功能。在`main`函数中,初始化定时器和数码管,启动定时器后程序进入一个死循环等待中断。