w*********r 发帖数: 488 | 1 感谢在先,我只知道最笨的一种先approximation,在方程两边直接除一下的方法但是只
能解线性的。:(( |
c******m 发帖数: 599 | 2 看看newton法
【在 w*********r 的大作中提到】 : 感谢在先,我只知道最笨的一种先approximation,在方程两边直接除一下的方法但是只 : 能解线性的。:((
|
h***o 发帖数: 539 | 3 move all the linear terms to the left hand side, and all the nonlinear term
to the right hand side.
use some initial guess to evaluate the right hand side. right hand side
becomes a constant.
then the equation becomes linear PDE...use whatever the way you like to
solve this linear PDE for one step, then update the
right hand side with the most recent result. repeat this process until
the solution converges.
I used this way to solve one elliptic pde with nonlinear terms last year.
【在 w*********r 的大作中提到】 : 感谢在先,我只知道最笨的一种先approximation,在方程两边直接除一下的方法但是只 : 能解线性的。:((
|
h***o 发帖数: 539 | 4 nod, if the convergence is not fast enough....add some newton method when
iterating like what I said in last post
【在 c******m 的大作中提到】 : 看看newton法
|
c*******e 发帖数: 8624 | 5 具体问题具体分析
【在 w*********r 的大作中提到】 : 感谢在先,我只知道最笨的一种先approximation,在方程两边直接除一下的方法但是只 : 能解线性的。:((
|
w*********r 发帖数: 488 | 6 thank you so much~~~~, i guess i can use 'newton' function in MATLAB to apply
your way.【 在 hanzo (无色?!无味...) 的大作中提到: 】
是只 |
w*********r 发帖数: 488 | 7 最开始想用newton,但是那个function的Jacobian特难求,我觉得你的iteration应该可
行,昨天试了发现,几乎不收敛,估计我猜的初始值离真值相去甚远。matlab里面不知道
有没有直接算jacobian的,我们老师给的他自己写的function总出问题:(【 在 hanzo
(无色?!无味...) 的大作中提到: 】
但是只 |
h***o 发帖数: 539 | 8 you can always numerically calculate Jacobian
【在 w*********r 的大作中提到】 : 最开始想用newton,但是那个function的Jacobian特难求,我觉得你的iteration应该可 : 行,昨天试了发现,几乎不收敛,估计我猜的初始值离真值相去甚远。matlab里面不知道 : 有没有直接算jacobian的,我们老师给的他自己写的function总出问题:(【 在 hanzo : (无色?!无味...) 的大作中提到: 】 : 但是只
|
a******s 发帖数: 232 | 9 非线性不好求解,hanzo那是lucky,当然不可能适用于任何case,而且
即使你的初值猜的再近,也有可能很快发散。
【在 w*********r 的大作中提到】 : 最开始想用newton,但是那个function的Jacobian特难求,我觉得你的iteration应该可 : 行,昨天试了发现,几乎不收敛,估计我猜的初始值离真值相去甚远。matlab里面不知道 : 有没有直接算jacobian的,我们老师给的他自己写的function总出问题:(【 在 hanzo : (无色?!无味...) 的大作中提到: 】 : 但是只
|
c*******e 发帖数: 8624 | 10 你还是把题给出来好分析
【在 w*********r 的大作中提到】 : 最开始想用newton,但是那个function的Jacobian特难求,我觉得你的iteration应该可 : 行,昨天试了发现,几乎不收敛,估计我猜的初始值离真值相去甚远。matlab里面不知道 : 有没有直接算jacobian的,我们老师给的他自己写的function总出问题:(【 在 hanzo : (无色?!无味...) 的大作中提到: 】 : 但是只
|
|
|
h***o 发帖数: 539 | 11 well....非线性那边当然不能太离谱,如果差一点就飞得天远,那的确玩不动
就跟chaos一样,中国这边蝴蝶拍拍翅膀,Florida这边就飓风了
【在 a******s 的大作中提到】 : 非线性不好求解,hanzo那是lucky,当然不可能适用于任何case,而且 : 即使你的初值猜的再近,也有可能很快发散。
|
h***o 发帖数: 539 | 12 nod nod....数值解方程不能脱离实际的说
【在 c*******e 的大作中提到】 : 你还是把题给出来好分析
|
f**l 发帖数: 2041 | 13 现在有Automatic Differentiation 的软件. 就是你
把你的Fortran或者C输入进去, 它给你自动生成Jacobian函数.
google ADFOR, 现在应该已经到3.0了吧. 准确性和效率都不错的.
【在 h***o 的大作中提到】 : you can always numerically calculate Jacobian
|
r****y 发帖数: 1437 | 14
It is still not as good as advertised. You can easily cheat it.
【在 f**l 的大作中提到】 : 现在有Automatic Differentiation 的软件. 就是你 : 把你的Fortran或者C输入进去, 它给你自动生成Jacobian函数. : google ADFOR, 现在应该已经到3.0了吧. 准确性和效率都不错的.
|
w*********r 发帖数: 488 | 15 原题如下:
given function V in terms of S and t,V(S,t)
parameters are:rho,alpha,lambda,theta,mu,sigma
the PDE is:
rho*V(S,t)=alpha*S+lambda*(mu-S)*Vs(S,t)+theta*(Vs(S,t)).^2+0.5*sigma*(S-S.^2)*Vss(S,t)-Vt(S,t)
S is in [0,1],and t is in [0,T],T is a constant.
the boundary condition is V(S,0)=0
Vs is the first-order partial derivative of V wrt S, and Vt is first-order partial derivative of V wrt t.
昨天晚上在MATLAB里面我试了approximation+Broyden method,因为发现Broyden有现成的function(也我们老师自己编的,不是MATLAB自带的),newton那个总说有错误
【在 c*******e 的大作中提到】 : 你还是把题给出来好分析
|
w*********r 发帖数: 488 | 16
~~~~~~~不会啊:(,没有什么基础的情况下可以自学吗?或者计算机系
有没有这类的基础课,谢了。
应该可
不知道
hanzo
【在 f**l 的大作中提到】 : 现在有Automatic Differentiation 的软件. 就是你 : 把你的Fortran或者C输入进去, 它给你自动生成Jacobian函数. : google ADFOR, 现在应该已经到3.0了吧. 准确性和效率都不错的.
|
w*********r 发帖数: 488 | 17 没有,这个二维的函数应该有4个边界点,但是题里只给了一个边界条件,难道一定要4个
点都给出边界条件吗?【 在 hanzo (无色?!无味...) 的大作中提到: 】
rho*V(S,t)=alpha*S+lambda*(mu-S)*Vs(S,t)+theta*(Vs(S,t)).^2+0.5*sigma*(S-S.^2)
*Vss(S,t)-Vt(S,t)
partial derivative of V wrt t.
现成的function(也我们老师自己编的,不是MATLAB自带的),newton那个总说有错误之
类的,residual在10e-9 左右,对我来说已经足够小了。近似我用的是chebychev
polynomial,因为有边界条件?: :
S取n个nodes,t取m-1个nodes,n和m分别是polynomial的order。这样有n*m个待定系数C
(nm*1的向量)和n*m个方程,只是关于待定系数的方程是非线性的,把residual的方程
代入到broyden里面,它就帮算最后的C是多少。我还是没有自己算jacobian,因为脑子总
是糊涂,矩阵乘来除
space |