Please help me convert equation to matlab code.

Deal all.
I need you help to convert this equation to matlab code
I spend a lot of time to write it but it doesn't work. Thank you.

1 Comment

Are you permitted to use the symbolic toolbox?
Is the question about providing some kind of symbolic proof, or is it about calculation of the formula using finite precision and a particular numeric input?

Answers (8)

Birdman
Birdman on 1 Apr 2018
Edited: Birdman on 1 Apr 2018
Basically, Symbolic Toolbox will help you:
syms y(x) n
f(x)=symsum((-1).^n*(x.^(2*n+1))/factorial(2*n+1),n,0,Inf)

4 Comments

so, how i can get sin(x)? ex sin(90)?
Now that you have f(x)=sin(x), simply write
f(90)
but remember that sin function takes input arguments in radians, you need to write
f(pi/2)
to get a numerical result.
@Birdman: I think you meant f(pi/2)
Yes, I just now edited it Roger.
N = 100; % <-- Choose some large number
s = x;
for n = 2*N-1:-2:1
s = x - s*x^2/((n+2)*(n+1));
end
(I think you meant to take the limit as N approaches infinity, not x.)
pls answer this question ...how to write the equation into code

2 Comments

Please don't post a completely distinct question as an answer.
π is written as pi in MATLAB.
exp of an expression is written as exp(expression) in MATLAB.
is written as sqrt(expression) in MATLAB.
How to write a code on IOTA filter in fbmc system

2 Comments

Warning: pudn has questionable security. Take precautions when you access it.
please answer this....how to write this equation into MATLAB CODE

1 Comment

%these variables must be defined in a way appropriate for your situation
S_N = rand() * 10
theta = randn() * 2 * pi
l = randi([2 10])
b_1 = rand()
c_11 = rand()
t_year = randi([1950 2049])
d_11 = rand()
t_1 = rand()
t_x = t_1 + rand()
lambda_a = randi([500 579])
LOTF_a = rand()
P = rand()
K_l = rand()
k_0 = rand()
t_tau = randi(10)
overhaulcost_a = 1000 + rand()*100
%the work
syms t
part1 = int(S_N .* cos(theta) .* l .* b_1 .* t_year .* d_11, t, t_1, t_x);
part2 = int(lambda_a .* LOTF_a, t, t_1, t_x);
part3 = int(P*K_l .* t_year + P .* k_0 .* l .* l .* t_tau, t, t_1, t_x);
part4 = overhaulcost_a ;
result = part1 - part2 - part3 - part4;
Hi guys, can you please help me with conversion this piece of code to the mathematical equation?
It i a simple 3D mask proceeding the image, and searching for adjoining number one and number two. Thank you in advance.
Code:
m1=[0 0 0; 0 1 0; 0 0 0];
m2=[0 1 0; 1 1 1; 0 1 0];
mask=zeros(3,3,3);
mask(:,:,1)=m1;mask(:,:,2)=m2;mask(:,:,3)=m1;
for i=2:size(image,1)-1
for j=2:size(image,2)-1
for k=2:size(image,3)-1
help_var=image(i-1:i+1,j-1:j+1,k-1:k+1);
if sum(unique(help_var(mask==1)))==3
new_image(i,j,k)=3; %marks adjoining pixel with number 3
end
end
end
end

4 Comments

What are the permitted values inside image ? The code logic posted would work if the array is all 1's and 2's, but it would also work if 0's could also be present. The logic could potentially also locate regions that were exclusively 3's.
The logic looks at the "adjacent faces" of each pixel (no diagonals), and it believes it is detecting that if the center pixel is 1 then there is a 2 among the 6 faces, and it believes it is detecting that if the center pixel is 2 then there is a 1 among the 6 faces. However, that is not what is actually happening if 0's or 3's are possible in the matrix.
The code can written without loops, and more accurately.
se1 = [0 0 0; 0 1 0; 0 0 0]; se2 = [0 1 0; 1 0 1; 0 1 0]; %do not set center
mask = cat(3, se1, se2, se1);
m1 = image == 1;
m2 = image == 2;
r1 = m1 & imdilate(m2, mask);
r2 = m2 & imdilate(m1, mask);
new_image = zeros(size(image));
new_image(r1 | r2) = 3;
Dear Walter,
thanks for the detailed reply. The permitted values in the image variable are 0's,1's and 2's. Location of the regions that were exclusively 3's is not desired for my purposes.
Thanks for your code, it works really well and much faster.
However, I'm still wondering, how to express this logic by a mathematical equation, do you have any idea?
Thanks, best regards
(λlog vmax−log vmin) /(vmax−vmin )
Please help

5 Comments

What is ? The looks like the Modified Bessel Function of the First Kind, MATLAB besseli(n, Z) -- but that function only accepts one parameter beyond the ν .
In distorted fringe distribution, denoted as In(x; y) captured by the camera.
n represents the phase-shift index n = 0; 1; 2; :::;N - 1.
This equation is Standard N-step phase shifting.
Are A and B and ϕ functions, or are they arrays?
Thay all are arrays
A(x; y) is the average intensity of the fringe image
B(x; y) is the so-called intensity modulation.
ϕ is the corresponding wrapped phase
syms n N integer
syms A(x,y) B(x,y) phi(x,y)
Pi = sym(pi)
Pi = 
π
I(n,x,y) = A(x, y) + B(x,y) * cos(phi(x,y) - 2*Pi*n/N)
I(n, x, y) = 
numerator = simplify(symsum(I(n, x, y) .* sin(2*Pi*n/N), n, 0, N-1))
numerator = 
denominator = simplify(symsum(I(n, x, y) .* cos(2*Pi*n/N), n, 0, N-1))
denominator = 
eqn = phi(x,y) == atan(numerator ./ denominator)
eqn = 
simplify(eqn)
ans = 

This question is locked.

Asked:

on 1 Apr 2018

Locked:

Rik
on 9 Jul 2024

Community Treasure Hunt

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

Start Hunting!