急。用matlab解非常係數的非分方程數值解。56 1 x D2y 56 1 Dy 56 626 y

2022-08-30 02:05:04 字數 1103 閱讀 4475

1樓:

「假設x=0時y=100來解」是不合理的,

因為 x=0時dy=0,x=0.02時y=200 已經給定邊界條件,你再給它假設邊界條件時,解就不一樣了。

另外,ode只能計算已知初值的微分方程(如 y(0) = y0, y'(0) = y1, ...),對於y(0.02) = 200的邊界值,需要轉化為初值,再求解。

不能直接假設。

而且,這個微分方程不能從 0 開始計算,如果從 0 開始,yp(2)由於 ''/56.1/x''會變為無窮,因而後面再迭代會產生 inf 參與的計算,從而y顯示為nan。

解法如下:

56.1*x*y''+56.1*y'+56.626*y=0,代入 x = 0,

得到 56.1*y'(0) + 56.626*y(0) = 0,

因為 y'(0) = 0,所以 y(0) = 0,(初值y(0))

也就是 ode45 的初始條件為:y(0) = 0,y'(0) = 0

雖然得到了初始值,但是還是有問題,因為如果從 0 開始

第一次代入時,

y(1) = y(0) = 0;

y(2) = y'(0) = 0;

yp(2) = -(56.1*y(2)+56.626*y(1))/56.1/x

= -(56.1*0+56.626*0)/56.1/0 (出現了 0/0,因而後面無論怎麼算都是 nan)

= nan

以下是我修改的**,一樣沒有曲線,因為問題就是如上所述,函式在 0 時沒有意義

function my_solve()

[x,y]=ode45(@vdpol,[0,0.02],[0,0]);

y1=y(:,1);

y2=y(:,2);

figure;

plot(x,y1,x,y2,'--');

figure;

plot(y1,y2);

endfunction yp=vdpol(x,y)

yp=[y(2);-(56.1*y(2)+56.626*y(1))/56.1/x];end

2樓:有點微微的難過

雖然公尺看懂,但我覺得你x,y的賦值貌似倒過來了

matlab用連續楔變換後的楔係數的資料怎麼提取

close all 關閉當前及所有工作區中所有開啟的資料庫,表,和索引,並選擇 1 號工作區.clc clear all 從記憶體中釋放所有的記憶體變數和陣列以及所有使用者自定義的選單欄,選單,和視窗的定義.訊號濾波 l1 filter b,1,c3 c3 8 12hz濾波 l2 filter b,...

懇請大師幫我解解籤?是求愛情的。「真是真非不可欺,此心自有鬼神知,一輪明月深無底,自有雲開雨散時」

這裡看來你的感來情正在經受考源驗,可能是和物件有什麼誤會或矛盾,或者單身正在為感情發愁。簽文提示你不必太擔心,懷有美好希望,對自己有信心,遇事不要耍性子,鬧情緒,成熟一點,認真一點,多包容多理解,自然一切無礙。前兩句是叫你坦誠待人 不要撒謊 如果撒謊早晚被對方知道 後兩句是叫你耐心等待 緣分到了自然...

非簡併半導體的遷移率和擴散係數之間有什麼聯絡

採用複雜的量子統計分布函式來討論,其中載流子遵從經典的boltzmann統計分布的半導體就是專非簡併屬半導體。另,載流子即容易出現量子特性,這時的載流子就是簡併載流子。以簡併載流子導電為主的半導體就是簡併半導體,否則,若是以非簡併載流子導電為主的半導體就是非簡併半導體。前兩種情況是可以人為控制的。所...