| 查看: 2854 | 回复: 14 | ||
| 当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖 | ||
[求助]
MATLAB求解一个比较复杂的方程
|
||
|
a/(1.0+exp(-b*(0.003-c)))-a/(1.0+exp(b*c))=1.460; a/(1.0+exp(-b*(0.012-c)))-a/(1.0+exp(b*c))=4.388; a/(1.0+exp(-b*(0.030-c)))-a/(1.0+exp(b*c))=5.455; 有谁知道上面的三个方程怎么解,初学MATLAB,还不会求解这种方程,谁能指导下我,谢谢~ 实际我是想用一个函数去拟合我的三个点。最后转化成上面的求解。 |
» 本帖已获得的红花(最新10朵)
» 猜你喜欢
三无产品还有机会吗
已经有4人回复
投稿返修后收到这样的回复,还有希望吗
已经有7人回复
压汞仪和BET测气凝胶孔隙率
已经有4人回复
博士申请都是内定的吗?
已经有14人回复
谈谈两天一夜的“延安行”
已经有13人回复
氨基封端PDMS和HDI反应快速固化
已经有11人回复
之前让一硕士生水了7个发明专利,现在这7个获批发明专利的维护费可从哪儿支出哈?
已经有11人回复
论文投稿求助
已经有4人回复
Applied Surface Science 这个期刊。有哪位虫友投过的能把word模板发给我参考一下嘛
已经有3人回复
投稿精细化工
已经有6人回复
12楼2011-07-03 21:59:24
snowwinter10
木虫 (正式写手)
- 应助: 1 (幼儿园)
- 金币: 4180.3
- 散金: 2012
- 红花: 1
- 帖子: 607
- 在线: 155.6小时
- 虫号: 930945
- 注册: 2009-12-20
- 性别: GG
- 专业: 教学论
★ ★
xiegangmai(金币+2): 谢谢参与!鼓励讨论交流! 2011-06-30 11:04:10
xiegangmai(金币+2): 谢谢参与!鼓励讨论交流! 2011-06-30 11:04:10
|
试着写了一下,但是求解的结果很奇怪,不知道是数值参数还是方法的问题。希望有所参考价值。本人对matlab也是新手,我用的是非线性方程组求解函数solve,源码和结果如下。 clc clear all s1='a/(1.0+exp(-b*(0.003-c)))-a/(1.0+exp(b*c))=1.460'; s2='a/(1.0+exp(-b*(0.012-c)))-a/(1.0+exp(b*c))=4.388'; s3='a/(1.0+exp(-b*(0.030-c)))-a/(1.0+exp(b*c))=5.455'; [a b c]=solve(s1,s2,s3) 结果 a = 0. -0. b = (NaN)+(NaN)*i (NaN)+(NaN)*i c = (NaN)+(NaN)*i (NaN)+(NaN)*i |
2楼2011-06-30 10:53:22
【答案】应助回帖
★ ★ ★ ★ ★
臭水沟(金币+5): 谢谢应助~~ 2011-07-01 19:55:02
臭水沟(金币+5): 谢谢应助~~ 2011-07-01 19:55:02
|
尝试了一下用符号求解,找不到解析解。 得到: Warning: Explicit solution could not be found. > In solve at 81 ans = [ empty sym ] 改用数值解: (1)先写方程函数: (2)在命令窗口输入: 得到: Solver stopped prematurely. fsolve stopped because it exceeded the function evaluation limit, options.MaxFunEvals = 300 (the default value). X = 6.1816 5.8800 0.0390 Fval = -1.4331 -4.2800 -5.1839 exitflag = 0 求解失败。 可能方程组非线性太强了。 [ Last edited by xiegangmai on 2011-6-30 at 11:11 ] |

3楼2011-06-30 11:03:09
【答案】应助回帖
★ ★
cyzhixue(金币+10): 真的是太感谢你了。。崇拜中。。真的和我的点拟合的一模一样啊。 2011-06-30 17:21:47
臭水沟(金币+2): 谢谢应助~~ 2011-07-01 19:55:13
cyzhixue(金币+10): 真的是太感谢你了。。崇拜中。。真的和我的点拟合的一模一样啊。 2011-06-30 17:21:47
臭水沟(金币+2): 谢谢应助~~ 2011-07-01 19:55:13
|
呵呵,应该可以了,换用'levenberg-marquardt'算法,增加迭代次数。 用fsolve求解,初值选取有很大关系,当初值选为[ 100; 100; 0 ]时, [ X, Fval, exitflag ] = fsolve( @cyzhixue, [ 100; 100; 0 ], options ) 所得结果: X = 10.8784 182.8811 0.0001 Fval = 1.0e-009 * -0.1962 -0.2380 0.0061 exitflag = 1 应该能满足精度要求了。 |

4楼2011-06-30 11:15:59













回复此楼
lylpiao