matlab中积分的问题p=linspace(0,0.05,100);b=(很长的关于p的公式)t=b.^2*pi^2*10^(-3)*r^4*0.25.*p/(r^2+p.^2);f=trapz(p,t);这样的t关于p的积分会显示有错误,但是当我将t等式中的p提出来单独乘一遍(如下)就
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/01 07:17:39
![matlab中积分的问题p=linspace(0,0.05,100);b=(很长的关于p的公式)t=b.^2*pi^2*10^(-3)*r^4*0.25.*p/(r^2+p.^2);f=trapz(p,t);这样的t关于p的积分会显示有错误,但是当我将t等式中的p提出来单独乘一遍(如下)就](/uploads/image/z/12529931-59-1.jpg?t=matlab%E4%B8%AD%E7%A7%AF%E5%88%86%E7%9A%84%E9%97%AE%E9%A2%98p%3Dlinspace%280%2C0.05%2C100%29%3Bb%3D%EF%BC%88%E5%BE%88%E9%95%BF%E7%9A%84%E5%85%B3%E4%BA%8Ep%E7%9A%84%E5%85%AC%E5%BC%8F%EF%BC%89t%3Db.%5E2%2Api%5E2%2A10%5E%28-3%29%2Ar%5E4%2A0.25.%2Ap%2F%28r%5E2%2Bp.%5E2%29%3Bf%3Dtrapz%28p%2Ct%29%3B%E8%BF%99%E6%A0%B7%E7%9A%84t%E5%85%B3%E4%BA%8Ep%E7%9A%84%E7%A7%AF%E5%88%86%E4%BC%9A%E6%98%BE%E7%A4%BA%E6%9C%89%E9%94%99%E8%AF%AF%2C%E4%BD%86%E6%98%AF%E5%BD%93%E6%88%91%E5%B0%86t%E7%AD%89%E5%BC%8F%E4%B8%AD%E7%9A%84p%E6%8F%90%E5%87%BA%E6%9D%A5%E5%8D%95%E7%8B%AC%E4%B9%98%E4%B8%80%E9%81%8D%EF%BC%88%E5%A6%82%E4%B8%8B%EF%BC%89%E5%B0%B1)
matlab中积分的问题p=linspace(0,0.05,100);b=(很长的关于p的公式)t=b.^2*pi^2*10^(-3)*r^4*0.25.*p/(r^2+p.^2);f=trapz(p,t);这样的t关于p的积分会显示有错误,但是当我将t等式中的p提出来单独乘一遍(如下)就
matlab中积分的问题
p=linspace(0,0.05,100);
b=(很长的关于p的公式)
t=b.^2*pi^2*10^(-3)*r^4*0.25.*p/(r^2+p.^2);
f=trapz(p,t);
这样的t关于p的积分会显示有错误,但是当我将t等式中的p提出来单独乘一遍(如下)就可以积分了.求大神指导.
p=linspace(0,0.05,100);
b=……;
t=b.^2*pi^2*10^(-3)*r^4*0.25/(r^2+p.^2);
t=t.*p;
f=trapz(p,t);
上式可以进行积分
matlab中积分的问题p=linspace(0,0.05,100);b=(很长的关于p的公式)t=b.^2*pi^2*10^(-3)*r^4*0.25.*p/(r^2+p.^2);f=trapz(p,t);这样的t关于p的积分会显示有错误,但是当我将t等式中的p提出来单独乘一遍(如下)就
你的这个问题,错在这一句:t=b.^2*pi^2*10^(-3)*r^4*0.25.*p/(r^2+p.^2);
“b.^2*pi^2*10^(-3)*r^4*0.25.*p” 是个向量吧?“r^2+p.^2”也是向量吧?
那应该用“./”呀,你前面都用了,怎么到这儿粗心了呢.
改一下就可以了:t=b.^2*pi^2*10^(-3)*r^4*0.25.*p./(r^2+p.^2);
你后面的运算没有报错,是因为用“/”也能算出t的值来的
相当于2个向量相除,解出的t值只有一个值,并不是个向量
而你后面再用t=t.*p;运算,相当于人为又把t变成向量了
但不是t本来的值.虽然没报错,但结果应该不是很准确
也有可能当r取一定值时,结果比较接近.
反正,我试了一下,2种积分的结果相差倒是不大,主要是不知道你b的定义.