在cnblogs上的专栏

导航

工程上一例误差范围的计算方法(利用穷举法俗称笨方法又称愚公移山法还可称愚公大战智叟法)

     --工程上一例误差范围的计算方法(利用穷举法俗称笨方法又称愚公移山法还可称愚公大战智叟法)

declare @Const_A DECIMAL(8,6),@Const_B DECIMAL(8,6),@Const_C DECIMAL(8,6),
        @p DECIMAL(16,6),@q DECIMAL(16,6),@c DECIMAL(16,6),@Step_p float,@Step_q float

declare @t table(p DECIMAL(16,6),q DECIMAL(16,6),c DECIMAL(16,6))

select @Const_A=0.001,@Const_B=0.001,@Const_C=0.02 --有效位与误差极限值设置

select @p=1,@q=1,@Step_p=0.001,@Step_q=0.001 --起始值与步长值设置

select @c=(power(power(@p+@Const_A,2)+power(@q+@Const_B,2),0.5)-power(power(@p,2)+power(@q,2),0.5))/power(power(@p,2)+power(@q,2),0.5)
while((@c<=@Const_C) and (@p>=0) and (@q>=0))
begin
  --select  @p,@q,@c
  insert into @t(p,q,c) select @p,@q,@c 
  select @p=@p-@Step_p,@q=@q-@Step_q
  select @c=(power(power(@p+@Const_A,2)+power(@q+@Const_B,2),0.5)-power(power(@p,2)+power(@q,2),0.5))/power(power(@p,2)+power(@q,2),0.5) 
end
--print 'p与q变量的取值范围:'
select p as p值,q as q值,c as 误差值 from @t order by 1,2


 

posted on 2011-09-14 12:21  Double_  阅读(338)  评论(0编辑  收藏  举报