chunshui2003 发表于 2010-3-10 11:23

请教参数变化敏感性分析以及xlsread的问题

问题一建立微分方程求解,观察方程中某一个参数变化对变量的影响,这应该是分岔。
但是如果不绘制分岔图,而改为在某一个具体的时刻(比如t是1000个,用四阶龙哥库塔法)绘制方程中参数的变化对变量影响情况,这样做能否称为参数的敏感性分析,当然会将参数的取值范围及间隔好好的规划。

问题二,由于我采用的是将每一次的计算结果都保存到xls文档中(用xlswrite命令),所以在图形绘制时需要读出来(用xlsread命令),但遇到这样一个问题,xlsread('filename',range),关于range是在文档中某一个具体范围可选,比如“A1:A100“,但是想选择某个具体的数,比如“A80”,命令似乎提示错误。请问当想选择文档中具体数据时,怎样操作?(我的笨方法是先选择一列然后再具体读入某个数据,但是太麻烦了,耗时太久)

希望大家解惑!

无水1324 发表于 2010-3-10 16:00

问题1: 在1000和0时变化参数会有多大的差别呢? 我觉得可能的变化是初始值有一点,其它的与分岔图的应该差不多。

问题2:是不是可以把数据全部读出来,然后选择具体那一列或者哪一行的数据(可能跟你说的一样,我没有看懂)

chunshui2003 发表于 2010-3-10 16:37

比如
=ode45(@differential_equation,,y0);

得到的结果u应该是有10000个值,按照分岔图的做法
Ij_sub=4000:0.1:4100;   %Ij_sub就是参数变量
for i=1:length(Ij_sub)
   =ode45(@differential_equation,,y0);
   plot(Ij_sub(i),u(2000:100:end,1));
    hold on
end

而按照我的想法,在某一个特定的时间上,也可以理解为在某一个特定的u上,应该是
U=[];
    for i=1:length(Ij_sub)
    U(:,i)=xlsread('filename',range);%% 这里主要是将方程结果的u1以列的形式保存到U矩阵,没具体写出来
   end
plot(Ij_sub,U(6000,:))%% 选择每一个不同的u1在第6000个计算结果进行绘制

可能我表达不是很清楚。就是每次不同的参数“Ij_sub”,得到不同的微分方程结果,然后将结果保存到xls文档。之后选择具体需要的数据绘制图形。而不是像分岔图那样,去掉瞬态响应后隔周期画图。我的意思是相当于每一个Ij_sub只对应一个值。
可能我表达不是很清楚,但大体就是如此
页: [1]
查看完整版本: 请教参数变化敏感性分析以及xlsread的问题