科学计算导论小班课报告--第八组(最终) 关于单点割线法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

科学计算导论小班课报告
一、讨论题目
用割线法解方程:03=-a x 二、小组分工
本次讨论课组长:易雪媛,具体讨论分工如下: 易雪媛:PPT 制作与小班课讲解 杨锦涛:MATLAB 代码编写 易全政:计算与报告文档写作
三、相关知识准备
本次讨论课主题是使用割线法求解方程,因为在进行本次小班课题目准备前,复习并准备了一些关于割线法相关知识: ※1、使用割线法的原因:
Newton ’s Method 一步要计算 f 和 f ’,相当于2个函数值,比较费时。

现用 f 的值近似 f ’,可少算一个函数值。

即使用割线斜率来代替切线斜率,减少了计算量,并加快了收敛速度。

※2、割线法具体表现形式: 切线斜率≈割线斜率1
1)
()()(----≈
'⇒k k k k k x x x f x f x f
*
)
()())((111--+---
=⇒
k k k k k k k x f x f x x x f x x
此时使用此迭代公式的时候就需要两个初值:
1
0x x 、
这种方式也交做双点割线法。

※3、单点割线法的迭代公式: 同样对于双点割线法,将0
1x x k 换成-便可以得到单点的迭代公
式如下:
)()()
)((001x f x f x x x f x x k k k k k ---
=+
※4、关于双点割线法的课本MABLAB 程序: function [x_star,k]=Gline(fun,x0,x1,ep,Nmax)
% 用双点割线法解非线性方程f(x)=0
% x=Gline(fun,x0,x1,e,Namx),fun 表示f(x)x0,x1为迭代初值
% ep 为精度(默认值为1e-5),x 返回解,k 为迭代次数上限以防发散(默认500) if nargin<5 Nmax=500;end if nargin<4 ep=1e-5;end k=0;
while abs(x1-x0)>ep&k<Nmax k=k+1 x2=x1-feval(fun,x1)*(x1-x0)/( feval(fun,x1)-feval(fun,x0)) x0=x1;
x1=x2; end
x_star=x1;
if k==Nmax warning('已迭代上限次数'); end
四、题目解答
※1、求解03=-a x 的步骤:
1)根据a 的值估测x 的取值范围区间,即代为双点割线法的初始值10x x 、;
2)将)(k x f 的值带入迭代公式中,此时迭代公式变为: )(3
3
1
311a x x x x x x x k k k k k k k -∙---
=--+ 3)带入已知a 及初值依次迭代,直到符合要求精度为止,一般默认精度为5-e
※2、假设a=115,演示求解过程:
1)根据a=115,可得5,410==x x ; 2)迭代公式为:
)115(3
3
1311-∙---=--+k k k k k k k x x x x x x x 3)带入初始值,迭代第一次可得:
44.83606557)115(3
13
0310112=-∙---=x x x x x x x 4)继续迭代可得到下表:
k k x
k k x
0 4 4 4.859450891 1 5 5 4.86296352 2 4.836065574
6 4.862944117
7
4.862944131
5)因此可以在精度要求得到a=115时候的值为:
8629441.4=x
五、MABLAB 代码
1、双点割线法: shuangge.m 文件:
function t =shuangge( a )
%FENGE Summary of this function goes here % Detailed explanation goes here,,,,x^3-a=0; x1=floor((a).^(1/3));
x2=floor((a).^(1/3))+1; while abs(x1-x2)>0.00001
f1=x1^3-a; f2=x2^3-a;
x3=x1-(x1-x2)*f1/(f1-f2);
x1=x2;
x2=x3;
end
t=(x1+x2)/2;
End
命令行测试:
>> shuangge(115)
ans =
4.8629
2、单点割线法:
dange.m文件:
function [ x ] = dange( a,t1,t2 )
f=@(x)x^3-a;
x0=t1;
x1=t2;
x3=0;
if a==0;
x1=0;
else
while abs(x1-x3)>1e-6
x3=x1;
x2=x1-(x1-x0)*f(x1)/(f(x1)-f(x0));
x1=x2;
end
end
x=x1;
命令行测试:
>> dange(115,4,5)
ans =
4.8629
六、心得体会
本次小班讨论课我们通过一个实例来深入展开对割线法的探讨。

我们从其产生原因、方法特点、几何意义等方面进行了讨论,从而对单点及双点割线法有了更加深入的理解。

相关文档
最新文档