1樓:
建議:取消syms,用數值積分方法先計算積分號裡面的東西,而不要用符號積分演算法。將下面這段:
syms z
w1=mt*t0/(4*pi*m*ne*(dl*dt)^0.5);
w2=exp(x.*u/(2*dl));
b=((u*x./(2*dl)).^2+(u*y).^2/(4*dl*dt)).^0.5;
w3=2*besselk(0,b);
w5=int((1/z)*exp(-z-(b.^2/(z*4))),t*u^2/(4*dl),inf);
w4=double(w5);
替換為w1=mt*t0/(4*pi*m*ne*(dl*dt)^0.5);
w2=exp(x.*u/(2*dl));
b=((u*x./(2*dl)).^2+(u*y).^2/(4*dl*dt)).^0.5;
w3=2*besselk(0,b);
ifun = @(z,b)(1./z).*exp(-z-(b.^2./(z*4)));
w5=integral(@(z)ifun(z,b),t*u^2/(4*dl),inf);
w4=w5;
2樓:仍樂
看不太懂你的程式,
不過明顯有很大問題,
數值計算絕對不應該出現syms(符號變數),感覺教你matlab的完全不懂matlab,請把你的符號積分全部換成數值積分
就你這簡單的小積分(-200:5:1000) 就是幾秒的事
matlab如何執行程式啊,如何執行matlab程式
不是沒反應,應該是讓你輸入一個分數,比如95,再回車看有沒有反應 如何執行matlab程式?1 開啟matlab軟體。2 找到指定的m檔案,並開啟。3 在選單欄找到 4 選中不需要執行的 全部選中。5 選中後點選 6 這是看到 變成了綠色,說明已經註釋好,即不會執行。7 再次點選執行,會發現綠色部分...
matlab上的程式在C語言上能執行嗎
五桂蘭焉汝 matlab上的程式在c語言上能執行。matlab是一種科學的計算語言,採用的是解釋執行的方式,所有在c語言上能執行。有一個通俗的比喻,如果程式設計語言是車,那麼c 語言就是全能手,c十十語言是加強版的c 語言,matlab 是科學家用來完成特殊任務的工具。作為使用matlab的科學家和...
求c 大神,程式為啥執行了會自動停止!程式如下!題目如圖
你試試這個 看行不 include using namespace std void main cout k cout m cin m for i k i cout for i 0 i free p cout 這個排序也需要你自己排序嗎?你這個 沒看懂思路 蒼紫幽藍 是因為你的初始化的問題。a根本沒...