24小时热门版块排行榜    

查看: 457  |  回复: 4
当前主题已经存档。
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

小木虫:)

荣誉版主 (著名写手)

[交流] 【求助】请高手帮小虫编一个关于非线性方程组牛顿法的程序(已解决)

各位数值计算的高手,小虫一个朋友让我编一个程序,用牛顿迭代法数值求解一个非线性方程组

一式,((a1-x2)/a1)^2+(x3/b1)^2-1=0
二式,((a1-x2-a)/a2)^2+(x3/b2)^2-1=0
三式,x1+x2=h0
其中x1,x2,x3为未知数,其它字母皆为常数。

由于小虫电脑上还没有安装MATLAB和Fortran,所以调试成了大问题,害怕编错了,还是想向各位求助,能否帮小虫编一个计算这个非线性方程组的程序啊?

[ Last edited by formleaf on 2009-10-28 at 06:54 ]
回复此楼
霸道做事,厚道做人
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhaocaijunzl

银虫 (小有名气)

★ ★ ★ ★ ★ ★
小木虫:)(金币+5,VIP+0):呵呵,我刚刚让那个同学自己把这个程序调试完了,不过还是感谢您 10-28 00:05
formleaf(金币+1,VIP+0):谢谢你的热心帮助! 10-28 06:52
我不是高手,刚好我有matlab7,于是就算了一下,
命令行输出的是:

ans =

  1.1111e+009

不知道什么意思。X是个向量啊!
4楼2009-10-28 00:00:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 5 个回答

haixing2008

荣誉版主 (文坛精英)

友情建议:“电脑上没有安装MATLAB和Fortran,所以调试成了大问题”
会吓人的,呵呵!还是安装一下吧。
自己可以先查查书,应该不难的。
编程还是得自己摸索一下,实在不行再问哦,不然学的东西肯定不多的,这是我的自身体会,呵呵
平平淡淡才是真!
2楼2009-10-27 08:26:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

小木虫:)

荣誉版主 (著名写手)

俺的电脑真的没有装MATLAB,朋友明天就要要了,哪位高手帮小虫调试一下这个程序吧

clear
clc
X=[0.5;0.5;0.5];                           %x1=0.5;x2=0.5;x3=0.5;赋予初值
a1=1;a2=2;a=1;b1=1;b2=3;h0=3;              %赋予常数值
err=1;                                     %赋予err初值
while err>0.2                              %循环条件要求总误差小于0.2
  X0=X;                                    %把X赋给X0
  FD=[0,2*(X0(2)-a1)/(a1*a1),2*X0(3)/b1;0,2*(X0(2)+a-a1)/(a2*a2),2*X0(3)/b2;1,1,0];
  F=[((a1-X0(2))/a1)^2+(X0(3)/b1)^2-1;((a1-X0(2)-a)/a2)^2+(X0(3)/b2)^2-1;X0(1)+X0(2)-h0];
  X=X0-inv(FD)*F;
  err=(X-X0)'*(X-X0);
end
X

不胜感激

[ Last edited by 小木虫 on 2009-10-27 at 22:58 ]
霸道做事,厚道做人
3楼2009-10-27 21:41:52
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

小木虫:)

荣誉版主 (著名写手)

求助完毕,thanks everyone
霸道做事,厚道做人
5楼2009-10-28 00:06:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见