由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
EE版 - How to correct my matlab code(solve ODE problem)
相关主题
问一个matlab的问题,关于workspace里的数据简单概率问题求教。。
Help needed for plotting a graph问一个概率的问题
A question about how to rewrite fortran modules with C in the best way. thanks.问一个噪声单位的问题
对于学EE的同学,哪些数学课比较重要?弱问:如何把220V 3Phase交流电转化为120V 1Phase?
Matlab跑了两天了没有反应 (转载)求教 这个积分怎么算 (转载)
问一个Matlab变量问题憋了3个月,憋出来一个前端电路,给指点指点
看看流体力学的抱怨Re: 请问,用matlab如何表示三维数组?
跪求指导,这个matlab报错是啥意思啊?Re: Call for help on Latex in Windows system
相关话题的讨论汇总
话题: x3话题: xp话题: x1话题: ode话题: x2
进入EE版参与讨论
1 (共1页)
f******e
发帖数: 921
1
I want to solve a system of ODE, for example,
x1'=x2-x1^2+x3^2
x2'=-x1*x3-2*x1*x2+x3
for x3, it satisfy, x1^2 + x2^2+x3^2=10;
my code is below:
function xp = F(t,x)
xp = zeros(3,1);
xp(1)= x(2) -x(1)^2+ x(3)^3;
xp(2) = - x(1)*x(3) - 2*x(1)*x(2) + x(3);
x(3) = sqrt(10-x(1)^2-x(2)^2);
[t,x]=ode45(@F,[0,10],[0;1;1]);
plot(t,x)
my figure shows x3 is a straight line, what is the mistake?
How to correct the mistake in my code? thank you very much!!!
f******e
发帖数: 921
2
Who can give me some advice?thanks a lot

【在 f******e 的大作中提到】
: I want to solve a system of ODE, for example,
: x1'=x2-x1^2+x3^2
: x2'=-x1*x3-2*x1*x2+x3
: for x3, it satisfy, x1^2 + x2^2+x3^2=10;
: my code is below:
: function xp = F(t,x)
: xp = zeros(3,1);
: xp(1)= x(2) -x(1)^2+ x(3)^3;
: xp(2) = - x(1)*x(3) - 2*x(1)*x(2) + x(3);
: x(3) = sqrt(10-x(1)^2-x(2)^2);

m***n
发帖数: 581
3
你实际上只有x(1),x(2)两个状态变量。xp(3)始终是0,所以不会更新。最后算的x(3)
是不会传递到x中去的。
我把你的程序改成两个状态变量,x3作为输出变量了:
主程序:
[t,x]=ode45(@F,[0,10],[0;1]);
x3 = sqrt(10-x(:,1).^2-x(:,2).^2);
plot(t,[x x3])
子程序:
function xp = F(t,x)
xp = zeros(2,1);
tmp = sqrt(10-x(1)^2-x(2)^2);
xp(1)= x(2) -x(1)^2+ tmp^3;
xp(2) = - x(1)*tmp - 2*x(1)*x(2) + tmp;

【在 f******e 的大作中提到】
: I want to solve a system of ODE, for example,
: x1'=x2-x1^2+x3^2
: x2'=-x1*x3-2*x1*x2+x3
: for x3, it satisfy, x1^2 + x2^2+x3^2=10;
: my code is below:
: function xp = F(t,x)
: xp = zeros(3,1);
: xp(1)= x(2) -x(1)^2+ x(3)^3;
: xp(2) = - x(1)*x(3) - 2*x(1)*x(2) + x(3);
: x(3) = sqrt(10-x(1)^2-x(2)^2);

f******e
发帖数: 921
4
thank you very very much!!!

【在 m***n 的大作中提到】
: 你实际上只有x(1),x(2)两个状态变量。xp(3)始终是0,所以不会更新。最后算的x(3)
: 是不会传递到x中去的。
: 我把你的程序改成两个状态变量,x3作为输出变量了:
: 主程序:
: [t,x]=ode45(@F,[0,10],[0;1]);
: x3 = sqrt(10-x(:,1).^2-x(:,2).^2);
: plot(t,[x x3])
: 子程序:
: function xp = F(t,x)
: xp = zeros(2,1);

1 (共1页)
进入EE版参与讨论
相关主题
Re: Call for help on Latex in Windows systemMatlab跑了两天了没有反应 (转载)
Re: matlab作图问题问一个Matlab变量问题
问一个关于MVDR的问题看看流体力学的抱怨
大家一般都用什么画图工具跪求指导,这个matlab报错是啥意思啊?
问一个matlab的问题,关于workspace里的数据简单概率问题求教。。
Help needed for plotting a graph问一个概率的问题
A question about how to rewrite fortran modules with C in the best way. thanks.问一个噪声单位的问题
对于学EE的同学,哪些数学课比较重要?弱问:如何把220V 3Phase交流电转化为120V 1Phase?
相关话题的讨论汇总
话题: x3话题: xp话题: x1话题: ode话题: x2