24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 1036  |  回复: 7
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

博学GG

新虫 (初入文坛)

[求助] 初学者的困惑,希望大神解答 已有2人参与

数值计算课的老师给布置了一道用matlab求解的题目,有一点困惑还望解答
这是我在网上找的高斯赛德尔迭代方法的源程序:
function [x1 k1]=gauss_seidel(A,b,e)
n=max(size(A));
for i=1:n
    if A(i,i)==0
          'eig can not be zero'
        return
    end
end
k=0;
kend=50;
r=1;
x=zeros(n,1);
while k<=kend && r>e
    x0=x;
    for i=1:n
        s=0;
        for j=1:i-1
            s=s+A(i,j)*x(j);
        end
        for j=i+1:n
            s=s+A(i,j)*x0(j);
        end
        x(i)=b(i)/A(i,i)-s/A(i,i);
    end
    r=norm(x-x0,inf);
    k=k+1;
end
if k>kend
    'die dai bu shou lian ,failure'
    return
else
    'qiu jie cheng gong'
end
x1=x;
k1=k;


这是我要求的问题:
e=0.000000001;
for n=4:12
    A=hilb(n);
    b=A(:,1);
    [x k]=gauss_seidel(A,b,e)
end

为什么在源程序中我把x=zeros(n,1)改成x=ones(n,1)就会报错,错误:
Error in gauss_seidel (line 2)
n=max(size(A));

Output argument "x1" (and maybe others) not assigned during call to "gauss_seidel".


非常困惑,我看源程序没有规定x必须取0,为什么不能改呢?
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

博学GG

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by mygt_hit at 2015-10-24 12:55:08
跑了一下,把x=zeros(n,1)改成x=ones(n,1)后,程序不收敛,跑到如下位置就退出函数,从而使得x1未赋值,程序报错。
if k>kend
    'die dai bu shou lian ,failure'
    return

你好,谢谢你的帮助,请问你是通过什么方式去查看运行到哪个位置出错的?
还有就是怎么会出现这种情况,程序仅仅是让循环大于50时就停止,为什么会退出函数呢?
6楼2015-10-25 16:08:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 8 个回答

mygt_hit

专家顾问 (职业作家)

【答案】应助回帖

感谢参与,应助指数 +1
跑了一下,把x=zeros(n,1)改成x=ones(n,1)后,程序不收敛,跑到如下位置就退出函数,从而使得x1未赋值,程序报错。
if k>kend
    'die dai bu shou lian ,failure'
    return
知其然,知其所以然。
2楼2015-10-24 12:55:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lvweizhong

铜虫 (著名写手)

首先,你为什么要改呢?

发自小木虫Android客户端
3楼2015-10-24 14:52:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

博学GG

新虫 (初入文坛)

引用回帖:
3楼: Originally posted by lvweizhong at 2015-10-24 14:52:09
首先,你为什么要改呢?

我有强迫症。。。
如果一个问题不能搞透彻就会很心烦,毕竟我认为可以改,但问题不知道出在哪里
4楼2015-10-25 15:55:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 290求调剂 +3 dfffsar 2026-03-29 3/150 2026-03-29 22:38 by 毛毛毛阿莫2
[考研] 一志愿哈尔滨工业大学材料与化工方向336分 +10 辰沐5211314 2026-03-26 10/500 2026-03-29 21:01 by 唐沐儿
[考研] 材料与化工328分调剂 +7 。,。,。,。i 2026-03-23 7/350 2026-03-29 20:58 by 唐沐儿
[考研] 调剂310 +12 温柔的晚安 2026-03-25 13/650 2026-03-29 20:01 by 无际的草原
[考研] 求调剂 +4 青春裁为三截 2026-03-29 4/200 2026-03-29 15:01 by 唐沐儿
[考研] 279求调剂 +4 蝶舞轻绕 2026-03-29 4/200 2026-03-29 09:45 by laoshidan
[考研] 356求调剂 +3 gysy?s?a 2026-03-28 3/150 2026-03-29 00:33 by 544594351
[考研] 11408软件工程求调剂 +3 Qiu学ing 2026-03-28 3/150 2026-03-28 21:50 by zhq0425
[考研] 283求调剂 +7 A child 2026-03-28 7/350 2026-03-28 12:05 by zllcz
[考研] 0703化学/290求调剂/本科经历丰富/工科也可 +9 丹青奶盖 2026-03-26 10/500 2026-03-28 07:45 by barnett0632
[考研] 308求调剂 +7 墨墨漠 2026-03-25 7/350 2026-03-27 14:47 by 狂炫麦当当
[考研] 085601 材料工程 313分 求调剂 +5 Ong3 2026-03-27 5/250 2026-03-27 12:24 by goldfish51
[考研] 一志愿郑大085600,310分求调剂 +5 李潇可 2026-03-26 5/250 2026-03-27 11:14 by 不吃魚的貓
[考研] 考研调剂 +9 小蜡新笔 2026-03-26 9/450 2026-03-27 11:10 by 不吃魚的貓
[考研] 351求调剂 +4 麦克阿磊 2026-03-24 4/200 2026-03-27 00:32 by wxiongid
[考研] 342求调剂 +3 加油a李zs 2026-03-26 3/150 2026-03-27 00:29 by wxiongid
[考研] 一志愿 南京邮电大学 288分 材料考研 求调剂 +3 jl0720 2026-03-26 3/150 2026-03-26 13:39 by zzll406
[考研] 化学调剂一志愿上海交通大学336分-本科上海211 +4 小鱼爱有机 2026-03-25 4/200 2026-03-26 10:19 by aa331100
[考研] 一志愿武理085500机械专业总分300求调剂 +3 an10101 2026-03-24 7/350 2026-03-25 00:00 by 山鬼0-
[考研] 080500求调剂 +3 zzzzfan 2026-03-24 3/150 2026-03-24 16:38 by barlinike
信息提示
请填处理意见