生成一个符号数组的问题
n=5;B1=zeros(1,n-1);
B1=sym(B1);
for s=1:n-1
B1(s)=sym('a(s)/(2-a(s))')
end;
我这样生成符号数组是不是太罗嗦了?
还有,我想让数组是这样的,应该怎么做?
B1= 不是罗嗦,而是错误.
请将你的原问题贴一下------你目前说的,似乎没有任何意义. B为n-1阶三对角阵
B=
[......... ]
[...0, 1, 0, a(n-2)/(2-a(n-2))]
[... 0, 1, 0]
要生成B这样的矩阵
,我不会在这里表示矩阵,看不明白请说下。 请将问题用word上传一下,你这样讲估计别人很难知道你究竟想计算什么.
另:我认为仅仅是这样表示一下矩阵没有任何意义--估计你最终还是进行数值计算.
(虽然形式上也可以将这样的B矩阵表示出来) 我是认为要表示出算子T,要经过矩阵计算,所以要表示出矩阵的。
问题我是用07写的,转成03太大了,我分成三部分传上来了。
第1部分是矩阵B的描述
第二部分是算子T,这个要用矩阵B表示出来。
第三部分是问题计算,这里要用到算子T. 如果觉得还不清楚,能不能加我qq指点一下。
我的qq是273310921。
多谢:loveliness: 看了一下你的word文件,果然是三对角阵问题。
我觉得没有必要用什么符号算子表示,直接写出三对角阵进行对角化即可。
(事实上,数值计算时,算子总是要用矩阵表示的)
先求出 a(n)/(2-a(n)) ,再构造三对角阵,最后求解之。
构造三对角阵-----参考eight的一个帖子以及大家的回帖:带状矩阵的生成。
求解三对角阵-----搜索本论坛即可找到。 多谢:loveliness: 原帖由 xjzuo 于 2007-5-27 09:08 发表 http://www.chinavib.com/forum/images/common/back.gif
看了一下你的word文件,果然是三对角阵问题。
我觉得没有必要用什么符号算子表示,直接写出三对角阵进行对角化即可。
(事实上,数值计算时,算子总是要用矩阵表示的)
先求出 a(n)/(2-a(n)) ,再构造三对角 ...
对不起,我还是有些不明白,a(n)不是我要用迭代求解的么,而迭代里面要用到算子T,而算子T又是和B有关的,
这里困扰我好多天了。 xjzuo再帮我看看吧,我觉得求不出a(n)/(2-a(n)) 你是想反求出 a(n)/(2-a(n)) ? -----等我有时间看看. 本来这个是一个反问题。然后用一些方法把反问题变成迭代运算了。
迭代式子就在第3部分里面。因为迭代式子里用到算子T,所以我想把算子T表示出来。 仔细看了一下你的文档,虽然给的不全,但大概意思已经清楚了。
这个问题相当于一个不小的课题,关键要靠自己了,我只能给出一些建议:
关键的一点是不变的,即:抓住如何正确写出变量的系数矩阵。
就你说的而言,别说你用符号数组求解不对,即使是对的,我想Matlab也算不动。所以你目前的思路恐怕很难解决该问题。 多谢xjzuo。
不知道你对我的问题有没有一个大概的思路,我现在想,
把每一个迭代出的a(n),这个是已知的,然后去生成这些矩阵,构造算子T
再进行下一步迭代,这个思路可以么?
如果可以的话,我不明白的是,矩阵B是一个包含a(1)到a(n)的矩阵,如何在第一次迭代中就生成数值的矩阵B呢? 再指点下好么?我按照原来的思路就做了好久了,可不好再走错路了。
页:
[1]