带参数的数值积分,帮忙看下哪错了。
6 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
求y=kx在【1,5】上的积分:
k=linspace(0,5);
>> for i=1:length(k)
kk=k(i);
fun=inline('kk.*x','x');
y(i)=quadl(fun,1,5);
end
0 Commenti
Risposta accettata
fowinec
il 25 Nov 2022
对于这类带(向量化)参数的积分,可以用向量化积分函数一次性计算,不需要循环调用来调用多次积分函数。另外,楼上版主说得对,尽量用匿名函数代替inline函数,inline函数调用开销比较大,而且使用很不灵活,尤其是参数传递方面,像你这里,参数k就无法传递进去。但是匿名函数就不用担心参数传递了。
k=linspace(0,5);
y1 = quadv(@(x) k*x, 1, 5);
y2 = integral(@(x) k*x, 1, 5, 'ArrayValued', true);
0 Commenti
Più risposte (0)
Vedere anche
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!