声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 702|回复: 5

[编程技巧] 求解方程组问题

[复制链接]
发表于 2008-7-9 10:37 | 显示全部楼层 |阅读模式

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

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

x
我想求如下方程组的解:
| 3        0                                          |   | V2    |      |P1|
| 1/4   7/12    1/6                              |   | V3    |      |P2|
|         1/6      2/3    1/6                     |   | V4    |      |P3|
|                    …………                     |   |……  |  =  |……|
|                    1/6    2/3    1/6            |   | Vn-1 |      |Pn-2
|                              1/4   7/12   1/6  |   |  Vn   |      |Pn-1|
|                                        0         3  |   | Vn+1|      |Pn|


       其中,矩阵的维数由P的个数决定,也就是说有n个方程,但不是一个确定的值。要看给定P的个数。要求的是V的值。最左边大矩阵中省略的部分都是(1/6   2/3  1/6)只是每一行比上一行要退后一列。
       因为不能确定给出P中究竟有几个值,只能是先编程,然后等运行期间给定,而且n又影响到最左边的大矩阵,所以不知道该怎么编了。
       请各位达人给点建议。多谢了
回复
分享到:

使用道具 举报

发表于 2008-7-9 13:42 | 显示全部楼层
先编个函数,传如参数为n
让他生成左边的大矩阵
 楼主| 发表于 2008-7-9 15:18 | 显示全部楼层
对,我就是这么想的,可是没有思路,能不能再提醒一下啊?谢谢啦
 楼主| 发表于 2008-7-9 15:28 | 显示全部楼层
我这样编了一下,结果是错的(其中dx是上面说的V;X是上面说的P):
dx=[];

3*dx(2)=3*x(1)+0.5;    %P1=3*x1+0.5
(1/4)*dx(2)+(7/12)*dx(3)+(1/6)*dx(4)=x(2);
n=length(x);
for i=4:(n-1)
    (1/6)*dx(i)+2/3*dx(i+1)+1/6*dx(i+2)=x(i-1);
end
(1/4)*dx(n-1)+(7/12)*dx(n)+(1/6)*dx(n+1)=x(n-1);
3*dx(n+1)=3*x(n)+0.5;     %Pn= 3*xn+0.5
发表于 2008-7-10 10:04 | 显示全部楼层

回复 4楼 的帖子

不是这个意思

先单独把左边大矩阵表示出来
这方面可以搜索下矩阵的形成

评分

1

查看全部评分

 楼主| 发表于 2008-7-10 16:48 | 显示全部楼层
好的,谢谢。我编一下试试。非常感谢
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-5-12 08:11 , Processed in 0.123454 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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