How to Substitute an array into an equation and solve it ?
3 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
So if i had a = [1 2 3] b = [4 5 6] c = [7 8 9]
and the equation is ax^2+bx+c = 0
How would i substitude the array and solve for x ?
0 Commenti
Risposte (1)
Ameer Hamza
il 15 Nov 2020
Modificato: Ameer Hamza
il 15 Nov 2020
For the given value of a, b, and c, the equation have no real solutions. Following shows how to use fsolve() when the equations have solutions
a = [1 2 3];
b = [4 5 6];
c = [-7 -8 -9];
F = @(x) a(:).*x.^2+b(:).*x+c(:);
sol = fsolve(F, rand(3,1))
If you don't have optimization toolbox, then you can use fzero()
a = [1 2 3];
b = [4 5 6];
c = [-7 -8 -9];
sol = zeros(size(a));
for i=1:numel(a)
F = @(x) a(i).*x.^2+b(i).*x+c(i);
sol(i) = fzero(F, rand());
end
2 Commenti
Ameer Hamza
il 15 Nov 2020
No, you are not using subs() correct. Following shows how it needs to be done
syms x a b c
C = a * (x.^2) + (b * x) + c == 0;
x1 = subs(C,{a,b,c},{1,3,5});
solution = double(solve(x1,x));
Ameer Hamza
il 16 Nov 2020
Modificato: Ameer Hamza
il 16 Nov 2020
If a, b, and c are arrays
syms x a b c
av = [1 2 3];
bv = [4 5 6];
cv = [7 8 9];
C = a * (x.^2) + (b * x) + c == 0;
solution = cell(size(av));
for i = 1:numel(av)
x1 = subs(C,{a,b,c},{av(i),bv(i),cv(i)});
solution{i} = double(solve(x1,x));
end
solution is a cell array, where each cell contain solution for a combination of a, b, and c.
Vedere anche
Categorie
Scopri di più su Linear Algebra in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!