山东大学 软件学院 张鹏分享 http://blog.sciencenet.cn/u/algzhang Peng ZHANG - School of Software, Shandong University

博文

如何用Latex输出单纯形表

已有 1352 次阅读 2023-6-3 13:18 |系统分类:科研笔记

单纯形算法是解线性规划的著名算法,几乎在每一本运筹学或最优化方法教材中都有讲述。对于小规模的线性规划,单纯形算法的运算过程可以组织在表格中,以便于手工计算,这个表格称为单纯形表。单纯形表有它自己的格式,如下图所示。

stab-s.png


单纯形表的背后是这样子的,只是有一些线段“不显示”:

stab-b.png


在WORD中,“不显示”的线段可以用表格的“单元格格式”将线段设置成白色,即可以达到

有表格线但是不显示的效果。但这在Latex中如何实现呢?


许久以来,我不知道在Latex中的表达方法,只好把单纯形表画成了下面这样:

stab-0.png


经过在网络上长时间的搜寻和不断尝试,最后终于解决了我的问题。实际上,并不需要复杂的Latex命令,关键的需要两个:一个是cline,一个是multicolumn。


\documentclass{article}



\begin{document}

\begin{tabular}{c|ccccc|c|}

  \multicolumn{1}{c}{} &

  \multicolumn{1}{c}{$x_1$} &

  \multicolumn{1}{c}{$x_2$} &

  \multicolumn{1}{c}{$x_3$} &

  \multicolumn{1}{c}{$x_4$} &

  \multicolumn{1}{c}{$x_5$} \\

  \cline{2-7}

   & 8 & 9 & 0 & 0 & 0 & 5\\

  \cline{2-7}

  $x_3$ & 2 & 2 & 1 & 0 & 0 & 1 \\

  $x_4$ & 3 & $-1$ & 0 & 1 & 0 & 2 \\

  $x_5$ & 0 & 3 & 0 & 0 & 1 & 3 \\

  \cline{2-7}

\end{tabular}

\end{document}


(请使用WORD的全角半角转换功能将上述代码转成半角。方法:WORD“开始”按钮栏中点击“Aa转换按钮”,在出现的下拉菜单中选择“全角”或“半角”。)


这段Latex代码,就能输出最上面的图想要的单纯形表。\cline{2-7}这个命令,表示横线是从第2列到第7列,这就解决了“不贯通”的横线的问题。还有“不贯通”的竖线,怎么解决呢?这里卡了我很长时间,虽然知道有multicolumn命令,但总以为multicolumn是把多列合并成一列的,和单元格的竖线没有关系。实际上,当使用\multicolumn{1}{c}{},即“把一列合并成一列”时,就会去掉单元格两端的竖线!岂不妙哉!

一段小小的Latex代码,能够输出单纯形表,分享给大家。欢迎转载,转载请注明出处。




https://blog.sciencenet.cn/blog-482332-1390398.html

上一篇:《最优化方法》教材出版,科学出版社,2023年4月
收藏 IP: 111.37.23.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-28 03:11

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部