使用mathematica的FunctionInterpolation函数对一个已知函数进行修正,出错,……原问题比较复杂一些,这里简化一下:shiyan = FunctionInterpolation[If[t Plot[shiyan[t],{t,0,10}(*,PlotRange->All*)]原本期望看到一条t=5以前截距为1,5以后(延长之后)截距-1的分段曲线,可实际画出的图,5之后出现了一个大峡谷……原因不明,求教.

问题描述:

使用mathematica的FunctionInterpolation函数对一个已知函数进行修正,出错,
……原问题比较复杂一些,这里简化一下:
shiyan = FunctionInterpolation[If[t Plot[shiyan[t],{t,0,10}(*,PlotRange->All*)]
原本期望看到一条t=5以前截距为1,5以后(延长之后)截距-1的分段曲线,可实际画出的图,5之后出现了一个大峡谷……原因不明,求教.

你可以看下帮助里的“近似函数和插值”教程,里面说了“InterpolatingFunction 对象包含以插值为基础的近似函数表示.它可以包含一系列点处的函数和导数值.它假定函数在这些点之间是光滑的……”所以你这种激烈变化的分段函数的插值结果会奇怪也很正常”