matlab中怎么对由两个一维数组绘出的曲线求积分

比如这个图形,分别由x,y两个一维数组绘出的点图连成的曲线,要怎么求积分呢?

    可以先用ployfit将数据拟合成一个多项式,然后再对这个多项式求积分。不过你这个图形很难用多项式进行拟合,所以该方法虽然简单,但在这不可取。

    自己编写图形积分m函数。这种方法适合用于数据点很密集的情况,即用两个函数值的平均值代替小矩形的高,在乘以矩形的宽就行。这里给个算法流程。

    1)n=length(x);m=length(y);        求向量的长度,如果n~=m,则输入参数有误

    2)int = 0;                                    求面积

         for i=1:n-1

              int=int+(x(i+1)-x(i))*(y(i+1)+y(i)/2);

    3)返回int

    如果曲线不好拟合,而且数据点也不密。可以先interpl插值函数进行插值,再用上面第二种方法。

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-01-21
原来的数据是x,y
那么
inty=cumtrapz(x,y);%梯形近似

plot(x,inty);%绘制积分曲线

如果不是需要曲线,而只需要原来整个曲线下的面积
S=trapz(x,y);%梯形近似

matlab中怎么对由两个一维数组绘出的曲线求积分
可以先用ployfit将数据拟合成一个多项式,然后再对这个多项式求积分。不过你这个图形很难用多项式进行拟合,所以该方法虽然简单,但在这不可取。自己编写图形积分m函数。这种方法适合用于数据点很密集的情况,即用两个函数值的平均值代替小矩形的高,在乘以矩形的宽就行。这里给个算法流程。1)n=length(x...

matlab 两个一维数组用plot能出曲线图,但为什么不能用trapz算出曲线积 ...
trapz实际就是数据的累加积分,所以只要其中有一点nan数据,组后的结果都是nan nan的意思是not a number 不是数产生于0\/0,inf\/inf,0*inf...等未定型运算结果 你的公式是含指数的公式,很可能产生一些极大,极小的数,运算后就会产生nan

matlab编程。有两个一维数组X和Y,是坐标的关系,如何取得某个X区间内Y...
max(reshape(x,[],6))

Matlab中,如何将两个一维数组画在一起
加个hold on 就可以了

x,y分别为一维数组,求dy\/dx,用matlab怎么求呀?各位大侠帮忙看看呗,先...
dx = convn( y, [1 -1] ) ; % x derivatives of y. 卷积后会增加一个元素 dxs = convn( ux, [1 1] \/ 2, 'valid' ) ; %每行中相邻两个元素取中值 减少一个元素 dxs为结果

matlab如何实现两个连续信号的卷积?
matlab% 定义两个连续信号signalA = [1 2 3 4 5];signalB = [1 2 2 2 1];% 选择一个卷积核,例如一个具有加权系数的数组kernel = [1 1 1];% 计算卷积结果convResult = conv(signalA, kernel);% 输出卷积结果disp(convResult);通过上述步骤和代码示例,您可以在MATLAB中实现两个连续...

matlab中怎么比较两个一维数组各对应数值的大小?
你的t步长太小了,稍微给大点,由图可以看出sint--sawtooth(t)后值得变化情况,具体值在矩阵y中 t=0:0.01:1;y1=sin(t);y2=sawtooth(t);y=y1-y2; %作差之后的矩阵 plot(t,y)

在matlab中,怎样将两个一维数组中的元素分别相乘,然后将结果存入新数...
a = [1, 2, 3]; b = [4, 5, 6]; c = a .* b;

matlab两个一维数组相减
在Z=A-B后面加分号;系统后台会进行计算,但是不会显示计算结果

怎么把两个一维数组放到一个一位数组里面
假如Inc与 Qnc是两个已知的一维数组,用下面的语句就可以实现你说的要求。 xn=[Inc Qnc]; xn为Inc 与Qnc的首尾相连的数组了。可以参考matlab基础相关书籍

相似回答