24小时热门版块排行榜    

北京石油化工学院2026年研究生招生接收调剂公告
查看: 1357  |  回复: 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的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 286分调剂 +8 Faune 2026-03-30 9/450 2026-03-30 15:11 by Faune
[考研] 求调剂323材料与化工 +8 1124361 2026-03-24 8/400 2026-03-30 15:11 by topgun2009
[考研] 材料科学与工程调剂 +6 深V宿舍吧 2026-03-30 6/300 2026-03-30 14:56 by peike
[考研] 277跪求调剂 +7 1915668 2026-03-27 11/550 2026-03-30 12:49 by fangnagu
[考研] 0703一志愿9,初试成绩:338,四六级已过,有科研经历,求调剂! +5 Zuhui0306 2026-03-25 5/250 2026-03-30 10:27 by herarysara
[考研] 311求调剂 +10 lin0039 2026-03-26 10/500 2026-03-30 10:26 by herarysara
[考研] 一志愿211,335分,0856,求调剂院校和导师 +7 倾____萧 2026-03-27 8/400 2026-03-30 09:37 by longlotian
[考研] 318一志愿吉林大学生物与医药 求调剂 +5 笃行致远. 2026-03-28 5/250 2026-03-30 06:56 by ilovexiaobin
[考研] 275求调剂 +15 Micky11223 2026-03-25 20/1000 2026-03-29 20:44 by 唐沐儿
[考研] 一志愿武汉理工,总分321,英一数二,求老师收留。 +11 nnnnnnn5 2026-03-25 11/550 2026-03-29 20:42 by 无际的草原
[考研] 343求调剂085601 +3 要努力学习x 2026-03-29 3/150 2026-03-29 18:35 by wxiongid
[考研] 一志愿南昌大学324求调剂 +5 hanamiko 2026-03-29 5/250 2026-03-29 16:46 by 学员8dgXkO
[考研] 343求调剂 +6 爱羁绊 2026-03-29 6/300 2026-03-29 12:00 by 无际的草原
[考研] 291求调剂 +15 hhhhxn.. 2026-03-23 21/1050 2026-03-28 11:26 by self2008
[考研] 085600材料与化工调剂 +10 A-哆啦Z梦 2026-03-23 16/800 2026-03-27 15:13 by caszguilin
[考研] 复试调剂,一志愿南农083200食品科学与工程 +5 XQTJZ 2026-03-26 5/250 2026-03-27 14:49 by 狂炫麦当当
[考研] 求调剂 一志愿 本科 北科大 化学 343 +6 13831862839 2026-03-24 7/350 2026-03-26 22:57 by 不吃魚的貓
[考研] 一志愿 南京邮电大学 288分 材料考研 求调剂 +3 jl0720 2026-03-26 3/150 2026-03-26 13:39 by zzll406
[考研] 303求调剂 +6 蓝山月 2026-03-25 6/300 2026-03-25 22:47 by 418490947
[考研] 347求调剂 +4 L when 2026-03-25 4/200 2026-03-25 13:37 by cocolv
信息提示
请填处理意见