专栏
标签
函数问题
一般问题
发布于 2025-03-21 14:28:52
查看 12过去464天

x=0:0.5:2
y=sqrt.(1 .+x.^2)
t=trapz(y)
q=quad(u->sqrt(1+u^2),0,2)
qq=quadl(u->sqrt(1+u^2),0,2)
println(t)
println(q)
println(qq)

x=0:0.05:2
y=sqrt.(1 .+x.^2)
t=trapz(y)
q=quad(u->sqrt(1+u^2),0,2)
qq=quadl(u->sqrt(1+u^2),0,2)
println(t)
println(q)
println(qq)

x=0:0.01:2
y=sqrt.(1 .+x.^2)
t=trapz(y)
q=quad(u->sqrt(1+u^2),0,2)
qq=quadl(u->sqrt(1+u^2),0,2)
println(t)
println(q)
println(qq)

x=0:0.005:2
y=sqrt.(1 .+x.^2)
t=trapz(y)
q=quad(u->sqrt(1+u^2),0,2)
qq=quadl(u->sqrt(1+u^2),0,2)
println(t)
println(q)
println(qq)
为什么trapz这个梯形方法随着步长的减小误差成倍数增加,和另外两种方法相比误差极大,是函数本身的问题还是代码问题呢

所属专栏:Syslab基础平台
产品信息:Syslab科学计算环境
科学计算
附件 1 个附件(1kb)
采纳的回答
发布于 2025-03-21 16:54:17

您好,您的代码中使用的事trapz(y),trapz(y) 会默认根据y的长度填充 1:length(y)这样的x轴坐标信息.建议使用trapz(x,y),可以固定x轴范围。

全部回答 1

发布于 2025-03-21 16:54:17

您好,您的代码中使用的事trapz(y),trapz(y) 会默认根据y的长度填充 1:length(y)这样的x轴坐标信息.建议使用trapz(x,y),可以固定x轴范围。

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