news 2026/5/16 11:37:07

TikZ绘制二次函数详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
TikZ绘制二次函数详解

在 TikZ 中绘制二次函数图像,核心是使用\draw plot命令结合domain选项定义函数定义域,并通过samples控制采样点数量以获得平滑曲线。以下是两种主要方法及详细示例。

方法一:使用直角坐标系与plot命令绘制标准二次函数

这是最直接的方法,通过plot (\x, {<二次函数表达式>})来生成图像。关键点在于函数表达式需用花括号{}包裹,并使用\x作为变量。

\documentclass{article} \usepackage{tikz} % 引入TikZ绘图包 \begin{document} \begin{tikzpicture} % 1. 绘制坐标轴 \draw[->] (-3,0) -- (3,0) node[right] {$x$}; % x轴 \draw[->] (0,-1) -- (0,5) node[above] {$y$}; % y轴 \draw[very thin, gray] (-2.9,-0.9) grid (2.9,4.9); % 辅助网格 % 2. 绘制二次函数 y = x^2 \draw[domain=-2:2, smooth, thick, blue] plot (\x, {\x*\x}) node[right] {$y=x^2$}; % % 参数说明: % domain=-2:2 定义x的取值范围为[-2, 2] % smooth 使曲线平滑 % thick, blue 定义线宽和颜色 % plot (\x, {\x*\x}) 核心绘图命令,计算每个\x对应的y值 % 3. 可选:标记顶点 \filldraw[red] (0,0) circle (2pt) node[below right] {顶点(0,0)}; % 绘制点 \end{tikzpicture} \end{document}

代码解析与效果

  • 此代码绘制了函数 $y = x^2$ 在区间 $[-2, 2]$ 上的图像。
  • \draw[->]用于绘制带箭头的坐标轴 。
  • grid命令添加了辅助网格,便于观察坐标 。
  • plot (\x, {\x*\x})是核心,TikZ 会计算定义域内每个采样点\x对应的\x*\x值并连接成线 。
  • node[right] {$y=x^2$}为曲线添加了标签。
  • 最终生成一个开口向上、顶点在原点的蓝色抛物线。

方法二:使用function库与declare function定义复杂二次函数

对于系数复杂或需要重复调用的二次函数,可以使用\usetikzlibrary{math}declare function预先定义函数,使代码更清晰。

\documentclass{article} \usepackage{tikz} \usetikzlibrary{math} % 引入数学计算库,用于复杂函数定义 \begin{document} \begin{tikzpicture} % 预先声明二次函数 f(x) = -0.5*x^2 + 2*x + 1 \tikzmath{ function f(\x) { return -0.5*\x*\x + 2*\x + 1; }; } % 绘制坐标轴 \draw[->] (-1,0) -- (5,0) node[right] {$x$}; \draw[->] (0,-1) -- (0,4) node[above] {$y$}; % 使用已定义的函数 f(x) 进行绘图 \draw[domain=-0.5:4.5, samples=50, smooth, thick, red] plot (\x, {f(\x)}) node[above right] {$y=-\frac{1}{2}x^2+2x+1$}; % % samples=50 增加了采样点,使曲线更精确 % 标记关键点:顶点和与y轴交点 \tikzmath{ \xVertex = 2; % 顶点横坐标 x = -b/(2a) \yVertex = f(\xVertex); } \filldraw[blue] (\xVertex, \yVertex) circle (2pt) node[above left] {顶点(2,3)}; % \filldraw[blue] (0, {f(0)}) circle (2pt) node[left] {与y轴交点(0,1)}; % \end{tikzpicture} \end{document}

代码解析与优势

  • 此方法绘制了 $y = -\frac{1}{2}x^2 + 2x + 1$ 的图像。
  • \tikzmath环境允许进行变量计算和函数声明,这里定义了f(\x)
  • samples=50指定了采样点数量,对于变化剧烈的曲线,增加此值可避免图像锯齿化。
  • 通过计算标记了顶点 $(2, 3)$ 和与y轴的交点 $(0, 1)$,使得图形更具信息性。
  • 这种方法将数学计算与绘图分离,提高了代码的可读性和可维护性,尤其适合绘制多个相关函数或进行动态标注。

关键参数对比与选择建议

为了更清晰地展示不同参数对绘图效果的影响,下表对比了核心选项:

