【发布时间】:2018-08-24 06:34:55
【问题描述】:
在我的计算课程中,我被要求使用 MATLAB 中的梯形规则来确定区间 (0,20) 上的函数长度。
抛物线由以下函数给出:
y(x) = 0.1x^2 -2*x + 16
我首先通过弧长积分计算长度,使用 y 的导数:y'(x) = 0.2x - 2
我取了sqrt(1+(0.2x - 2)^2) 的积分。答案应该大约是29,5。
现在,我在 MATLAB 中有以下内容:
y = @(x) sqrt(1+(0.2*x-2)^2);
x0=input('enter the value of Initial Limit x0'); *which is 0*
xn=input('enter the value of Final Limit xn'); *which is 20*
N=input('enter the total number of areas');
h=((xn-x0)/N);
area=0;
while(x0<xn)
area=area+(h/2)*(y(x0)+y(x0+h));
x0=x0+h;
end
fprintf('mysol for L=%.16f',area);
现在,我被要求以N=200,400,800,1600... 的顺序增加已使用区域的数量N,直到达到一定的准确度。
如何获得一张整洁的表格,在其中可以看到我的 N 与我的长度?
【问题讨论】:
-
我不知道您是否需要 1) 一种显示表格的方法,2) 一种计算所有值的方法 3) 两者。你能指定吗?
-
@AnderBiguri 好吧,我需要一个表,其中有一列 N 值,旁边是长度值的列。因为当我将 N 加倍时,我应该得到更好的长度精度。如何获得自动计算这些值的表格?
-
只需为
N=[200,400,800,1600]创建一个 for 循环并将结果(而不是打印)保存在数组中 -
@AnderBiguri 但我应该把 for 循环放在哪里?它说错误,因为 N 的尺寸与公式不符。
-
朋友,你需要学习一些基本的编程。
标签: matlab numerical-integration