Path: news.mathworks.com!not-for-mail From: "qi li" <liqi3837671@hotmail.com> Newsgroups: comp.soft-sys.matlab Subject: Re: solving equation of multiple exponent terms summation with variable 'z' Date: Tue, 6 Mar 2012 08:40:13 +0000 (UTC) Organization: The MathWorks, Inc. Lines: 9 Message-ID: <jj4ihd$lca$1@newscl01ah.mathworks.com> References: <jivlej$sg2$1@newscl01ah.mathworks.com> Reply-To: "qi li" <liqi3837671@hotmail.com> NNTP-Posting-Host: www-06-blr.mathworks.com Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Trace: newscl01ah.mathworks.com 1331023213 21898 172.30.248.38 (6 Mar 2012 08:40:13 GMT) X-Complaints-To: news@mathworks.com NNTP-Posting-Date: Tue, 6 Mar 2012 08:40:13 +0000 (UTC) X-Newsreader: MATLAB Central Newsreader 1732016 Xref: news.mathworks.com comp.soft-sys.matlab:760028 Thanks for replying, I think indeed first plotting 's' as a function of z to get approximation initial value of z , then using fzero() to solve equation is a method, but I must plot a deformation sphere,not just a single z value, that means given a grid [X,Y]=meshgrid(-10:10,-10:10), there should be 2*20*20=800 z values, each is a results of the equation, I can not use a method to probing z axis points one by one to get approximation initial position only for single result! It's too slowly. I tried to use taylor series to approximate exponent expression in MATLAB, the details is first define symbolic variable z, and reserve the for-loop parts, but replace expression s with symbolic function taylor(): (default expand term is 6, y can define explicitly in n taylor(eq, n)) [x y]=meshgrid(-1:0.1:1,-1:0.1:1); syms z for i=1:3 s=s+taylor(exp(((x-a(1,i))^2+(y-a(2,i))^2+(z-a(3,i))^2)/(-2))); endafter step complete, I used coef=sym2poly(s); to get all polynomial coefficients ,at last, I used r=roots(coef); but the results was very bad, the most commonly result is complex number, very few is real, the higher taylor expand terms I reserved, the more complex results would appear, when I substitute real number to s use subs(s,z, results), there was a huge distance from 0. who can give me a good idea how to solve the equation? Thanks very much!