24小时热门版块排行榜    

查看: 2059  |  回复: 5
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

zouji1983

金虫 (正式写手)

[求助] 非线性方程组的解法

如果用fortran解下面两个方程组:
1. 5+3.2ln(x)+ln(1-x)-2x+5x^2+6x^3-3y=0;
2. 0.3x+0.7y=0.9
方程中既有ln,又有3次幂。
应该怎么编程呢?我是用别人的程序,现在需要加入这个。请高手指点,多谢!
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jingjingdou

银虫 (小有名气)

【答案】应助回帖

将上述两个方程化为:
y=(5+3.2ln(x)+ln(1-x)-2x+5x^2+6x^3)/3;
x=(0.9-0.7y)/0.3
然后将(x0,y0)赋初值采用上述式子迭代计算,得到的本次结果(xn,yn)作为下一次结果的初值。循环迭代至前后两次的结果满足精度要求,可以取误差的二范数或者无穷范数等作为判断。
该方法称为迭代法,具体的fortran算法,可以参考gauss-赛德尔迭代算法。网上有很多这样的程序,也可以参见徐士良的《fortran常用算法程序集》这本书。
以上仅介绍计算的主要过程,愿对你有帮助。
不足之处,请见谅……
顺一点,一点就好!
3楼2012-12-22 09:03:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zouji1983 的主题更新
信息提示
请填处理意见