马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
本帖最后由 chunshui2003 于 2012-6-28 21:25 编辑
最近在学习打靶法求解非自治系统周期解的问题,看到了西安交通大学周纪卿和朱因远在《非线性振动》中编写的相关程序,受益颇多。但同时也有几点疑惑,希望和大家讨论一下。 我把我的个人理解和疑惑说一下。
我的理解: 打靶法就是将边值问题转换为初值问题的一种算法。需要自己做的一共分为如下4步: 1 假设初值s。对于周期T已知的问题,s的数目和经过变换后的一阶微分方程组数目相同。 2 求解在假设s的初值条件下系统运动微分方程(在一个周期内),并保留变量结果,为后续的以偏微分表达式为新的变量的微分初值问题提供已知条件。 3 求解所提到的新的微分初值问题。其中偏微分表达式为变量,而方程中其他的诸如x,y等都在第2步中求得了结果,属于已知量。微分方程需要一列一列求解,初值则对应着单位矩阵的每一列的数值。 4 有了第2步和第3步的结果之后,就可以求解新的s。如果前后两次迭代的s之差满足一个事先给定的精度条件,则迭代结束,最后得到的s便是周期解。 我的疑惑: A 对于经过偏微分后得到的新的微分初值方程,按照书上和文献的说法其初值应保持为单位矩阵不变。但程序中第三幅图片
- [code]
- for ii = 1:2
- p(ii) = x1(ii);
- w(ii) = x1(ii);
- end
复制代码 [/code]
只在第一次赋予初值时保证了单位矩阵数值(见第一幅图片),其他情况下则为变量,不知是何原因。 B 第五幅图片中程序里dr应代表 “r对于s” 的偏导数 = 单位矩阵 - 第3步中所述的新的微分方程初值问题的结果。其中
- [code]
- dr(1,1) = 1.0 - x1(1);<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
- dr(1,2) = x2(1);
- dr(2,1) = x1(2);
- dr(2,2) = 1.0 - x2(2);
复制代码
dr(1,1)和dr(2,2)没有问题,但是dr(1,2)和dr(2,1)是不是应该加上一个负号才对。
因为这个问题涉及到许多符号表达,内容也比较多,一些问题也没有完全说清,表述可能有一些不到位,但大体的意思就是这样。请大家理解。
相关的内容我看了好几天,在没有完全弄懂程序之前还无法进行下一步的工作,而周边又没有人商量,所以希望大家能和我讨论一下,给予指点帮助。自己研究真是很痛苦的一件事。
|