为什么f(21)评估x = 2的函数?

时间:2018-04-09 08:17:48

标签: matlab function math evaluation

演习的陈述是这样的:

enter image description here

解决方案就是这个:

enter image description here

我无法理解如何评估f=2f=3的功能。为什么评估为f(21)而不是f(2)

2 个答案:

答案 0 :(得分:1)

linspace(a,b)在100分内创建一个从ab的数组,因此linspace(0,3)会创建一个数组[0/33 1/33 2/33, ... 98/33 99/33]

x = 0:0.1:3

创建一个数组[0 0.1 0.2 0.3 ... 2.9 3],即从0开始0.13

f = x.^3.*cos(x+1)

然后为数组x中包含的每个值计算xi^3*cos(xi+1)的值,其中xi是第i个元素。所以f也会有31个元素。第21个元素2将评估f = 2^3*cos(2+1)的函数。

要明确显示此内容,您可以使用

f(x==2)

将为您提供与f(21)相同的答案。 不保证数字相等,使用abs(x-2)<eps或类似的稳定性

请注意,您可以使用“{1}}的”旧“版本评估x=2x=3上的功能,因为xx(67)==2

创建步骤为x(100)==3的数组的替代方法是使用0.1,这会创建一个线性间隔的数组,从linspace(0,3,31)开始,以{{结尾1}}并且0步长相等。当你想要特定数量的步骤而不是特定的步长时,这很有用,所以在这个例子的例子中,我确实使用冒号表示法。

幂和乘法函数331前面的点使MATLAB评估那些元素,这意味着{{1}中的所有元素评估该函数。省略这些点会使MATLAB使用^*作为矩阵运算。

答案 1 :(得分:0)

该行:

x=0:0.1:3

创建一个从0到3的向量,跳数为0.1,如下所示:

0,0.1,0.2,...,1.9,2.0,...3.0

2.0的值是21的索引。 因此,为了推导出f(2)的值,你实际上想要检查函数f(x)的输出是否为索引21处的值,即f(21)