Re: [問題] ode45利用For...end寫法已回收
※ 引述《pbrokeeggq (口亨)》之銘言:
: 各位matlab的高手
: 小弟有一個題目關於ode45需要利用for...end的語法來寫
: 但是小弟不知道如何利用for...emd的語法寫
: 不知道有沒有大大能幫忙解題
: 小弟會感激不盡
: 題目如下面網址
: 此為小弟在知識+上所發問的問題
: http://tinyurl.com/mkgh38
: 拜託各位大大
function file
function xdot=test(t,x)
xdot=[x(2);sin(t)-3*x(2)-x(1)];
=========================================
script file
close all;
clear all;
clc
dx = [0;0];
time = 40;
dt = 0.01;
t1 = 0;
t2 = t1 + dt;
t = [t1 t2];
y_data = dx;
t_data = [0];
for i = 0:dt:time
[time_temp dy] = ode45(@test, t, dx, []);
dx = [dy(end,1); dy(end,2)];
t1 = t2;
t2 = t2 + dt;
t = [t1 t2];
y_data = [y_data dx];
t_data = [t_data; time_temp(end)];
end
figure(1)
plot(t_data, y_data(1,:)); hold on
plot(t_data, y_data(2,:),'r');
xlabel('Time (t)');
ylabel('y1(t)&y2(t)');
title('t 與y1(t)&y2(t)的相對圖形');
======================================================
簡單來說用for loop就是不斷更新時間區間t1 & t2以及起始條件dx
不過老實說原PO的寫法我是前陣子才知道....Orz
之前解ode45我都是用這方法寫的
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.135.98.54
※ 編輯: k84420491 來自: 140.135.98.54 (06/29 13:23)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
MATLAB 近期熱門文章
PTT數位生活區 即時熱門文章