声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2515|回复: 14

[编程技巧] 生成一个符号数组的问题

[复制链接]
发表于 2007-5-26 12:38 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
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=[a(1)/(2-a(1)),a(2)/(2-a(2)),a(3)/(2-a(3)),a(4)/(2-a(4))]
回复
分享到:

使用道具 举报

发表于 2007-5-26 15:12 | 显示全部楼层
不是罗嗦,而是错误.
请将你的原问题贴一下------你目前说的,似乎没有任何意义.
 楼主| 发表于 2007-5-26 17:49 | 显示全部楼层
B为n-1阶三对角阵
B=[1,   a(1)/(2-a(1)),     0...                   ]
    [1,   0,                     a(2)/(2-a(2)),0...]
    [.........                                             ]
    [...0,             1,   0,   a(n-2)/(2-a(n-2))]
    [...                0,   1,                         0]
要生成B这样的矩阵
,我不会在这里表示矩阵,看不明白请说下。
发表于 2007-5-26 23:10 | 显示全部楼层
请将问题用word上传一下,你这样讲估计别人很难知道你究竟想计算什么.
另:我认为仅仅是这样表示一下矩阵没有任何意义--估计你最终还是进行数值计算.
(虽然形式上也可以将这样的B矩阵表示出来)
 楼主| 发表于 2007-5-27 08:32 | 显示全部楼层
我是认为要表示出算子T,要经过矩阵计算,所以要表示出矩阵的。
问题我是用07写的,转成03太大了,我分成三部分传上来了。
第1部分是矩阵B的描述
第二部分是算子T,这个要用矩阵B表示出来。
第三部分是问题计算,这里要用到算子T.

1.doc

180 KB, 下载次数: 16

2.doc

181 KB, 下载次数: 16

3.doc

185 KB, 下载次数: 10

 楼主| 发表于 2007-5-27 08:35 | 显示全部楼层
如果觉得还不清楚,能不能加我qq指点一下。
我的qq是273310921。
多谢:loveliness:
发表于 2007-5-27 09:08 | 显示全部楼层
看了一下你的word文件,果然是三对角阵问题。
我觉得没有必要用什么符号算子表示,直接写出三对角阵进行对角化即可。
(事实上,数值计算时,算子总是要用矩阵表示的)
先求出 a(n)/(2-a(n)) ,再构造三对角阵,最后求解之。

构造三对角阵-----参考eight的一个帖子以及大家的回帖:带状矩阵的生成。
求解三对角阵-----搜索本论坛即可找到。
 楼主| 发表于 2007-5-27 09:11 | 显示全部楼层
多谢:loveliness:
 楼主| 发表于 2007-5-27 09:25 | 显示全部楼层
原帖由 xjzuo 于 2007-5-27 09:08 发表
看了一下你的word文件,果然是三对角阵问题。
我觉得没有必要用什么符号算子表示,直接写出三对角阵进行对角化即可。
(事实上,数值计算时,算子总是要用矩阵表示的)
先求出 a(n)/(2-a(n)) ,再构造三对角 ...

对不起,我还是有些不明白,a(n)不是我要用迭代求解的么,而迭代里面要用到算子T,而算子T又是和B有关的,
这里困扰我好多天了。
 楼主| 发表于 2007-5-27 15:36 | 显示全部楼层
xjzuo再帮我看看吧,我觉得求不出a(n)/(2-a(n))
发表于 2007-5-27 15:45 | 显示全部楼层
你是想反求出 a(n)/(2-a(n)) ? -----等我有时间看看.
 楼主| 发表于 2007-5-27 17:17 | 显示全部楼层
本来这个是一个反问题。然后用一些方法把反问题变成迭代运算了。
迭代式子就在第3部分里面。因为迭代式子里用到算子T,所以我想把算子T表示出来。
发表于 2007-5-28 08:03 | 显示全部楼层
仔细看了一下你的文档,虽然给的不全,但大概意思已经清楚了。
这个问题相当于一个不小的课题,关键要靠自己了,我只能给出一些建议:
关键的一点是不变的,即:抓住如何正确写出变量的系数矩阵。
就你说的而言,别说你用符号数组求解不对,即使是对的,我想Matlab也算不动。所以你目前的思路恐怕很难解决该问题。
 楼主| 发表于 2007-5-28 08:42 | 显示全部楼层
多谢xjzuo。
不知道你对我的问题有没有一个大概的思路,我现在想,
把每一个迭代出的a(n),这个是已知的,然后去生成这些矩阵,构造算子T
再进行下一步迭代,这个思路可以么?
如果可以的话,我不明白的是,矩阵B是一个包含a(1)到a(n)的矩阵,如何在第一次迭代中就生成数值的矩阵B呢?
 楼主| 发表于 2007-5-28 17:42 | 显示全部楼层
再指点下好么?我按照原来的思路就做了好久了,可不好再走错路了。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-19 02:42 , Processed in 0.087716 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表