24小时热门版块排行榜    

查看: 1582  |  回复: 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的回帖

yhcheng12

禁虫 (初入文坛)

本帖内容被屏蔽

7楼2017-03-03 10:59:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 7 个回答

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的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[论文投稿] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +4 gy1nBQXYQJqL 2026-08-29 4/200 2026-08-30 02:09 by ZPa0EcMwuECS
[博后之家] 售SCI文章,我:8O5.5.1.O.54,科目齐全,可+急 +5 gy1nBQXYQJqL 2026-08-29 6/300 2026-08-30 01:47 by ZPa0EcMwuECS
[公派出国] 售SCI一区T0P文章,我:8.O.55.1.O54,科目全,可伽急 +4 gy1nBQXYQJqL 2026-08-29 7/350 2026-08-30 01:36 by ZPa0EcMwuECS
[博后之家] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +7 ASdOkHsho7FD 2026-08-28 8/400 2026-08-30 01:14 by ZPa0EcMwuECS
[公派出国] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +5 ASdOkHsho7FD 2026-08-28 7/350 2026-08-30 01:12 by ZPa0EcMwuECS
[公派出国] 售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急 +4 ASdOkHsho7FD 2026-08-28 5/250 2026-08-30 00:52 by ZPa0EcMwuECS
[考研] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +7 ASdOkHsho7FD 2026-08-28 10/500 2026-08-30 00:41 by ZPa0EcMwuECS
[硕博家园] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +6 ASdOkHsho7FD 2026-08-28 12/600 2026-08-30 00:31 by ZPa0EcMwuECS
[考博] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 jCd0dEvKHShX 2026-08-29 3/150 2026-08-29 23:14 by ZPa0EcMwuECS
[基金申请] 中青基了要发朋友圈吗? +4 349506619 2026-08-28 4/200 2026-08-29 22:41 by alongwaytogo
[基金申请] 有没有仍没收到信息的 +5 德尚中行 2026-08-27 6/300 2026-08-29 18:10 by manplx
[基金申请] 为什么到现在没收到通知? +4 tannykie 2026-08-29 4/200 2026-08-29 17:14 by lmz0216
[教师之家] 导师吐槽:我怎么摊上了这么个极品研究生! +9 苏东坡二世 2026-08-23 9/450 2026-08-29 14:41 by hustersqt
[基金申请] 麻烦专家们看看评委们的意见(F口面上) +5 gdd2018 2026-08-28 10/500 2026-08-29 14:10 by Jacob678
[基金申请] 我就是申请一个面上项目而已,这评审意见是按照杰青的条件评的吧? +6 gouxfjh 2026-08-28 9/450 2026-08-29 09:59 by jklily
[基金申请] 系统查不到 +11 董八千 2026-08-26 11/550 2026-08-28 18:06 by Leogzhya
[基金申请] 怎么看青基中了没有啊 +5 叶九微 2026-08-26 5/250 2026-08-27 10:35 by l_zh2008
[基金申请] 国合里面能看到了 +7 一怀馨秋 2026-08-26 7/350 2026-08-26 11:23 by zhaosm1982
[基金申请] 明天应该可查了!? +6 chengyan1220 2026-08-23 6/300 2026-08-25 19:45 by zfd97
[基金申请] 如果此刻你正在为国基感到焦虑,不妨来听听这首《基金之外》 +8 scalable 2026-08-24 8/400 2026-08-25 12:52 by jnhyjjm
信息提示
请填处理意见