期末考试相关说明Word文档格式.docx
- 文档编号:15218239
- 上传时间:2022-10-28
- 格式:DOCX
- 页数:14
- 大小:80.34KB
期末考试相关说明Word文档格式.docx
《期末考试相关说明Word文档格式.docx》由会员分享,可在线阅读,更多相关《期末考试相关说明Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
);
getch();
Thescreenhasbeencleared!
"
return0;
}
说明2牛顿迭代法
编写程序,用牛顿迭代法求方程f(x)=3x3-4x2-5x+13=0的满足精度为10-6的一个近似实根。
分析:
这也是教材习题中要求掌握的一类算法题。
该题涉及到了牛顿迭代法的计算方法:
设一初值x0,然后用牛顿迭代公式x=x0-f(x0)/f'
(x0)计算出下一个x,重复不断地用刚计算出的x取代上一个x值,接着再用迭代公式计算新的x,直至两次计算出的x的差额不超过10-6为止。
正确答案:
-1.548910
程序流程分析:
①
输入值x0,即迭代初值;
②
用初值x0代入方程中计算此时的f(x0)及f’(x0),程序中用变量f描述方程的值,用fd描述方程求导之后的值;
③
计算增量d=f/fd;
④
计算下一个x,x=x0-d;
⑤
把新产生的x替换x0,为下一次迭代做好准备;
⑥
若d的绝对值大于1e-5,则重复②③④⑤步。
源程序代码:
#include<
math.h>
main(){
floatx,x0,d,f,fd;
scanf("
%f"
&
x0);
do{
f=3*x0*x0*x0-4*x0*x0-5*x0+13;
fd=9*x0*x0-8*x0-5;
d=f/fd;
x=x0-d;
x0=x;
}
while(fabs(d)>
1e-5);
printf("
x=%f\n"
x);
}
例6.12用牛顿迭代法求方程2x3-4x2+3x-6=0在1.5附近的根
解:
牛顿迭代法又称牛顿切线法。
它采用以下的方法求根:
先任意设定一个与真实的根接近的值x0作为第一次近似根,由x0求出f(x0),过(x0,f(x0))点做f(x)的切线,交x轴于x1,把它作为第二次近似根,再由x1求出f(x1),过(x1,f(x1))点做f(x)的切线,交x轴于x2,求出f(x2);
再作切线……如此继续下去,直到足够接近真正的根x*为止。
f'
(x0)=f(x0)/(x1-x0)
因此:
x1=x0-f(x0)/f'
(x0)
这就是牛顿迭代公式。
可以利用它由x0求出x1,然后再由x2求出x3……
设
f(x)=2x3-4x2+3x-6
可以写成以下形式:
f(x)=[(2x-4)x+3]x-6
同样,f'
(x)可写成:
(x)=6x2-8x+3=(6x-8)x+3
用这种方法表示的表达式,在运算时可节省时间。
例如求f(x)只需要进行3次乘法和3次加法,而原来的表达式要经过多次指数运算、对数运算和乘法、加法运算,花费时间较多。
现在由于计算机的运算速度愈来愈快,这点时间开销是微不足道的,这是以前计算机的运算速度较慢时所提出的问题。
由于过去编写的程序往往采用这种形式,所以我们在此也顺便介绍一下,以便在阅读别人所写的程序时知道其所以然。
程序如下:
(xt6-12.c)
stdio.h>
main()
{floatx,x0,f,f1;
x=1.5;
do
{x0=x;
f=((2*x0-4)*x0+3)*x0-6;
f1=(6*x0-8)*x0+3;
x=x0-f/f1;
}while(fabs(x-x0)>
=1e-5);
Therootofequationis%5.2f\n"
运行结果:
Therootofequationis2.OO
为了便于循环处理,程序中只设了x0和x,x0代表前一次的近似根,x代表后一次的近似根。
求出一个x后,把它的值赋给x0,然后用它求下一个x0由于第一次执行循环体时,需要对x0赋值,故在开始时应先对x赋一个初值(今为1.5,也可以是接近真实根的其他值)。
说明3二分法
6.13用二分法求下面方程在(-10,10)之间的根。
2x3-4x2+3x-6=0
二分法的思路如下:
先指定一个区间[x1,x2),如果函数f(x)在此区间是单调变化的,则可以根据f(x1)和f(x2)是否同号来确定方程f(x)=0在区间[x1,x2]内是否有一个实根。
若f(x1)和f(x2)不同号,则f(x)=0在区间[x1,x2]内必有一个(且只有一个)实根;
如果f(x1)和f(x2)同号,则f(x)在区间[x1,x2]内无实根,要重新改变x1和x2的值。
当确定f(x)在[x1,x2]内有一个实根后,可采取二分法将[x1,x2]一分为二,再判断在哪一个小区间中有实根。
如此不断进行下去,直到小区间足够小为止
具体算法如下:
(1)输入x1和x2的值。
(2)求f(x1)和f(x2)。
(3)如果f(x1)和f(x2)同号说明在[x1,x2]内无实根,返回步骤
(1),重新输入x1和x2的值;
若f(x1)和f(x2)不同号,则在[x1,x2]必有一个实根,执行步骤(4)。
(4)求x1和x2的中点:
x0=(x1+x2)/2。
(5)求f(x0)。
(6)判断f(x0)与f(x1)是否同号。
①如果同号,则应在[x0,x2]中寻找根,此时x1已不起作用,用x0代替x1,用f(x0)代替f(x1)。
②如果f(x0)与f(x1)不同号,则说明应在[x1,x0]中寻找根,此时x2已不起作用,用x0代替x2,用f(x0)代替f(x2)。
(7)判断f(x0)的绝对值是否小于某一个指定的值(例如10-5)。
若不小于10-5,则返回步骤(4)重复执行步骤(4)、(5)、(6);
否则执行步骤(8)。
(8)输出x0的值,它就是所求出的近似根。
{floatx0,x1,x2,fx0,fx1,fx2;
{printf("
Enterx1&
x2:
%f,%f"
x1,&
x2);
fx1=x1*((2*x1-4)*x1+3)-6;
fx2=x2*((2*x2-4)*x2+3)-6;
}while(fx1*fx2>
0);
{x0=(x1+x2)/2;
fx0=x0*((2*x0-4)*x0+3)-6;
if((fx0*fx1)<
0)
{x2=x0;
fx2=fx0;
else
{x1=x0;
fx1=fx0;
}while(fabs(fx0)>
x=%6.2f\n"
x0);
说明4折半查找法
折半查找法是效率较高的一种查找方法。
假设有已经按照从小到大的顺序排列好的五个整数a[0]~a[4],要查找的数是X,其基本思想是:
设查找数据的范围下限为l=1,上限为h=5,求中点m=(l+h)/2,用X与中点元素a[m]比较,若X等于a[m],即找到,停止查找;
否则,若X大于a[m],替换下限l=m+1,到下半段继续查找;
若X小于a[m],换上限h=m-1,到上半段继续查找;
如此重复前面的过程直到找到或者l>
h为止。
如果l>
h,说明没有此数,打印找不到信息,程序结束。
该方法是查找的范围不断缩小一半,所以查找效率较高。
比如{1,3,9,12,32,41,45,62,75,77,82,95,100要找82需要找几次
4次
第一次:
1,3,9,12,32,41,【45】,62,75,77,82,95,100
第二次:
1,3,9,12,32,41,【45】,62,75,【77】,82,95,100
第三次:
1,3,9,12,32,41,【45】,62,75,【77】,82,【95】,100
第四次:
1,3,9,12,32,41,【45】,62,75,【77】,【82】,【95】,100
运用举例
1.//折半查找
2.intBinSearch1(intr[],intn,intk)
3.{
4.intlow=0,high=n;
//设置初始查找区间
5.while(low<
=high)
6.{
7.
intmid=(low+high)/2;
//取中间点,比较k与r[mid],
8.
if(k<
r[mid])
9.
high=mid-1;
10.
else
11.
if(k>
12.
low=mid+1;
13.
14.
returnmid;
//查找成功
15.}
16.
return0;
//查找失败
说明5选择排序(与书上p1347.3起泡的区别?
)
原理一次选定数组中的每一个数,记下当前位置并假设它是从当前位置开始后面数中的最小数min=i,从这个数的下一个数开始扫描
直到最后一个数,并记录下最小数的位置min,扫描结束后如果min不等于i,说明假设错误,则交换min与i位置上的数。
用选择法对10个整数排序(从小到大)。
1.程序分析:
所谓选择法就是先将10个数中最小的数与a[0]对换;
再将a[1]到a[9]中最小的数与a[1]对换……每比较一轮,找出一个未经排序的数中最小的一个。
共比较9轮。
下面以5个数为例说明选择法的步骤。
a[0]a[1]a[2]a[3]a[4]
36194未排序时的情况
16394将5个数中最小的数1与a[0]对换
13694将余下的4个数中最小的数3与a[1]对换
13496将余下的3个数中最小的数4与a[2]对换
13469将余下的2个数中最小的数6与a[3]对换,至此完成排序
2.程序流程图:
3.程序N-S图:
4.程序源代码:
voidsort(intarray[],intn)
{
inti,j,k,t;
for(i=0;
i<
n-1;
i++)
{k=i;
for(j=i+1;
j<
n;
j++)
if(array[j]<
array
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 期末考试 相关 说明