Yahoo 知識+ 將於 2021 年 5 月 4 日 (美國東岸時間) 停止服務,而 Yahoo 知識+ 網站現已轉為僅限瀏覽模式。其他 Yahoo 資產或服務,或你的 Yahoo 帳戶將不會有任何變更。你可以在此服務中心網頁進一步了解 Yahoo 知識+ 停止服務的事宜,以及了解如何下載你的資料。

Lv 5
發問於 科學工程學 · 10 年前

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大大這部份該如何做??

更新 2:

請問Elisha大大

@model可不可以改寫成'model'來呼叫第一個m檔?

小弟改成'model'來測試發現出現以下的Error

??? Error using ==> model

Too many input arguments.

......

請問@的功能是怎麼呢?

1 個解答

評分
  • Elisha
    Lv 6
    10 年前
    最愛解答

    寫成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)的傅立葉轉換, 這個我很久沒弄了, 已經退化了...呵呵, 現在我只會轉成數值解

還有問題嗎?立即提問即可得到解答。