
一、差分法是微分方程的一种近似数值解法。具体地讲,差分法就是把微分用有限差分代替,把导数用有限差商代替,从而把基本方程和边界条件(一般均为微分方程)近似地改用差分方程(代数方程)来表示,把求解微分方程的问题改换成为求解代数方程的问题。在d性力学中,用差分法和变分法解平面问题。
二、差分法的具体步骤:
1、“差分法衫或”本身是一种“精算法”而非“估算法”,得出来的大小关系是精确的关系而非粗略的关系;
2、“伏伏差分法”与“化同法”经常联系在一起使用,“化同法紧接差分法”与“差分法紧接化同法”是资料分析速算当中经常遇到的两种情形。
3、“缺塌携差分法”得到“差分数”与“小分数”做比较的时候,还经常需要用到“直除法”。
4、如果两个分数相隔非常近,我们甚至需要反复运用两次“差分法”,这种情况相对比较复杂,但如果运用熟练,同样可以大幅度简化计算。
没有初始化low,就会报运行时错误早蚂,初始化一下low就好了#include
"stdio.h"
#define
List_Size
20
struct
RecordType
{
int
key
//简单查找
char
otherkey
}
struct
RecordList
{
RecordType
r[List_Size+1]
int
length
}list1,*p
void
init_list()
{
int
i
//初始化数据
p=&list1
for(i=0i<List_Size+1i++)
{
p->r[i].key
=i
p->r[i].otherkey
=i+1
}
p->length
=List_Size+1
for(i=0i<List_Size+1i++)
//确认初始化数据
{
printf("list.r[%d].key=%d,list.r[%d].otherkey=%d\n",i,p->r[i].key,i,p->r[i].otherkey)
}
printf("list.length=%d\n",p->陆灶埋length)
}
int
BinSrch(RecordList
L,int
k)
//二分差算法
{
int
low,high,mid
int
i=0
low
=
0
//初始化low
high=L.length-1
while(low<=high)
{
mid=(low+high)/2
if(k==L.r[mid].key)
{
i=midbreak
}
else
{
if(k
<
L.r[mid].key)
{
high=mid-1
}
else
low=mid+1
}
}
/辩正/
if((low==high)&&(k!=L.r[mid].key))
//
{
//
return
(0)
//
}
return
(i)
}
void
main()
{
int
result=0
p=&list1
init_list()
result=BinSrch(list1,7)
printf("the
reslut=%d",result)
getchar()
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)