- 积分
- 35
- 注册时间
- 2002-5-31
- 仿真币
-
- 最后登录
- 1970-1-1
|
发表于 2010-12-22 21:33:29
|
显示全部楼层
来自 北京
如果是精度不高的数值解,可以尝试如下,不过手头没有程序 无法测试 可能语法也会有小错 只是提供个思路 result 为输出结果,如果result=1234567 那么计算没有获得结果。
!i=1 i=1情况
i=1
a=1
b=1
num=100000
max=1000
err=1e-3 !控制精度
result=1234567
*dim,x,array,num
*dim,y,array,num
*do,ii,1,num
x(ii)=ii-num/2
y(ii)=a*x(ii)+b*sin(ii)
*enddo
*do,ii,2,num
*if,(y(ii)-0.9*i)*(y(ii-1)-0.9*i),le,0,then
val1=y(ii)
val2=y(ii-1)
*endif
*enddo
*do,ii,1,max
*if,abs(val1-val2),le,err,then
result=val1
*else
val3=min(val1,val2)+abs(val1-val2)/2
*if,(val1-0.9*i)*(val3-0.9*i),le,0,then
val2=val3
*else
val1=val3
*endif
*endif
*enddo |
|