专栏
标签
欧拉法运行出来的结果误差太大,怎么解决?
一般问题
发布于 2024-12-19 20:12:19
查看 28过去556天

function f(t,y)
return t-(y^2)+1
end
function g(t)
return (t+1)^2-0.5(exp(t))
end
function oulafa(y0,f,d,h)
n=Int(d/h)
w=zeros(n+1)
t=zeros(n+1)
w[1]=y0
t[1]=0
for i=2:(n+1)
t[i]=t[i-1]+h
w[i]=w[i-1]+h*f(t[i-1],w[i-1])
end
return w[end]
end
y0=0.5
d=2
h=0.2
result1=oulafa(y0,f,d,h)
result2=g(2)
println("欧拉法结果为 ",result)
println("通解初值结果为 ",result2)
以上是利用欧拉法(不是修正欧拉法)的代码,运行结果如下:欧拉法结果为 1.6359576152999367
通解初值结果为 5.305471950534675 两者误差太大了,如何修改?

所属专栏:Julia语言
产品信息:Syslab科学计算环境
科学计算

全部回答 1

发布于 2024-12-20 13:50:07

根据欧拉法的概念,代码是没有问题的,感觉是那个通解的函数和所求的函数对应关系有问题,我用软件自带的ode23对这个函数求了一下,显示在t=2处的时候,结果和你这个脚本的结果相同,所以建议确认下那个精确解的函数。
image.png

用户
和原帖交流更多问题细节吧,去
我要发帖 我要发帖
资料中心 资料中心
查看更多>
热门帖子 热门帖子
主要贡献者 主要贡献者
过去7天