matlab离散数据积分怎么做?高手请进!!!!!!!!!!!!!
下面的搞这么麻烦
一个命令就搞定了
比如你读入的数组是A,你要其中的第三列计算sum
那么sum3=sum(A(:,3));
平均值 就是 mean3=mean(A(:,3));
就可以了
很简单的事
还有你想画图,比我想用第一和第二列数据画图
plot(A(:,1),A(:,2));
就可以了·~~
用MATLAB软件画散点图,然后去模拟接近真实函数,得到最接近真实函数的函数。至于你说MATLAB画撒点图的代码,那你就百度吧,太基础了。
t=0:0.01:2*pi;x=sin(t);
s_x=cumtrapz(t,x);%s_x就是x的数值积分
plot(t,x,t,s_x)
___________
楼主请您明白一点,sin(t)的不定积分是-cos(t)+C,C是任意常数,而用数值方法作出来的是定积分,是sin(t)从0积到t的积分,因此在t=0时,就是0。根据牛顿-莱布尼茨定理,其实积出来的是-cos(t)+cos(0)即1-cos(t),这才是定积分的函数曲线。从你的贴图上看,matlabguy的结果和我的结果也是一样的,都是1-cos(t),而不是您所说的cos(t)+1。你一定要得到-cos(t)的话,就把s_x再减去1即可。还有,-cos(t)和sin(t)的曲线不是重合曲线,是两条不同的曲线,甚至相互正交。要处理离散数据积分,在这几个回答之中也只有我这个方法可行了,因为你没有函数关系,无法调用Simpson函数。
数值积分有很多种方法, 如下图所示(来自wikipeida)
前面几位的回答,分别对应了里面一种算法,另外,数值积分得到的是一个值,如果你需要画图的话,那是代数积分。
保存为mytest.m
function mytest
a=0;
b=2*pi;
n=100;
f=@(x)sin(x);
y=intSimpsons(f,a,b,n);
t=linspace(a,b,n);
y=intSimpsons(f,a,b,n)
function I = intSimpsons(f,a,b,n)
h=(b-a)/n; xi=a:h:b;
I= h/3*(f(xi(1))+2*sum(f(xi(3:2:end-2)))+4*sum(f(xi(2:2:end)))+f(xi(end)));
将下面内容保存为Simpson.m
function y= Simpson(f,a,b,M)
% f被积函数;a积分下限;b积分上限;M子区间个数(将x分为多少个区间)
if M==0
y=0;
else
h=(b-a)/(2*M);
s1=0;
s2=0;
for i=1:M
x=a+(2*i-1)*h;
s1=s1+feval(f,x);
end
for j=1:(M-1)
x=a+2*j*h;
s2=s2+feval(f,x);
end
y=h/3*(feval(f,a)+2*s2+4*s1+feval(f,b));
end
在命令行输入
f=@(t)sin(t);
I=[];
M=floor(2*pi/0.01);
for i=0:M
y=Simpson(f,0,2*pi/M*i,i);
I=[I,y];
end
t=0:0.01:2*pi;
plot(t,I);
我服了你了,sint和-cost曲线重合?sint积分得到的是-cost+C,常数C由初始条件决定,一般我们都认为从0开始积分,此时C=1。
数据积分的话用greatdju的方法就行了,他那个结果对,你自己琢磨吧。
怎么用MATLAB对一组离散的数据进行拟合啊,拟合成指数函数,求大神给出程...
(1) help fitted function (2) 出现一堆英文 (3) 忽略英文,直接看示意图和表达式,找出含有指数的那个 (4) OK。按照上面的例子重复一遍就KO了。PS:MATLAB的本意就是希望你按照上述步骤来操作
如何在MATLAB中用离散数据画三维矢量场
在MATLAB中用离散数据画三维矢量场,如数据结构为表式结构是可以用quiver3函数绘出其三维矢量场。其方法如下:x =-3:1:3;y =-3:1:3;z=[0 5 8 9 8 5 0; -5 0 3 4 3 0 -5;-8 -3 0 1 0 -3 -8;-9 -4 -1 ...
怎样用Matlab求离散数据方差
x=[2 3 5 4 6 6 5 7 9 8 10 9 10 11 12 14 13 15 17 18 18 19 20 22 21 22 20 22 24 25 26 25 23 20 22 20 18 18 17 18 15 16 14 15 13 14 12 12 11 10 11 12 9 9 8 9 7 6 7 6 5 6 7 5 6 4 5 4 4 3 5 6 5 4 4 3 4 3 4 2 3 2 1 3...
matlab中如何表示一个离散信号
在用MATLAB表示离散序列并将其可视化时,我们要注意一下几点:第一,与连续时间信号不同,离散时间信号无法用符号运算来表示;第二,由于在MATLAB中,矩形的元素是有限的,因此,MATLAB无法表示无限序列;第三,在绘制离散信号波形时,要使用专门绘制离散数据的stem命令,而不是plot命令。一.离散时间序列卷积...
如何用matlab来实现离散数据的网格化
本视频展示如何用matlab绘制散圆状态图,可用于相关科研数据绘图!
如何使用matlab绘制三维离散序列图?
1、首先双击matlab软件图标,使用语句:x=0:0.2:7*pi;创建一个一维数组,表示三维离散序列图的在x轴上的分布范围。2、使用语句:y=exp(-x\/9).*cos(x);z=4*exp(-x\/9).*sin(x);创建三维序列图的方程,这样就有了完整的三维坐标了。3、然后使用语句:stem3(y,z,x,'filled');绘制三维...
matlab中怎么产生离散的均匀随机数?
4、产生m*n阶离散均匀分布的随机数矩阵:unidrnd(N,mm,nn) 产生一个数值在1-N区间的mm*nn矩阵;5、产生mm nn阶期望值为 的指数分布的随机数矩阵:exprnd ( ,mm, nn). 本回答由科学教育分类达人 汤盼推荐 举报| 答案纠错 | 评论 2 3 shine戚七七 采纳率:76% 来自团队:古文之美 擅长: C#\/.NET ...
matlab如何表示一个离散信号
离散信号的数学表示举例如下:离散信号x=[1 2 3 4],对应的时间信号为:1*δ(n)+2*δ(n-1)+3*δ(n-2)+4*δ(n-3)Matlab提供了强大的数字信号处理能力。包括离散信号的显示,滤波\/变换处理等。离散信号的显示一般用stem()函数。以下以一个简单的数字滤波器为例,来演示离散信号的产生,处理...
求助怎么采用matlab对离散数据进行趋势分析
这个题目看着好像很简单,但是我在分析过程中遇到了问题。看下面这个图1说话,图中的蓝色是实测的离散数据,采用matlab的plot命令画出来的,红色线是通过detrend命令汇出趋势曲线后和原始曲线做差得到的结果(此处趋势曲线没有画出来,不得不说,趋势曲线和原始曲线差不多。)绿色线是采用插值函数interp1...
用matlab进行离散数据的曲线拟合时 只能进行多项式拟合吗 如果已知拟 ...
基本上只要你知道函数形式都可以拟合的。matlab有一个cftool工具箱,很方便。当然用函数也比较不错。例如用lsqcurvefit。x = lsqcurvefit(fun,x0,xdata,ydata,lb,ub,options)例如:拟合y=a*e^(b*x)。拟合a,b 定义拟合函数 function F = myfun(x,xdata)F = x(1)*exp(x(2)*xdata);在命令...
枞于尼为: 将下面内容保存为Simpson.m function y= Simpson(f,a,b,M) % f被积函数;a积分下限;b积分上限;M子区间个数(将x分为多少个区间) if M==0 y=0; else h=(b-a)/(2*M); s1=0; s2=0; for i=1:M x=a+(2*i-1)*h; s1=s1+feval(f,x); end for j=1:(M-1) x=a+2...
牟定县18287743660: 用MATLAB对离散数据进行积分 - ?
枞于尼为: 哦 这个比较简单,下面使用两种方法%by dynamic %see also http://www.matlabsky.com %contact me matlabsky@gmail.com %2009.2. % %得到积分数据,这里的x我是随机生成的 x=rand(1,1000); t=[1:1000]*(1/100); % %方法一 trapz(t,x) % %方法二 s=sum(x)*(1/100) %
牟定县18287743660: 如何用matlab求解变上限积分 - ?
枞于尼为: 直接使用CFTOOL工具箱 命令行输入cftool即可,然后选择拟合类型 x=[6.69:0.02:7.53]; y=[4.2,3.7,3.3,2.95,2.63,2.33,2.11,1.87,1.65,1.47,1.32,1.17,1.04,0.925,0.82,0.735,0.653,0.582,0.52,0.462,0.412,0.366,0.325,0.289,0.258,0.23,0.205,0.182,0....
牟定县18287743660: 要用matlab对一组离散数据(5000个)进行定积分求值,积分范围是1000到2000,数据组成的图像如下. - ?
枞于尼为: clc;clear %复化cotes公式求积分值 %[a,b]为积分区间 %n是等分区间份数load('C:\Users\baiyanglong\Desktop\n.mat') a=1000;b=1500; C=0; h=4; n=(b-a)/h; for i=1:(n-1)x0=a+i*h;C=C+14*nlp(x0); end for k=0:(n-1)x0=a+h*k;s=32*nlp(x0+h*1/4)+...
牟定县18287743660: matlab如何处理积分? - ?
枞于尼为: 如果f已定义好,可以用:B=0:0.1:1; % 变量b的取值,自行修改 F=arrayfun(@(b)quadgk(@(a)f(a,b),a1,a2),B); % a1、a2为积分上下限 plot(B,F)
牟定县18287743660: 如何用matlab求积分的程序 - ?
枞于尼为: 程序: fun=sin(0.5*pi*x./y);%% a=int(int(fun,y,sqrt(x),x),x,1,2); b=simple(a) %化简 I=vpa(b,4) %得到4位近似解,也可以任意N位解 结果: I = 0.2719
牟定县18287743660: 如何用matlab求各种不定积分 - ?
枞于尼为: 1、对于数值积分,可以参考这个,https://zhidao.baidu.com/question/6847237379920979322、对于相等较简单的不定积分(或定积分),可以优先考虑int()函数.int(S) %不定积分 syms x int(-2*x/(1 + x^2)^2) int(S,a,b) %定积分 syms x int(x*log(1 + x), 0, 1)
牟定县18287743660: matlab如何对离散函数进行分段积分,,求大神帮忙 - ?
枞于尼为: clc;clear syms x y1=int(sin(x),0,pi/4) y2=int(sin(x),pi/4,pi/2) 运行结果:y1 =1 - 2^(1/2)/2 y2 =2^(1/2)/2 其他类似
牟定县18287743660: 请问如何用matlab求一个二元平面的离散积分. - ?
枞于尼为: 最简单的直接加到一起就可以了啊 z=f(x,y); s=sum(z)*(x(2)-x(1))*(y(2)-y(1))
牟定县18287743660: 怎样用matlab将离散的速度信号求导和求积 - ?
枞于尼为: 我是用采集到的加速度百信号来做两次积分得到位移信号,由于采集到的加速度信号有直流偏移量,所以用了detrend命令做去趋势处理.为了检验代码度是否正确,我用了一个标准的正弦函数来验证.代码如下:t=(0:1:10240-1)/2000; a=sin(5*t...