24小时热门版块排行榜    

查看: 1577  |  回复: 6

zidingxiang

金虫 (小有名气)

[求助] matlab解非线性方程组程序纠错与正确运行 已有1人参与

大家好,我遇到一个解六元一次非线性方程组的问题,如果能指正错误并使程序运行出正确结果,将不胜感激!!!!!!
希望各位能尽快帮忙解决。matlab程序和运行后出现的问题具体如下:
1.首先建立函数F,储存方程组编程如下将F.m保存到工作路径中:  
function f=F(x)
syms x1 x2 x3 x4 x5 x6
f(1) = x1+x2*20+x3*20^2+(x4+x5*20)/(0.6438^2-x6^2) - 2*1.620015*(1.620015^2-1)*(-3.240);
f(2) = x1+x2*20+x3*20^2+(x4+x5*20)/(0.6328^2-x6^2) - 2*1.620507*(1.620507^2-1)*(-2.900);
f(3) = x1+x2*20+x3*20^2+(x4+x5*20)/(0.5893^2-x6^2) - 2*1.622702*(1.622702^2-1)*(-2.700);
f(4) = x1+x2*20+x3*20^2+(x4+x5*20)/(0.5461^2-x6^2) - 2*1.625401*(1.625401^2-1)*(-2.523);
f(5) = x1+x2*20+x3*20^2+(x4+x5*20)/(0.4800^2-x6^2) - 2*1.631029*(1.631029^2-1)*(-2.618);
f(6) = x1+x2*20+x3*20^2+(x4+x5*20)/(0.4358^2-x6^2) - 2*1.636369*(1.636369^2-1)*(-2.691);
f=[f(1) f(2) f(3) f(4) f(5) f(6)];
end
2.建立函数dF,用来求方程组的雅克比矩阵将dF.m保存到工作路径中:

function df=dF(x)
f=F(x);
df=[diff(f,'x1');diff(f,'x2');diff(f,'x3');diff(f,'x4');diff(f,'x5');diff(f,'x6')];
df=conj(df');
3.编程牛顿法求解非线性方程组将newton.m保存到工作路径中:

function x=newton(x0,eps,N)
con=0;
%其中x0为迭代初值eps为精度要求N为最大迭代步数con用来记录结果是否收敛
for i=1:N;
    f=subs(F(x0),{'x1' 'x2' 'x3' 'x4' 'x5' 'x6'},{x0(1) x0(2) x0(3) x0(4) x0(5) x0(6)});
    df=subs(dF(x0),{'x1' 'x2' 'x3' 'x4' 'x5' 'x6'},{x0(1) x0(2) x0(3) x0(4) x0(5) x0(6)});
    x=x0-f/df;
    for j=1: length(x0);
        il(i,j)=x(j);
    end
    if norm(x-x0)<eps
        con=1;
        break;
    end
    x0=x;
end

4.%以下是将迭代过程写入txt文档文件名为iteration.txt
fid=fopen('iteration.txt','w');
fprintf(fid,'iteration');
for j=1: length(x0)
    fprintf(fid,'         x%d',j);
end
for j=1:i
    fprintf(fid,'\n%6d     ',j);
    for k=1: length(x0)
        fprintf(fid,' %10.6f',il(j,k));
    end
end
if con==1
    fprintf(fid,'\n计算结果收敛!');
end
if con==0
    fprintf(fid,'\n迭代步数过多可能不收敛!');
end
fclose(fid);
5.运行程序

在matlab中输入以下内容:
newton( [-3e-05,-1.5e-08,-5.0e-11,3.0e-07,2.0e-10,-5.0e-1]',1.0e-15,10000)
运行后出现如下错误:
Warning: Matrix is singular to working precision.
> In newton at 7
??? Error using ==> minus
Matrix dimensions must agree.

Error in ==> newton at 7
    x=x0-f/df;
回复此楼

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : 非线性方程组程序.docx
  • 2014-07-01 10:26:51, 25.26 K

» 收录本帖的淘帖专辑推荐

程序

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

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

zidingxiang

金虫 (小有名气)

谢谢。因为以前没用过matlab,需要高手给指点下。如能给出其它能求解的程序也可以。
violet
2楼2014-07-01 10:50:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zidingxiang

金虫 (小有名气)

引用回帖:
2楼: Originally posted by zidingxiang at 2014-07-01 10:50:58
谢谢。因为以前没用过matlab,需要高手给指点下。如能给出其它能求解的程序也可以。

程序中方程组有错误,更正后的方程组为:
f(1) = x1+x2*20+x3*20^2+(x4+x5*20)/(0.6438^2-x6^2) - 2*1.620015/(1.620015^2-1)*(-0.87+2.6);
f(2) = x1+x2/20+x3*20^2+(x4+x5*20)/(0.6328^2-x6^2) - 2*1.620507/(1.620507^2-1)*(-0.87+2.7);
f(3) = x1+x2*20+x3*20^2+(x4+x5*20)/(0.5893^2-x6^2) - 2*1.622702/(1.622702^2-1)*(-0.87+2.8);
f(4) = x1+x2*20+x3*20^2+(x4+x5*20)/(0.5461^2-x6^2) - 2*1.625401/(1.625401^2-1)*(-0.87+2.9);
f(5) = x1+x2*20+x3*20^2+(x4+x5*20)/(0.4800^2-x6^2) - 2*1.631029/(1.631029^2-1)*(-0.88+3.3);
f(6) = x1+x2*20+x3*20^2+(x4+x5*20)/(0.4358^2-x6^2) - 2*1.636369/(1.636369^2-1)*(-0.88+3.6);
哪位高手能给指点一下呢?非常着急!其它能求解的程序也可以哦!
violet
3楼2014-07-02 08:28:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dingd

铁杆木虫 (职业作家)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
ben_ladeng: 金币+2, 谢谢指教 2015-01-12 15:26:55
1:没有精确解;
2:解不唯一:

1)
x1: 2.88957802502212
x2: -0.00606779269454531
x3: -0.0021475788429129
x4: 104.239194493169
x5: -5.17957855521604
x6: 4.2688217005944E-9

2)
x1: -5.06785191315175
x2: -0.00606779274435797
x3: 0.0177459960035543
x4: -1513.24941425117
x5: 75.6948518819933
x6: -1.71163956718315E-10