参数/命令作用与示例值对图像的影响适用场景
domain定义变量范围,如-2:2决定了函数在x轴上的显示区间。绘制函数的局部或全部特征。
samples采样点数量,如 `
25,
100`值越大,曲线越平滑,但编译时间可能增加。默认通常为25。对于二次函数,25通常足够;若domain范围极大或需极高精度,可增加。平衡图像质量与编译效率。
smooth布尔选项(加或不加)启用后,TikZ 会在采样点间进行插值,生成光滑曲线。绘制函数图像时应始终启用几乎所有连续函数的绘图。
plot表达式plot (\x, {a*\x*\x + b*\x + c})直接定义函数关系。表达式需用{}包裹,支持四则运算和幂运算(\x^2\x*\x)。标准二次函数或简单表达式。
declare functiondeclare function={f(\x)=-\x*\x/2+2*\x+1;}预先定义函数名,便于重复调用和复杂计算。函数需要多次绘制、用于计算坐标或表达式复杂时。

综合建议:对于简单的二次函数(如 $y=ax^2+bx+c$),直接使用方法一plot命令最为快捷。若需要绘制多个函数、添加复杂的标注或进行图像变换(如平移、缩放),则推荐采用方法二,通过函数定义库使代码结构更清晰。无论哪种方法,确保smooth选项被启用,并根据domain范围适当调整samples数量,是获得高质量函数图像的关键 。


参考来源

  • 如何在 LaTeX 中画一个树状图(使用tikz和tikz-qtree包中的宏绘制树、森林、二叉树)
  • 用tikz画球坐标系下的体积微元
  • Latex-TiKZ绘制数学平面几何图教程
  • tikz 折线 箭头_4. TikZ画箭头、网格、圆、点、椭圆、圆弧
  • tikz 折线 箭头_[LaTeX 绘图] tikz 绘制流程图,概述和两个示例
  • Tikz 画流程图
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/16 11:37:07

2025届必备的六大AI论文网站实际效果

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 源于人工智能技术的迅猛发展&#xff0c;“一键生成论文”软件适时出现&#xff0c;成了助力…

作者头像 李华
网站建设 2026/5/16 11:34:36

从VLP-16到RS-Helios:手把手教你扩展lidar_IMU_calib支持自定义激光雷达

从VLP-16到RS-Helios&#xff1a;激光雷达与IMU标定框架的深度适配指南 在自动驾驶和机器人定位领域&#xff0c;激光雷达与IMU的联合标定是构建精准感知系统的关键环节。浙大开源工具lidar_IMU_calib因其无目标标定的便捷性受到广泛关注&#xff0c;但官方实现仅支持Velodyne …

作者头像 李华
网站建设 2026/5/16 11:33:34

XAgent智能体框架:从原理到实践,构建可靠AI执行系统

1. 项目概述&#xff1a;当大模型学会“用工具”最近在折腾AI应用落地的朋友&#xff0c;估计没少为“幻觉”和“逻辑链断裂”头疼。你让一个大语言模型写个代码、分析个数据&#xff0c;它可能头头是道&#xff0c;但一旦任务变得复杂、需要多步骤执行和外部工具调用时&#x…

作者头像 李华
网站建设 2026/5/16 11:33:20

Motrix WebExtension:让浏览器下载体验升级的专业解决方案

Motrix WebExtension&#xff1a;让浏览器下载体验升级的专业解决方案 【免费下载链接】motrix-webextension A browser extension for the Motrix Download Manager and its forks 项目地址: https://gitcode.com/gh_mirrors/mo/motrix-webextension 你是否曾经因为浏览…

作者头像 李华
网站建设 2026/5/16 11:32:46

用HX711和STM32做个电子秤?不,我偏要测气压!保姆级校准与代码避坑

从电子秤到气压计&#xff1a;HX711传感器的跨界应用实战 1. 当重量传感器遇上气压测量 在嵌入式开发领域&#xff0c;HX711传感器几乎成为了电子秤项目的标配。这颗24位高精度ADC芯片以其出色的性价比和稳定的性能&#xff0c;长期占据着重量测量应用的首选位置。但鲜为人知的…

作者头像 李华
网站建设 2026/5/16 11:31:17

如何用Zotero Duplicates Merger插件快速清理文献库重复条目

如何用Zotero Duplicates Merger插件快速清理文献库重复条目 【免费下载链接】ZoteroDuplicatesMerger A zotero plugin to automatically merge duplicate items 项目地址: https://gitcode.com/gh_mirrors/zo/ZoteroDuplicatesMerger 还在为Zotero文献库中堆积如山的重…

作者头像 李华