matlab计算数值积分(复杂,希望给出关键语句)
发布网友
发布时间:2022-11-16 18:59
我来回答
共1个回答
热心网友
时间:2024-12-12 04:46
关键是写出正确被积函数,对其进行采样。
x0 = 0;
b = 1;
f = @(x) sqrt(1+(exp((x-x0).^2/(-2*b^2))).^2); % 被积函数
xs = (x0:0.01:x0+sqrt(log(8*b))).'; % 采样点
fs = f(xs);
bl = trapz(xs, fs)/3; % 积分追问还有一点问题,困惑我好久了,希望大哥说两三句让我茅塞顿开。。。
就是为什么在次方前加个点?我看过好多地方都要加,我是新手,对matlab所知甚少,我搜过说是对应元素相乘。这里没有数组和矩阵为什么要加点呢。
还有就是trapz和int函数有什么区别呢,我用int似乎也得出一个结果,不知道对不对。
希望答疑解惑
追答1. 举例:
x = [1 2; 3 4];
y1 = x^2
y2 = x.^2
自己运行一下这三句代码,看看加不加点有什么区别就明白了。
2. xs 是向量(矩阵)啊,要带入f里计算的。
3. trapz是纯粹的数值积分计算,输入的参数是自变量序列和对应点上的函数值;int可以做符号积分。