1樓:匿名使用者
你的函式引數猜賣要求是數值,但命令列輸入的時候給函式傳遞的是乙個向量0:50。
所以函式內部在for迴圈那裡,for k=0:m裡面的m代入的是向量,那麼matlab自動取矩陣的第清坦乙個元素,你這裡是0,所以就變成for k=0:0,等於沒迴圈。
因此最後結果只有s=0
解決辦法,一種可以在命穗正逗令行輸入for迴圈求y。
m=0:50;
y=>for k=1:length(m)
y(k)=fun1(m(k));
end >plot(
第二種辦法,把函式改寫了,引數按矩陣來算。
function s=fun1(m)
s=zeros(size(m));
for k=1:numel(m)
a=m(k)*binopdf(0:m(k),100,;
s(k)=sum(a(:)
end; 這樣函式就可以接受矩陣了。
然後在命令列輸入。
m=0:50;
y=fun1(m);
plot(m,y)
2樓:匿名使用者
你的問題太那個啥了。重新編寫積分程式,而沒有演算法說明。這不是順手就能編寫的程式吧。
3樓:匿名使用者
數值積分的演算法不少啊。最簡單的是梯形公式那個。
matlab求函式的數值積分
4樓:網友
matlab中常用的求函式的數值積分方法,可以用以下函式來求解:
1、對於一重積分,有quad【自適應步長simpson數值積分】、quadl【高精度lobatto數值積分】、quadgk【自適應gauss-kronrod數值積分】、trapz【梯形數值積分】,上述函式呼叫格式分別為
quad(fun,a,b)%fun—被積函式,a—積分下限,b—積分上限
quadl(fun,a,b)%fun—被積函式,a—積分下限,b—積分上限
quadgk(fun,a,b)%fun—被積函式,a—積分下限,b—積分上限
trapz(x,y)%x—自變數【a,b】區間的等差向量,y—對應於x的被積函式值
2、對於二重積分,有quad2d【平面區域的數值積分】,dblquad【矩形區域的數值積分】,其呼叫格式分別為
quad2d(fun,xmin,xmax,ymin,ymax)
dblquad(fun,xmin,xmax,ymin,ymax)
3、對於三重積分,有triplequad【三維矩形區域的數值積分】,其呼叫格式為
triplequadfun,xmin,xmax,ymin,ymax,zmin,zmax)
matlab求函式極值,matlab求函式的極值
你要求數值解還是解析解?就乍一看,後面那個積分存不存在還難說呢。matlab求函式的極值 x 10 y zeros numel x 1 for i 1 numel x y i sin i 2 cos i 2 endy min min y y max max y x min x find y y mi...
matlab定積分問題
數值計算 integral t sin 200 t sqrt 1 0.778 sin 200 t 0,0.01 ans 0.0041 可以執行的。執行軟體matlab 7.0 syms t s int sin 200 t sqrt 1 0.778 sin 200 t 0,0.01 s 1 300 3...
matlab累積分佈函式圖 cdf
長孫慧俊塞豪 clca 1.39232e 006 1.28363e 006 219227 15762 343458 1.32344e 006 1.31899e 006 1.04051e 006 564586 109807 136834 62825.9 1.27774e 006 1.30597e 00...