如何用100的样品图。

16个视图(30天)
你好:)
你好:) 2020年12月29日
编辑: Sindar 2020年12月30日
我有一个任务需要100个样本的情节在一个固定值参数a2,ω₁,₂和我将改变a1和100个样本。它消耗太多的时间所以我想是他们的100个样本的一个阴谋。
清晰的所有;关闭所有;clc;
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
%模拟%
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
% avgnum = 10;
% avg = 1: avgnum
ω= 1:0.2:6.4;
₂= 6.6:0.2:12;
% Erroravg_nonzero_x1_y1 = 0([1,长度(ω)]);
% Erroravg_zero_x1_y1 = 0([1,长度(ω)]);
% Erroravg_nonzero_x2_y2 = 0([1,长度(₂)]);
% Erroravg_zero_x2_y2 = 0([1,长度(₂)]);
num1 = 1:长度(ω)
num2 = 1:长度(₂)
%值的常量
a1 = 0.2; a2 = 0.3;
%ω= 5;₂= 4;
ω=ω(num1);
₂=₂(num2);
%ω= 1:0.5:10;
%₂= 11:0.5:20;
G = 1; C12 = 0.01; C21 = 0.02;
dt = 0.01;%步长
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
x1 (1) = 0.5;
日元(1)= 0.5;
x2 (1) = 1;
y2 (1) = 1;
i = 2:1000
x1 (i) = x1(张)+ ((a1-x1(张)^ 2 * y1(张)^ 2)* x1(张)ω* y1(张)+ G * C12 * (x2(张)x1(张)))* dt;
y1 (i) =(张)+ ((a1-x1(张)^ 2 * y1(张)^ 2)* y1(张)+ω* x1(张)+ G * C12 * (y2(张)日元(张)))* dt;
x2 (i) = x2(张)+ ((a2-x2(张)^ 2-y2(张)^ 2)* x2(张)₂* y2(张)+ G * C21 * (x1(张)x2(张)))* dt;
(我)= y2(张)+ ((a2-x2(张)^ 2-y2(张)^ 2)* y2(张)+₂* x2(张)+ G * C21 * (y1(张)y2(张)))* dt;
结束
结束
结束
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
%观察%
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
Ndatamin = 4; Ndatamax = 31;
Data = Ndatamin: 1: Ndatamax;
=数据/ Ndatamax;
Error_nonzero_x1 = 0 ([1, Ndatamax-Ndatamin + 1]);%初始化
Error_zero_x1 = 0 ([1, Ndatamax-Ndatamin + 1]);%初始化
Error_zero_y1 = 0 ([1, Ndatamax-Ndatamin + 1]);%初始化
Error_nonzero_x2 = 0 ([1, Ndatamax-Ndatamin + 1]);%初始化
Error_zero_x2 = 0 ([1, Ndatamax-Ndatamin + 1]);%初始化
Error_nonzero_y2 = 0 ([1, Ndatamax-Ndatamin + 1]);%初始化
Error_zero_y2 = 0 ([1, Ndatamax-Ndatamin + 1]);%初始化
数= 0;
N_m = Ndatamin: Ndatamax
数=计数+ 1;
N_measurements = N_m;
N_basis = 31;
%指数=兰迪((20000、30000),1,N_m);
指数=兰迪([100499]1 N_m);
,N_measurements Xdot1 = 0 ([1]);
,N_measurements Ydot1 = 0 ([1]);
,N_measurements Xdot2 = 0 ([1]);
,N_measurements Ydot2 = 0 ([1]);
倪= 1:N_measurements
Xdot1 (ni) = (x1(指数(ni) + 1) x1(指数(ni))) / dt;
Ydot1 (ni) = (y1(指数(ni) + 1)日元(指数(ni))) / dt;
Xdot2 (ni) = (x2(指数(ni) + 1) x2(指数(ni))) / dt;
Ydot2 (ni) = (y2(指数(ni) + 1) y2(指数(ni))) / dt;
结束
M = 0 ([N_measurements N_basis]);
我= 1:N_measurements
j = 1: N_basis
如果j = = 1
M (i, j) = 1;
elseifj = = 2
M (i, j) = x1(指数(i));
elseifj = = 3
M (i, j) = y₁(指数(i));
elseifj = = 4
M (i, j) = x2(指数(i));
elseifj = = 5
M (i, j) = y2(指数(i));
elseifj = = 6
M (i, j) = x1(指数(i)) ^ 2;
elseifj = = 7
M (i, j) = x2(指数(i)) ^ 2;
elseifj = = 8
M (i, j) = y₁(指数(i)) ^ 2;
elseifj = = 9
M (i, j) = y2(指数(i)) ^ 2;
elseifj = = 10
M (i, j) = (x1, x2(指数(i)) *(指数(i));
elseifj = = 11
M (i, j) = x1(指数(i)) * y1(指数(i));
elseifj = = 12
M (i, j) = x1(指数(i)) * y2(指数(i));
elseifj = = 13
M (i, j) = x2(指数(i)) * y1(指数(i));
elseifj = = 14
M (i, j) = x2(指数(i)) * y2(指数(i));
elseifj = = 15
M (i, j) = y₁(指数(i)) * y2(指数(i));
elseifj = = 16
M (i, j) = x1(指数(i)) ^ 3;
elseifj = = 17
M (i, j) = y₁(指数(i)) ^ 3;
elseifj = = 18
M (i, j) = x2(指数(i)) ^ 3;
elseifj = = 19
M (i, j) = y2(指数(i)) ^ 3;
elseifj = = 20
M (i, j) = (x1, x2(指数(i)) ^ 2 *(指数(i));
elseifj = = 21
M (i, j) = x1(指数(i)) ^ 2 * y1(指数(i));
elseifj = = 22
M (i, j) = x1(指数(i)) ^ 2 * y2(指数(i));
elseifj = = 23
M (i, j) = x2(指数(i)) ^ 2 * x1(指数(i));
elseifj = = 24
M (i, j) = x2(指数(i)) ^ 2 * y1(指数(i));
elseifj = = 25
M (i, j) = x2(指数(i)) ^ 2 * y2(指数(i));
elseifj = = 26
M (i, j) = y₁(指数(i)) ^ 2 * x1(指数(i));
elseifj = = 27
M (i, j) = y₁(指数(i)) ^ 2 * x2(指数(i));
elseifj = = 28
M (i, j) = y₁(指数(i)) ^ 2 * y2(指数(i));
elseifj = = 29
M (i, j) = y2(指数(i)) ^ 2 * x1(指数(i));
elseifj = = 30
M (i, j) = y2(指数(i)) ^ 2 * x2(指数(i));
其他的
M (i, j) = y2(指数(i)) ^ 2 * y1(指数(i));
结束
结束
结束
结束
持有
情节(x1,“r”)
情节(x2,‘g’)
2的评论
你好:)
你好:) 2020年12月29日
这意味着我必须运行代码100倍。

