Info

이 질문은 마감되었습니다. 편집하거나 답변을 올리려면 질문을 다시 여십시오.

How to generate a loop for the problem mentioned in the context

조회 수: 1 (최근 30일)
Alireza Babaei
Alireza Babaei 2020년 4월 10일
마감: MATLAB Answer Bot 2021년 8월 20일
Dear, scholars,
Anybody can help me with writing a decent code for finding the below equation:
I can write the code for the second coefficient of numerator (I mean the following part):
But I can not extend it to the whole equation,
Any ideas?
I attach my code for the second part:
clc
clear all
close all
we = linspace(0,100,101);
gh = [1 3 5];
w = [21 39 88];
for i = 1:3
for j = 1:length(we)
a(i,j) = gh(i) * we(j);
C(i,j) = (1/12)+1i*we(j);
x(i,j) = 12*gh(i);
s3(i,j) = 1i*gh(i)*we(j);
s2(i,j) = w(i)^2 - we(j)^2+1i*w(i);
s1(i,j) = 1i*gh(i)*we(j);
v2(i,j) = s3(i,j)/s2(i,j)+C(i,j);
v1(i,j) = s1(i,j)/s2(i,j);
v(i,j) = abs(v1(i,j)/v2(i,j))
d = log10(sum(v))
d1 = sum(v);
end
end
figure
plot(we,d,'LineWidth',2)
grid on

답변 (1개)

Guru Mohanty
Guru Mohanty 2020년 4월 13일
Hi, I understand you are getting issues in calculating sum of the given expression. You can do this using MATLAB Symbolic Toolbox-
  1. Create symbolic variables using syms.
  2. Build the expression need to be evaluated.
  3. Through an iteration substitute all the variables using subs function. It will output an array.
  4. Finally, Evaluate the summation of the expression using sum function.
Here is a sample code using random values as input.
n=3;
syms s 3
syms C x a
% Create Random Data
av=rand(1,n);
s1_1v=rand(1,n);
s2_1v=rand(1,n);
s3_1v=rand(1,n);
Cv=rand(1,1);
xv=rand(1,n);
% Set Up The Expression
Var=sum(s(1)/s(2))/(C +sum(s(3)/s(2)));
toSum=(Var*x + a)/s(2);
disp(toSum);
for i=1:n
% Substitute Values through Iteration
subSum(i)=subs(toSum,{a , s1_1 , s2_1 , s3_1 , C , x}, ...
{av(i),s1_1v(i),s2_1v(i),s3_1v(i),Cv,xv(i)});
end
OutSum=double(sum(subSum));
disp(OutSum);

이 질문은 마감되었습니다.

태그

Community Treasure Hunt

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

Start Hunting!

Translated by