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

6 ビュー (過去 30 日間)
bidefe
bidefe 2022 年 11 月 25 日
回答済み: fowinec 2022 年 11 月 25 日
求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

採用された回答

fowinec
fowinec 2022 年 11 月 25 日
对于这类带(向量化)参数的积分,可以用向量化积分函数一次性计算,不需要循环调用来调用多次积分函数。另外,楼上版主说得对,尽量用匿名函数代替inline函数,inline函数调用开销比较大,而且使用很不灵活,尤其是参数传递方面,像你这里,参数k就无法传递进去。但是匿名函数就不用担心参数传递了。
k=linspace(0,5);
y1 = quadv(@(x) k*x, 1, 5);
y2 = integral(@(x) k*x, 1, 5, 'ArrayValued', true);

その他の回答 (0 件)

カテゴリ

Help Center および File Exchange函数基础知识 についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!