写一个八度音程函数来实现
f(x) = sin(3x)/(0.4+(x-2)^2)
。- 醇>
编写一个八度脚本脚本,在
f(x) = sin(3x)/(0.4+(x-2)^2)
区间内最多9个点均匀采样的x = [0,4]
值之间进行插值。
我很困惑这个问题是什么。我将第一部分解释为定义一个函数fx
,可以从任何地方调用以返回给定f(x)
的{{1}}值,但我不确定{{1}必须是输入。
对于第二部分,我使用x
函数是否正确?
我的尝试:
功能文件 fx.m
x
但这只会为interpl
返回1个值。我需要返回9个均匀间隔的样本。我觉得我需要以某种方式使用function fx
x=(0:0.25:4);
y = sin(3*x)/(0.4+(x-2))^2
endfunction
循环......
脚本 intpl.m
y
答案 0 :(得分:3)
我认为你的老师想要这样的东西:
function y = f(x)
y = ....x..... (fill your formula here but use elementwise operations [1])
endfunction
然后在给定范围内使用此函数:
x = linspace (0, 4, 9);
y = f(x)
如果你想将它放在一个文件foo.m中,请确保不要使用函数定义启动该文件。我通常使用“1;”所以你的脚本foo.m变成了:
1;
function y = f(x)
x = ....;
endfunction
x = linspace (...);
y = f(x)
plot (x, y) # if you want to plot it
[1] https://www.gnu.org/software/octave/doc/interpreter/Arithmetic-Ops.html