CyRhmU.jpeg
查看: 1432  |  回复: 5
【悬赏金币】回答本帖问题,作者clxxz将赠送您 20 个金币

clxxz

新虫 (初入文坛)

[求助] 数值分析MATLAB大作业求助已有1人参与

研一数值分析大作业,没有过MATLAB使用基础。
在对一个实对称矩阵进行cholesky分解时,当阶数高于15阶后报错矩阵非正定矩阵(前14阶都可以正常分解),通过eig特征值计算显示,矩阵的第一个特征值为-0.0000,flag=15,想请教一下这种情况该怎么解决?
下面附题目,及编写的程序。

数值分析MATLAB大作业求助


数值分析MATLAB大作业求助-1


数值分析MATLAB大作业求助-2


数值分析MATLAB大作业求助-3


发自小木虫Android客户端
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

1787487804

银虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
MATLAB问题建议在https://www.ilovematlab.cn/forum-6-1.html 提问;
另外,建议提供你的代码文件(可复制)和一组测试数据(文件),方便复现你的错误,以帮助你快速定位错误和解决问题。
一蓑烟雨任平生
2楼2021-11-09 17:59:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

clxxz

新虫 (初入文坛)

好的好的,谢谢,这就复制

发自小木虫Android客户端
3楼2021-11-09 18:33:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

clxxz

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by 1787487804 at 2021-11-09 17:59:06
MATLAB问题建议在https://www.ilovematlab.cn/forum-6-1.html 提问;
另外,建议提供你的代码文件(可复制)和一组测试数据(文件),方便复现你的错误,以帮助你快速定位错误和解决问题。

for n=1:16
    A=zeros(n)
    for i=1:n
        for j=1:n
            if i==j
                A(i,j)=1/(2*i-1)
            else
                A(i,j)=1/(i+j-1)
            end         
        end      
    end
end
for i=1:n
b(i,1)=A(i,*ones(n,1)
end
[R,flag]=chol(A)
F=chol(A)%对A进行平方根分解,即R*R的转置,这里所得到的F为分解后的上三角矩阵
G=F'
Y=zeros(n,1)
Y(1,1)=b(1,1)/G(1,1)
for k=2:n
Y(k,1)=[b(k,1)-G(k,*Y(:,1)]/G(k,k)
end
X=ones(n,1)
X(n,1)=Y(n,1)/F(n,n)
for t=n-1:-1:1
X(t,1)=[Y(t)-F(t,t+1:n)*X(t+1:n,1)]/F(t,t)
end
4楼2021-11-09 18:35:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Ly241

新虫 (小有名气)

内容已删除
5楼2021-11-09 19:58:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

1787487804

银虫 (正式写手)

引用回帖:
4楼: Originally posted by clxxz at 2021-11-09 18:35:25
for n=1:16
    A=zeros(n)
    for i=1:n
        for j=1:n
            if i==j
                A(i,j)=1/(2*i-1)
            else
                A(i,j)=1/(i+j-1)
            end         
    ...

以代码形式插入,不然这段代码会出现“微笑脸”;另外,MATLAB的错误提示是什么?
一蓑烟雨任平生
6楼2021-11-09 20:12:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 clxxz 的主题更新
不应助 确定回帖应助 (注意:应助才可能被奖励,但不允许灌水,必须填写15个字符以上)
信息提示
请填处理意见