如何使用Mathematica绘制指定函数?附Python实现代码
Mathematica实现目标函数绘图(对应Python版本)
原Python代码核心逻辑
先明确你提供的Python代码做了这些事:
- 生成0到2之间的100个等分点作为
k的取值 - 定义
j = 2k,因此j的范围是0到4 - 计算目标函数
I(k,j) = k*j - k² - ln(0.75) - 绘制
j与I的折线图
Mathematica实现代码
(* 生成与Python linspace(0,2,100)对应的k值列表 *) k = Range[0, 2, 2/99]; (* 定义j = 2k *) j = 2*k; (* 定义目标函数,Log对应自然对数,与numpy.log一致 *) I[k_, j_] := k*j - k^2 - Log[0.75]; (* 绘制折线图,Joined->True对应Python的plot默认折线模式,AxesLabel添加坐标轴标签 *) ListPlot[Transpose[{j, I[k, j]}], Joined -> True, AxesLabel -> {"j", "I"}]
简化版(可选)
因为j=2k,可以把函数简化为仅关于j的表达式,直接用Plot绘制连续曲线:
(* 代入j=2k,简化后I(j) = (j/2)^2 - Log[0.75] *) Plot[(j/2)^2 - Log[0.75], {j, 0, 4}, AxesLabel -> {"j", "I"}]
这个版本绘制的是连续曲线,和Python代码的离散折线效果几乎一致(因为采样点足够多)。
内容的提问来源于stack exchange,提问作者caren
相关产品推荐
相关产品推荐

