- 主题:谁给一个验证可用的拟牛顿法matlab程序?
fminunc改选项就行啊。
你最近进步挺快啊。
【 在 trabalhar 的大作中提到: 】
: 网上找了一个试了下感觉不对,牛顿法不能用,矩阵奇异了
--
FROM 223.102.42.*
那就fsolve呗
【 在 trabalhar 的大作中提到: 】
: 我要求解二元非线性方程组…方程组系数是偏导数…
--
FROM 223.102.39.*
Choose between 'trust-region-dogleg' (default), 'trust-region', and 'levenberg-marquardt'.
嗯,看来是真的没有。自己实现也不会很麻烦,但如果jacobi阵是奇异的,拟牛顿法是不是也不合适啊。
【 在 trabalhar 的大作中提到: 】
: 试过不行
--
FROM 223.102.39.*
拟牛顿法不是用来解方程组的。
但你可以变通一下。
【 在 trabalhar 的大作中提到: 】
: 试过不行
--
FROM 223.102.39.*
不明白啥意思。你能简化一下把问题发上来吗。
【 在 trabalhar 的大作中提到: 】
: 我想试试fminunc但格式我得这样
: X = fminunc(@myfunc,x0,func1,func2,func3)
: 我的函数myfunc需要传递后边的三个函数句柄给它,原因是方程组的系数是实时计算得到的不是固定不变的,不知咋弄?
--
FROM 223.102.39.*
晕,他说的没错啊。
func1 = matlabFunction(str2sym('x1*3-cos(x2*x3)-0.5'))
===》 func1 换成 @(x)x(1)^3-cos(x(2)*x(3)-0.5.
你那种方法能不用就不用,当然,如果是GUI编程的话可能有时候难以避免类似的写法。
另外,拟牛顿法不能直接用来求方程组。以我有限的经验来看采用那个Levenberg-Marquardt效果还是挺好的。
【 在 trabalhar 的大作中提到: 】
: 跟没说一样…
--
FROM 223.102.39.*