带参数的数值积分,帮忙看下哪错了。

7 views (last 30 days)
bidefe
bidefe on 25 Nov 2022
Answered: fowinec on 25 Nov 2022
求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

Accepted Answer

fowinec
fowinec on 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);

More Answers (0)

Categories

Find more on 函数基础知识 in Help Center and File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!