You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Mathematica中实现函数的非等间隔求值并生成对应表格?

生成非等间隔/对数间隔的函数值表格(Mathematica)

没问题,在Mathematica里生成非等间隔的函数值表格其实很灵活,有几种常用的方法,我给你一一说明:

方法1:直接使用自定义的x取值列表

如果你已经明确知道x的具体取值(比如你提到的[1,1.2,2,3,6,10]),最简单的方式就是把这个列表直接传入Table,或者用更简洁的Map操作(/@符号):

# 先定义示例函数(替换成你的f1[x]即可)
f1[x_] := x^2;

# 方式1:用Table生成
d1 = Table[f1[x], {x, {1, 1.2, 2, 3, 6, 10}}];
(* 输出结果:{1, 1.44, 4, 9, 36, 100} *)

# 方式2:用Map操作(更简洁高效)
d1 = f1 /@ {1, 1.2, 2, 3, 6, 10};

方法2:生成对数间隔的序列

如果需要对数均匀分布的x值,Mathematica内置了LogSpace函数,专门用来生成对数间隔的数值序列。比如在1到10之间生成5个对数间隔的点:

# 生成1到10之间的5个10进制对数间隔点
xVals = LogSpace[Log10[1], Log10[10], 5];
(* 输出结果:{1, 10^(1/4), 10^(1/2), 10^(3/4), 10},约等于 {1, 1.778, 3.162, 5.623, 10} *)

# 生成对应的函数值表格
d1 = f1 /@ xVals;

如果需要自然对数间隔,只需把Log10换成Log即可:

xVals = LogSpace[Log[1], Log[10], 5];

方法3:自定义非线性间隔规则

如果需要更灵活的非线性间隔(比如按平方、指数等规律分布),可以手动生成符合规则的x序列。比如想要x从1到10,按二次曲线增长的间隔:

# 生成6个点,从1到10,按二次比例增长
xVals = Table[1 + 9*(t/5)^2, {t, 0, 5}];
(* 输出结果:{1, 1.36, 2.44, 4.24, 6.76, 10} *)

# 生成函数值表格
d1 = f1 /@ xVals;

你可以根据需求修改生成xVals的表达式,比如用指数函数生成指数增长的间隔:

xVals = Table[1 + 9*(Exp[t/5]-1)/(Exp[1]-1), {t, 0, 5}];

内容的提问来源于stack exchange,提问作者Vishal Parmar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 15:44:06