在Python中定义并绘制指定函数(含定义域)的技术实现请求
修正代码实现指定函数绘制
初始代码存在以下关键问题:
- 函数定义缺少返回值,且未覆盖要求的三个目标函数
- 生成的x范围不符合
x∈(-4,2)的定义域要求 - 调用了未定义的
myfunc函数 - 仅绘制了单个函数,未完成三个函数的绘制
- 平方根函数
x^(1/2)仅在x≥0时有实数解,未处理该定义域限制
以下是修正后的完整代码:
import numpy as np import matplotlib.pyplot as plt # 定义三个指定函数 def f1(x): return x ** 2 def f2(x): return x - 2 def f3(x): return np.sqrt(x) # 等价于x^(1/2),仅处理x≥0的实数情况 # 生成指定定义域的x值 x_full = np.linspace(-4, 2, 200) # 为平方根函数筛选有效x范围(非负数) x_non_neg = x_full[x_full >= 0] # 创建绘图对象 fig, ax = plt.subplots(figsize=(8, 6)) # 绘制三个函数,用不同颜色区分 ax.plot(x_full, f1(x_full), label='$f(x)=x^2$', color='#1f77b4', linewidth=2) ax.plot(x_full, f2(x_full), label='$f(x)=x-2$', color='#2ca02c', linewidth=2) ax.plot(x_non_neg, f3(x_non_neg), label='$f(x)=x^{1/2}$', color='#ff7f0e', linewidth=2) # 添加坐标轴参考虚线 ax.axhline(y=0, ls='--', c='k', alpha=0.7) ax.axvline(x=0, ls='--', c='k', alpha=0.7) # 设置图表标签与图例 ax.set_xlabel('$x$', fontsize=12) ax.set_ylabel('$f(x)$', fontsize=12) ax.legend(fontsize=12) ax.set_title('Plot of Specified Functions', fontsize=14) # 锁定x轴范围为要求的(-4,2) ax.set_xlim(-4, 2) plt.show()
代码说明:
- 为每个目标函数单独定义并添加返回值,确保计算结果可被调用
- 用
np.linspace(-4, 2, 200)生成符合要求的定义域x值,200个采样点保证曲线平滑 - 针对平方根函数筛选x≥0的部分,避免出现无效的复数运算警告
- 为每个函数设置独特颜色和LaTeX格式的标签,提升图表可读性
- 添加坐标轴参考虚线,方便观察函数与坐标轴的交点
内容的提问来源于stack exchange,提问作者Tsion Tewodros
相关产品推荐
相关产品推荐

