solving a complex conjugate differential equation

10 ビュー (過去 30 日間)
Artur
Artur 2012 年 3 月 13 日
Hello, i want to solve a differential equation. So far i am new to Matlab, but i have some experience in numeric und solving a ode. BUT i can't solve the following differential equation:
dz* / dt = f(z)
I have the complex conjugate derivative z* which is a function von z. At the end i want to have z so i used an ode45 for this equation but the solution is not equal to the real solution. So i wanted to ask if somebody has experience in solving complex conjugated differential equations. I solved the equation with an ode45 using an initial value z0 and after that i transformed the values of z* by conjugating into z.
Anybody an idea ?

回答 (4 件)

Walter Roberson
Walter Roberson 2012 年 3 月 13 日
It appears to me that there is no general solution for arbitrary f(z) -- which is not surprising as there is no general solution for arbitrarily f(x) for the non-conjugate case.
If you can give a specific example, possibly someone might find a method.

Artur
Artur 2012 年 3 月 13 日
Thank you for your answer Walter!! So i think you've understood much more than me ;)
So I will describe the problem in more detail!
I have to solve the following equation:
annotation: i is the complex i
initial values: epsi=0.2 b=0.2 Z0=-20+b*i
dZ*/dT= ( i*epsi/sqrt(Z^2-1) ) * { Z/sqrt(Z^2-1) -1 + 2/((norm(Z+sqrt(Z^2-1)))^2-1)) } + 1
So this is the equation. Anybody an idea how to solve it and compute Z to plot it ?! Does anyone know if the curly brackets have an special function/meaning ? The literature to this function comes from england. I would be thankful for any idea. The literature says only: "This function is suitable for numerical integration".
My code looks like this:
b=0.2; p=-20+b*1i;
[t, Z]=ODE45(@bv2dnl_trajectory, [0 10], p);
plot(Z)
function [ dzdt ] = bv2dnl_trajectory( t, Z )
epsi=0.2;
k=sqrt(Z^2-1); zeta=norm(Z+k);
dzdt=conj(epsi/k*(Z/k-1+2/(zeta^2-1))*1i+1);
end
end
But this gives me a plot which is not the solution. So I'm probably thinking to easy.

Walter Roberson
Walter Roberson 2012 年 3 月 14 日
In your expression
dZ*/dT = ( i*epsi/sqrt(Z^2-1) ) * { Z/sqrt(Z^2-1) -1 + 2/((norm(Z+sqrt(Z^2-1)))^2-1)) } + 1
you do have the replace the {} with () . {} is for cell arrays in MATLAB .
The expression you show has one too many ')'.
The line you show (indicated above) implies that the right hand side is already the complex conjugate, but your code shows an explicit conj() call. That does not seem consistent?
The intermediate solutions I am coming up with so far as very messy, suggesting that either there is no known way to solve this analytically, or else that the solution techniques are advanced and beyond my experience.

Artur
Artur 2012 年 3 月 14 日
>>>In your expression
>>>dZ*/dT = ( i*epsi/sqrt(Z^2-1) ) * { Z/sqrt(Z^2-1) -1 + 2/((norm(Z+sqrt(Z^2-1)))^2-1)) } + 1
>>>you do have the replace the {} with () . {} is for cell arrays in MATLAB .
The first part I described is the one from the literature. The second is my code. In the second one I don't use the {} brackets. I only wanted to know if the {} brackets have an special meaning in english maths.
>>>The expression you show has one too many ')'.
Yes you are right.
>>>The line you show (indicated above) implies that the right hand side is already the complex conjugate, but your code shows an explicit conj() call. That does not seem consistent?
Yes it is the complex conjugate. Since I wanted to compute Z and not Z* I thought I can conjugate dZ*/dT to become dZ/dT and use it then to compute Z. Probably this is wrong I think. But I have no other idea.
>>>The intermediate solutions I am coming up with so far as very messy, suggesting that either there is no known way to solve this analytically, or else that the solution techniques are advanced and beyond my experience.
That's right. The book says it's much easier to solve it numerically with an Runge-Kutta technique than to solve it analytically. There are more examples in this book which are easier and are solved analytically. This examples I could derive on my own to the right solution, but this one goes also beyond my experience.
I know how to program a runge-kutta-method for a normal non-complex ordinary equation, but not how to to it with this complex conjugate one.

カテゴリ

Help Center および File ExchangeOrdinary Differential Equations についてさらに検索

製品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by