How do I use muller method for solving multivariable equations?

8 ビュー (過去 30 日間)
Shreya Menon
Shreya Menon 2020 年 8 月 20 日
コメント済み: Shreya Menon 2020 年 8 月 26 日
I have two equations of 2 variables. I tried using 'solve' but it keeps on calculating for hours together with no results. I would like to use Muller method as I have used it before and I can define start points and number of iterations. I can also check the residual value. Can anyone please suggest, how can I use Muller for solving multivariable equations?
  2 件のコメント
Alan Stevens
Alan Stevens 2020 年 8 月 20 日
Easier to do this if we know what your equations are.
Shreya Menon
Shreya Menon 2020 年 8 月 23 日
Sorry... The equations are:
1.) (epir*(diff(besselj(1,V))/(V*k0a*besselj(1,V)))-(diff(besselk(1,W))/(W*k0a*besselk(1,W))))*(mewr*(diff(besselj(1,V))/(V*k0a*besselj(1,V)))-(diff(besselk(1,W))/(W*k0a*besselk(1,W))))=((V^2+W^2)*(V^2+mewr*epir*W^2))/(V^4*W^4*k0a^4)
2.) ((2*(b+L*tand(alpha))/lambda0)^2)*(pi^2)*(mewr*epir-1)==(V^2+W^2)*k0a^2
V and W is to be found. These are equations for propagation characteristics of solid dielectric rod antenna. Kindly help in this regard.

サインインしてコメントする。

回答 (1 件)

Alan Stevens
Alan Stevens 2020 年 8 月 24 日
編集済み: Alan Stevens 2020 年 8 月 24 日
I guess there are a few options.
  1. If you have the Opimisation toolbox, use fsolve.
  2. In your second equation replace V^2 + W^2 by, say, Rsq and solve for Rsq. Then express V as a function of W, knowing Rsq. Then use fzero to find W. The code structure might look something like the following (I'm unable to test it because I don't have your constants).
Rsq = ((2*(b+L*tand(alpha))/lambda0)^2)*(pi^2)*(mewr*epir-1)/k0a^2;
Vfn = @(W) sqrt(Rsq - W.^2);
W0 = ....; % Insert your initial guess
W = fzero(@Wfn, W0);
V = Vfn(W);
function WW = Wfn(W)
V = Vfn(W);
WW = (epir*(diff(besselj(1,V))/(V*k0a*besselj(1,V))) ...
-(diff(besselk(1,W))/(W*k0a*besselk(1,W))))*(mewr*(diff(besselj(1,V))/(V*k0a*besselj(1,V))) ...
-(diff(besselk(1,W))/(W*k0a*besselk(1,W))))-((V^2+W^2)*(V^2+mewr*epir*W^2))/(V^4*W^4*k0a^4);
end
3. An alternative to using fzero with option 2 is to program the Muller method yourself. However, I suspect fzero is the better option.
  5 件のコメント
Alan Stevens
Alan Stevens 2020 年 8 月 26 日
Ah, fzero only deals with real numbers I'm afraid. I guess you need to look at the Optimisation toolbox.
Shreya Menon
Shreya Menon 2020 年 8 月 26 日
Thank you sir for all the help you provided.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangePolynomials についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by