24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2474  |  回复: 3

zhaoxyah

铁杆木虫 (著名写手)

[求助] 请教一个含有误差函数的非线性方程组的数值求解方法已有1人参与

方程组如下
x(1)+x(2)+1=0
x(1)*erf(x(3))+x(2)+x(3)=0
x(1)*exp(x(3))/(1+erf(x(3)))+x(2)=0
erf(x)为误差函数,如何编程计算这样的方程组?烦请高手指教。
回复此楼

» 猜你喜欢

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

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

月只蓝

主管区长 (职业作家)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
zhaoxyah: 金币+20, ★★★★★最佳答案, 非常感谢 2015-01-04 20:12:22
MATLAB代码:
CODE:
function solve_noneqs
clear all;clc
format long
x0=[0.5 0.5 0.5];
options=optimset('TolFun',1e-18,'TolX',1e-18,'TolGradCon',1e-18)
[x fval]=fsolve(@objfun,x0)


function f=objfun(x)
f(1)=x(1)+x(2)+1;
f(2)=x(1)*erf(x(3))+x(2)+x(3);
f(3)=x(1)*exp(x(3))/(1+erf(x(3)))+x(2);

计算结果:
x =

   1.491633613022557  -2.491633613024293   1.153418146332092


三个方程残差fval =

  1.0e-007 *

  -0.000017366108551   0.022746862171630   0.176017689312857
MATLAB、MS小问题、普通问题请发帖求助!时间精力有限,恕不接受无偿私信求助。
2楼2015-01-04 19:08:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhaoxyah

铁杆木虫 (著名写手)

引用回帖:
2楼: Originally posted by 月只蓝 at 2015-01-04 19:08:47
MATLAB代码:

function solve_noneqs
clear all;clc
format long
x0=;
options=optimset('TolFun',1e-18,'TolX',1e-18,'TolGradCon',1e-18)
=fsolve(@objfun,x0)


function f=objfun(x)
f(1)=x(1)+x(2 ...

感谢,MATLAB直接可以求解啊,我只会用fortran,这下我可以试下matlab,非常感谢
3楼2015-01-04 20:12:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

NicoleLas

木虫 (正式写手)

想不到Octave的精度如此之高,几乎不改变版主的代码,结果如下:
x =
   1.49163372193857  -2.49163372193857   1.15341809870734

fval =
  0.00000000000000e+000  -7.77428075249276e-008  -9.38261335292623e-009
Be water, my friend.
4楼2015-01-04 21:05:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zhaoxyah 的主题更新
信息提示
请填处理意见