Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
![]() |
#10 |
高级会员
注册日期: 2008-11-07
住址: 湖南长沙
帖子: 233
声望力: 21 ![]() |
![]()
这种方程求解起来很简单的,可以采用不动点迭代法,然后在计算过程中控制误差的下限。
首先,f(x)=a(2x)^b+c(2x)^d-e 其中a=6,b=-0.092,c=2.5,d=-0.445,e=0.008. 其次,把方程改写成如下的迭代形式:x=f(x)+x x(n)=f(x(n-1))+x(n-1) 这样就可以写出一个不动点的求解函数,方程写成M文件,保存到当前工作目录下,直接调用就可以计算了。 function [root,n]=Bu_Dong_Dian(f,x0,eps) if(nargin==2) eps=1.0e-9; end tol=1; root=x0;%初始迭代点: x(0)=8.9050e+030 n=0; while(tol>eps) n=n+1; root1=root; root=subs(sym(f),findsym(sym(f)),root1)+root1; tol=abs(root-root1); end
__________________
坚持就是胜利,努力就有奇迹。 |
![]() |
![]() |