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