3)
x1: 10.534663792856
x2: -0.00606779266347315
x3: -0.021260293280603
x4: 0.548566738471594
x5: 0.00495283260003713
x6: 0

» 本帖已获得的红花(最新10朵)

4楼2014-07-02 09:26:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zidingxiang

金虫 (小有名气)

引用回帖:
4楼: Originally posted by dingd at 2014-07-02 09:26:51
1:没有精确解;
2:解不唯一:

1)
x1: 2.88957802502212
x2: -0.00606779269454531
x3: -0.0021475788429129
x4: 104.239194493169
x5: -5.17957855521604
x6: 4.2688217005944E-9

2)
x1: -5.067851 ...

结果应在初值附近,但数量级好像差很远呢!这位老师能否给一个包含“每个自变量取值范围”的完整程序呢?我想把每个变量的取值范围都定义,这样结果范围就缩小了。不胜感激哦!发邮箱也可以:violetmojiezuo@163.com
violet
5楼2014-07-02 10:48:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zidingxiang

金虫 (小有名气)

送红花一朵
引用回帖:
4楼: Originally posted by dingd at 2014-07-02 09:26:51
1:没有精确解;
2:解不唯一:

1)
x1: 2.88957802502212
x2: -0.00606779269454531
x3: -0.0021475788429129
x4: 104.239194493169
x5: -5.17957855521604
x6: 4.2688217005944E-9

2)
x1: -5.067851 ...

结果应在初值附近,但数量级好像差很远呢!这位老师能否给一个包含“每个自变量取值范围”的完整程序呢?我想把每个变量的取值范围都定义,这样结果范围就缩小了。不胜感激哦!发邮箱也可以:violetmojiezuo@163.com
violet
6楼2014-07-02 10:49:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yhcheng12

禁虫 (初入文坛)

本帖内容被屏蔽

7楼2017-03-03 10:59:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zidingxiang 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 投票:  有多少人是今天查系统知道结果的? +16 爱看书的可乐 2026-08-26 18/900 2026-08-29 20:07 by winsaint
[考研] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 G6APbkg8SA6w 2026-08-29 3/150 2026-08-29 18:59 by 4FFAWE8HcgUD
[论文投稿] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +3 gy1nBQXYQJqL 2026-08-29 4/200 2026-08-29 18:15 by 4FFAWE8HcgUD
[考博] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +5 ASdOkHsho7FD 2026-08-28 8/400 2026-08-29 17:22 by 4FFAWE8HcgUD
[教师之家] 导师吐槽:我怎么摊上了这么个极品研究生! +9 苏东坡二世 2026-08-23 9/450 2026-08-29 14:41 by hustersqt
[硕博家园] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +5 ASdOkHsho7FD 2026-08-28 9/450 2026-08-29 14:03 by jCd0dEvKHShX
[教师之家] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +4 ASdOkHsho7FD 2026-08-28 5/250 2026-08-29 11:49 by jCd0dEvKHShX
[基金申请] 中青基了要发朋友圈吗? +3 349506619 2026-08-28 3/150 2026-08-29 10:49 by 木风9012
[基金申请] 基金系统什么内容也没有 30+4 winsaint 2026-08-27 9/450 2026-08-28 11:06 by maolC
[基金申请] 面上合作单位盖章 +5 ssyjh 2026-08-27 5/250 2026-08-27 20:50 by gdfollow
[基金申请] 申请删除本帖 +6 lyz123lyz 2026-08-27 7/350 2026-08-27 17:31 by 宁静致远sy
[基金申请] 看板上这么多中的,有点像50人群里49个人都是骗子的那种感觉…… +5 a089 2026-08-26 6/300 2026-08-27 14:05 by jonewore
[基金申请] 2026年8月25日国自然放榜前突然收到列入评审专家邮件,有关系吗? +25 木水思豆 2026-08-25 28/1400 2026-08-26 14:53 by draco1987
[基金申请] 出来了 +9 trojank 2026-08-26 9/450 2026-08-26 14:25 by 宝贝虫子
[基金申请] 为什么国自然不能直接公布 +4 bjdxyxy 2026-08-26 4/200 2026-08-26 13:12 by qingmu1201
[基金申请] 国际合作可查了,中了面上 (EPI+1)(金币+50) +18 Ldrop2023 2026-08-26 18/900 2026-08-26 11:15 by cmrandy
[基金申请] 项目信息和经费信息在系统里都可以看到了 +6 wittyboy 2026-08-26 14/700 2026-08-26 10:55 by wittyboy
[基金申请] 国合现在查不到了吗? +10 chengyan1220 2026-08-24 20/1000 2026-08-26 08:57 by peasantsprig
[基金申请] 在坚冰还盖着北海的时候,我看到了怒放的梅花。 (金币+10) +6 ziyangfang 2026-08-25 9/450 2026-08-25 20:26 by huagongfeihu
[基金申请] 没有任何消息-是不是就凉了 +9 图啦图啦 2026-08-24 10/500 2026-08-25 11:59 by 南海小哥
信息提示
请填处理意见