查看单个帖子
旧 2008-06-29, 18:57   #2
宇文J
初级会员
 
注册日期: 2008-04-27
年龄: 42
帖子: 9
声望力: 0
宇文J 正向着好的方向发展
默认

由于程序较长,较复杂我把程序简化了一下。

只需在命令框里输入:[tout,yout]=ode45('Evalue',[0.0002:0.0004:0.1202],[0,0,0,0])
Evalue.m的文件如下:

function [Ikdot]=Evalue(tk,Ik)%%%传递过来的两个参数
R=[1,0,0,0;0,1,0,0;0,0,1,0;0,0,0,1];
U=[110e3*sin(100*pi*tk+pi/2);110e3*sin(100*pi*tk+pi/2);0;0];%%%%定义一正弦电压
[Ikdot]=U-R*Ik;%%%%算法中的一个计算函数。

U就是我所说的表系数,Ik就是未知数y。Ikdot就是dy/dt。
我反复验证后发现一个问题,由于系数里面存在tk(随时间变化的系数)。使得在解的时候Ik可以不用,把Ik去掉使得[Ikdot]=U.运行出来的结果和[Ikdot]=U-R*Ik是一样的。
宇文J 当前离线   回复时引用此帖