How to differentiate a series of functions denoted by varying a parameter i=1,2 in (h_i)?
1 view (last 30 days)
Show older comments
Asit Srivastava
on 23 Feb 2020
Commented: Asit Srivastava
on 24 Feb 2020
I typed the following code and command window displays unrecognised function h_i. If I remove the outer loop and replace "i" with some number, say "2", then it displays unrecognised function x_j. What's the mistake?
clc
clear all
syms x_1 x_2
h_1(x_1,x_2)=x_1+(x_2)*(x_1);
h_2(x_1,x_2)=x_2+x_1*x_2^2;
for i=1:2
for j=1:2
diff(h_i,x_j)
end
end
0 Comments
Accepted Answer
darova
on 23 Feb 2020
Edited: darova
on 23 Feb 2020
Mistake that h_1 and h_i and different variables
m1stake = 2;
m2stake = 3;
for i = 1:2
disp(mistake) % doesn't work
end
Use arrays and cells
clc
clear all
syms x_1 x_2
h_1(x_1,x_2)=x_1+(x_2)*(x_1);
h_2(x_1,x_2)=x_2+x_1*x_2^2;
X = {x_1 x_2};
H = {h_1 h_2};
for i=1:2
for j=1:2
diff(H{i},X{j})
end
end
0 Comments
More Answers (1)
Image Analyst
on 23 Feb 2020
Don't use a loop. For just 4 cases, just write them out
h_1(x_1,x_2) = x_1 + (x_2) * (x_1);
h_2(x_1,x_2) = x_2 + x_1 * x_2^2;
diff(h_1,x_1)
diff(h_1,x_2)
diff(h_2,x_1)
diff(h_2,x_2)
3 Comments
Image Analyst
on 23 Feb 2020
You don't have 56 separate and differently named variables, do you? If so, you really need to learn how to use arrays.
See Also
Categories
Find more on Logical in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!