Yahoo 知識+ 將於 2021 年 5 月 4 日 (美國東岸時間) 停止服務,而 Yahoo 知識+ 網站現已轉為僅限瀏覽模式。其他 Yahoo 資產或服務,或你的 Yahoo 帳戶將不會有任何變更。你可以在此服務中心網頁進一步了解 Yahoo 知識+ 停止服務的事宜,以及了解如何下載你的資料。
Matlab解富利葉
Solve in MATLAB the following eqation
圖片參考:http://latex.codecogs.com/gif.latex?\frac{\mathrm{...
for a few particles starting at different position x and velocity v.
Take Fourier transform of x(t). Plot and compare the Fourier spectrum
for p=0.1 and p=1.0
Elisha大大謝謝你的回答
不過小弟比較想要知道x(t)的傅立葉轉換
還有在兩種p值下的傅立葉頻譜(Fourier Spectrum)的比較
請問Elisha大大這部份該如何做??
請問Elisha大大
@model可不可以改寫成'model'來呼叫第一個m檔?
小弟改成'model'來測試發現出現以下的Error
??? Error using ==> model
Too many input arguments.
......
請問@的功能是怎麼呢?
1 個解答
- ElishaLv 610 年前最愛解答
寫成2個m檔, 第1個為你的方程式, 第2個為執行的主程式
其中有一些假設 :
t的範圍假設為0到10之間
設x(1) = x, 及dx/dt = x(2), 所以要給予初始條件, 假設為0, 1
-------------------------------------------------------------------------------------
% 第1個m檔
function dx = model(t, x, p)
% solve d^2x/dt^2 = p*sin(x)*sin(t)
% set dx(1) = x(2)
% dx(2) = p*sin(x(1))*sin(t)
dx = zeros(2,1); % change column vector
dx(1) = x(2);
dx(2) = p*sin(x(1))*sin(t);
-------------------------------------------------------------------------------------
% 第2個m檔
clear all
clc
tic
% interval t = [0 10.0];
tspan = [0 10.0];
% initial x(1) and x(2) are 0, 1 (guess)
x0 = [0; 1.0];
% case 1. p = 0.1
p1 = 0.1;
[t1, x1] = ode45(@model, tspan, x0, [], p1);
% case 2. p = 1.0
p2 = 1.0;
[t2, x2] = ode45(@model, tspan, x0, [], p2);% compare x1(t) and x2(t)
plot(t1,x1(:,1),'r',t2,x2(:,2),'b')
xlabel('t')
ylabel('x')
legend('x at p = 0.1','x at p = 1.0')
toc
-------------------------------------------------------------------------------------
結果圖形如下
圖片參考:http://imgcld.yimg.com/8/n/AF03297167/o/1011112500...
2011-11-28 03:27:57 補充:
@model可不可以改寫成'model'來呼叫第一個m檔?
--> 我也不行耶, 現在已很少人使用''的方式了
x(t)的傅立葉轉換, 這個我很久沒弄了, 已經退化了...呵呵, 現在我只會轉成數值解