how to solve equation for a given matrix

Hi everybody
I have got equation which is ;
Eq = 0.4075*exp(-((e-14.87)/11.39).^2) + 0.5621*exp(-((e-18.64)/27.74).^2);
e is a 100*1 double matrix.
I would like to use the value of each row as an input to my function and save the results as matrix again. I used solve command, I could get any results.
Any suggestion is highly appreciated.
Thanks!!

5 Comments

just loop through e and solve the equations?
thanks for the answer. Can you show or refer me an axample ?
Ah sorry which variable are you the solving for?, you say you already have e in hand?
Yes I have it 'e' as 100*1 double matrix. I just need to implement each value into the function and obtain the results as another matrix.
e = .... 100 X 1 values
Eq = 0.4075*exp(-((e-14.87)/11.39).^2) + 0.5621*exp(-((e-18.64)/27.74).^2); % doesn't this get you the required results?

Sign in to comment.

 Accepted Answer

What's wrong with what you've already got?
%Vector method
e = rand(100,1)*10;
Eq = 0.4075*exp(-((e-14.87)/11.39).^2) + 0.5621*exp(-((e-18.64)/27.74).^2);
% Loop method
Eq2 = zeros(size(e));
for i = 1:numel(e)
Eq2(i) = 0.4075*exp(-((e(i)-14.87)/11.39).^2) + 0.5621*exp(-((e(i)-18.64)/27.74).^2);
end
% Are they equal?
isequal(Eq,Eq2) % = 1; yes

11 Comments

it worked, thank you very much.
I have one more question. my matrix 'e' is not in the x axis. It is actually in the y axis. How can I implement my matrix in y axis and find the corresponding X axis and save it as a matrix?
I'm sorry, I don't follow the question. What do you mean by x axis and y axis?
matrix 'e' is output for the function. Therefore, I would like to find the input matrix.
For example:
a = [2;5;7]
a(i) = 2x+5
in this case the answer :
x =[9;15;19]
I hope it is clearer now.
But 'e' is an input variable in your example. Eq is the output.
Do you mean you're trying to solve for this:
e = 0.4075*exp(-((x-14.87)/11.39).^2) + 0.5621*exp(-((x-18.64)/27.74).^2);
where x is unknow and e is known?
yes, exactly.
any suggestion? , I got really stucked here?
Try this out
syms x
for i = 1:numel(e)
sol(i) = solve(0.4075*exp(-((x-14.87)/11.39).^2) + 0.5621*exp(-((x-18.64)/27.74).^2) == e(i));
end
I received this error.
Warning: Unable to find explicit solution. For options, see help.
> In solve (line 317)
Subscripted assignment dimension mismatch.
Error in sym/privsubsasgn (line 1107)
L_tilde2 = builtin('subsasgn',L_tilde,struct('type','()','subs',{varargin}),R_tilde);
Error in sym/subsasgn (line 944)
C = privsubsasgn(L,R,inds{:});
engineer
engineer on 23 May 2019
Edited: engineer on 23 May 2019
Besides, how do you save the each x variable within loop in the code you provided?
sol(i) is the x values that satisfy the function. If you search for that warning within this forum you get lot's of feedback.

Sign in to comment.

More Answers (0)

Categories

Find more on Mathematics in Help Center and File Exchange

Asked:

on 23 May 2019

Commented:

on 23 May 2019

Community Treasure Hunt

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

Start Hunting!