作业帮 > 综合 > 作业

在matlab一维插值中,怎么控制被插值点都大于0?

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/07/17 08:25:38
在matlab一维插值中,怎么控制被插值点都大于0?
如图,不让曲线跑到0以下
假设你的差值结果是y
y(y
再问: 不是,要让曲线从0开始递增,可不可以弄成下面这种曲线:(画得不好哈)
再答: 那得看你什么插值了,你用的什么差值方法,原始数据给我
再问: 轮船的甲板成近似半椭圆面形,为了得到甲板的面积。首先测量得到横向最大相间8.534米;然后等间距地测得纵向高度,自左向右分别为: 0.914, 5.060, 7.772, 8.717, 9.083, 9.144, 9.083, 8.992, 8.687, 7.376, 2.073, 计算甲板的面积。
再答: 你是要用这些点得到一个插值函数呢?还是要算数值积分,也就是曲线下面的面积? 这个要看你要做什么。你只有一些离散点。这样不可能得到一个函数表达式。在没有函数表达式的情况下,你要计算面积需要用梯形公式,牛顿科斯塔公式或者辛普森公式,分别对应1次,2次,3次多项式差值。如果你只是想画出曲线,那就要利用一定的插值方法进行差值。比如3次样条,B样条,多项式插值。而插值结果由不同的差值方法决定。很难局部控制。不知道你为什么要做插值还要让值都大于0,如果是为了算面积。那你一开始可能方法就选错了。 算面积最好用辛普森公式、牛顿科斯塔公式。 因为本身就是很有限的采样点,插值也不能使结果更精确。所以没有必要插值。 如果非要用插值,那你也别用多项式插值。因为用多项式插值也必须是分段低次的,顶多不超过3,然后在积分。那和直接用辛普森、牛顿科斯塔公式完全一样,没有必要。那么假设你用了样条函数(样条函数确实比多项式插值更平滑)。那你就没法局部控制他,但是你肯定用的不是样条,因为用样条不应该出现你的那个形式。我估计你用了多项式插值。 具体你用了什么插值方法,你告诉我。我才能帮你改。
再问: 我这样做的: x=0:0.7112:8.535; y=[0,0.914, 5.060, 7.772, 8.717, 9.083, 9.144, 9.083, 8.992, 8.687, 7.376, 2.073,0]; t=0:0.01:8.534; h=spline(x,y,t); %h(h0.你的做法可以。 matlab的spline就是三次样条函数。