用matlab画这个的图像,怎么编程

如题所述

用matlab绘制微分方程组数值解x1(t)和x2(t)的图形。可以按下列方法来解决。

1、建立微分方程组自定义函数,ode_fun(t,x)

2、调用 ode45(…)函数命令,求解此微分方程组,得到x1(t),x2(t)

3、调用plot(…)函数命令,绘制x1(t)和x2(t)的图形

按此思路编程,运行可得到如下图形。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-12-29
随机变量小于或者等于某个数值的概率P(X<=x),即:F(x) = P(X<=x)
累积分布函数(cumulative distribution function):对连续函数,所有小于等于a的值,其出现概率的和。F(a)=P(x<=a)

根据这张累积分布函数图,可以很方便地回答之前的两个问题:
1)CDF中横轴上的2对应的Y值约为0.98,因此所有大于2的数据点所占比例约为2%。
2)CDF中横轴上的1.3对应的Y值约为0.75,因此所有介于1.3和2之间的数据点所占比例约为23% (0.98-0.75)。
与直方图、核密度估计相比,累积分布函数存在以下几个特点:
累积分布函数是X轴单调递增函数。
累积分布函数更加平滑,图像中噪音更小。
累积分布函数没有引入带宽等外部概念,因此不会丢失任何数据信息。对于给定的数据集,累积分布函数是唯一的。
累积分布函数一般都经过归一化处理,单调递增且趋近于1。
下面我们来讲一下怎么用matlab来画我们的累计分布图.
比如我们有一组CSV的数据,我们把这个存储这个数据的文件取名叫做test.csv
116,218,119
123,219,106
113,219,119
117,232,105
118,208,117
116,222,106
117,221,119
129,232,108
124,234,118
124,234,107
132,234,117
125,226,106
135,225,112
126,231,107
134,250,113
141,223,107
118,260,113
117,249,107
112,261,118
118,234,107
118,257,119
119,256,105
117,281,118
129,266,107
131,260,119
143,239,105
128,263,120
135,267,107
127,259,118
119,285,103
159,269,119
138,264,106
142,259,122
128,285,111
158,269,133
129,264,106
130,259,124
137,228,105
139,262,126
130,249,111
114,275,117
126,227,107
119,230,118
118,224,107
130,226,118
126,227,106
129,264,114
125,254,106
132,252,114
130,229,106
135,229,117
121,251,108
129,243,119
125,226,105
113,275,114
120,255,104
111,274,119
118,255,107
115,274,120
129,260,107
126,249,119
135,235,109
136,281,125
132,266,106
134,263,122
123,255,108
129,258,116
127,264,105
113,257,122
115,264,102
129,257,133
126,275,104
126,272,123
122,260,108
128,256,120
117,265,105
117,254,122
117,263,109
123,238,125
130,285,106
130,282,121
152,251,106
131,233,111

现在我们就是要用这个数据画一组CDF图像.
%read data into matirx%http function fid = fopen('./test.csv','rt'); %首先打开文件把数据读取出来C = textscan(fid, '%f %f %f', 'Delimiter',',');
fcolse(fid); %之后把数据扫描进C这个变量中,我们是按照浮点类型的形式来处理我们的数据的%由于我们的数据有三列,所有我们这里取了三个%f出来,根据不同的数据我们取不同的格式说明符号.可以用类似C语言.每个数据之间是按照","来做分割.%Delimiter表示的是取某些分割符来切分数据,再后面我们写逗号,表示按照逗号来分割数据data1 = deal(C{1});% 每一列数据表示的一次随机实验中取到的随机变量,所以我们分别处理%这三组数据,以此类推.data2 = deal(C{2});

data3 = deal(C{3});

cdfplot(data1);% 在matlab中画图我们使用cdfplot,这个命令set(h1,'color','b','LineWith',3);
xlabel('NUmbers of Http Pings','FontSize',30);
ylabel('CDF','FontSize',30);
title('')
相似回答