help-octave
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Deal with the complex functions


From: Miroslaw Kwasniak
Subject: Re: Deal with the complex functions
Date: Mon, 15 Jan 2007 20:53:53 +0100
User-agent: Mutt/1.5.9i

On Mon, Jan 15, 2007 at 07:58:41PM +0800, marchriver wrote:
> Hi
> I am trying to solve the complex differential equations with octave.
> However from the manual and examples, it seems to limit to real
> equations. And when I write the equation in the form
> dx=i*a*t+i*b*x+i*c*x^2
> The result said it contains image numbers. Does octave can deal with
> complex equations? Or I have to separate the real and image part to
> solve? But the real equations I have to solve are quite complicit and a
> large number. It will be very hard to do so. Can anyone give me some
> clues?

It's  easy ;)

Assuming that your complex valued function is:

  function dx=f(t,x);
    a=-1;b=-.5;c=.01;
    dx=i*a*t+i*b*x+i*c*x^2;
  endfunction

just write a wrapper:

  function DX=freal(t,X);
    n=1:2:length(X);
    x=complex(X(n),X(n+1)); 
    dx=f(t,x);
    DX=zeros(size(X));
    DX(n)=real(x)
    DX(n+1)=imag(dx);
  endfunction

... and calculate it :

[tout, xout] = ode45('freal',[0 8],[1; -11]);
n=1:2:columns(xout);
xcomplex=complex(xout(:,n),xout(:,n+1));



reply via email to

[Prev in Thread] Current Thread [Next in Thread]