matlab求非线性方程的解

已知方程系数x0=56.66, A1 A2 dx为其他三个未知系数
方程的三对解:
x1=5 y1=0.88968

x2=15 y2=0.885972

x3=25 y3=0.88185

如何求出该方程其他的系数A1 A2 dx

将方程的三对解分别代入上述方程,化简后可得到三个新的方程,联立该方程组,就可得到另外三个未知系数。但是由于分母中有个指数函数,且指数中有未知数,所以不一定能直接求出,需要变换形式。追问

求问怎么变换呢?我就是不知道怎么变换带指数函数的

追答

我试了一下,matlab软件可能难解,缺少解非线性方程得函数,可能要用拟合或优化计算的方法,设定初始值后再求近似解。但由于原方程绘制图像困难(若先设法消去一个未知数,使其成二元方程,然后构造一个三维函数,再作图,发现无法实现),故初始值很难估计,计算失败。
用Mathematica软件能求出根,但根不确定,给定a1,a2和dx的不同初值(哪怕相差很小),所得解不同,但都能满足原方程。例如给定初值/结果:
{a1, 0.9, 1.4}, {a2, 1.1, 1.9}, {dx, 1.3, 2.0}/{a1 = 0.9, a2 = 263.982, dx = -0.0317423}
{a1, 0.9, 1.5}, {a2, 1.1, 1.8}, {dx, 1.3, 3.5}/{a1 = 0.975, a2 = 524.453, dx = -4.03792}
等等。
最后用1stOpt软件求解,很快得出精确结果如下:
迭代数: 24
计算用时(时:分:秒:毫秒):00:00:00:171
优化算法:麦夸特法(Levenberg-Marquardt) +通用全局优化法
计算结果原因:达到收敛判断标准
均方差(RMSE): 7.51795071010738E-11
残差平方和(SSE): 1.69558748638812E-20
相关系数(R): 1
相关系数之平方和(R^2): 0.999999999999999
决定系数(DC):0.999999999999999
卡方系数(Chi-Square):9.56569584539736E-21
F统计(F-Statistic):1.501199875 79016E15
参数 最佳估算
---------- -------------
a1 0.908992351820301
a2 0.824822330817908
dx 42.6431038351187
====== 结果输出 =====
No 实测值y 计算值y
1 0.88968 0.8896800
2 0.885972 0.8859720
3 0.88185 0.8818500

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-21
直接最小二乘拟合

f=inline('a(2)+(a(1)-a(2))./(1+exp((x-56.66)/a(3)))','a','x');
x=5:10:25;
y=[0.88968 0.885972 0.88185]
lsqcurvefit(f,[1 1 1],x,y)

A1=0.8859
而A2和dx的结果对初值依赖严重

需要提供精确的初值
相似回答