登录置评。

接受的答案

Sindar
Sindar 2020年12月30日
编辑:Sindar 2020年12月30日
首先,你在干什么 , Xdot1 等等?目前,代码覆盖每个N_m循环,没有做任何的结果
试试这个:定义采样向量,所以你可以稍后vectorize东西:
指数=兰迪([100499]1 N_m);
x1_samp0 = x1(指数);
x1_samp1 = x1(指数+ 1);
Xdot1 = (x1_samp1-x1_samp0) / dt;
米(:1)= 1;
米(:,2)= x1_samp0;
米(:6)= x1_samp0。^ 2;
编辑:改变了我的想法在其他选项;不要这样做。不过,这里是一些一般性的建议:
  • 如果你有条件可以表示为变量=第一,变量=第二,等等——用一个开关代替if-elseif
  • 如果你有一个循环运行超过一组的条件和操作有什么共同之处,只是每一行单独运行,然后填写“其他”部分
j = 1: N_basis
如果j = = 1
M (i, j) = 1;
elseifj = = 2
M (i, j) = x1(指数(i));
elseifj = = 3
M (i, j) = y₁(指数(i));
结束
结束
下面是一样的,但清洁和更快的:
(我,1)= 1;
M (i, 2) = x1(指数(i));
M (i, 3) = y₁(指数(i));
  • 很多很多很多for循环可以使用向量替换操作。这是Matlab的地步

更多的答案(0)

类别

找到更多的在线情节帮助中心文件交换

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!