solving non linear equation
조회 수: 1 (최근 30일)
이전 댓글 표시
for i = 1:10
vv = vectorize('(tpiu)*((S/(2*xpiu))+((S/(4*xpiu))*sqrt(1+16*((S/xpiu)^2)))+((1/16)*log((4*S/xpiu)+sqrt(1+16*(S/xpiu)^2))))-t');
myfun = @(S,t) (tpiu).*((S./(2.*xpiu))+((S./(4.*xpiu)).*sqrt(1+16.*((S./xpiu).^2)))+((1./16).*log((4.*S./xpiu)+sqrt(1+16.*(S./xpiu).^2))))-t;
t = linspace(0, tinj, 20);
for k = 1:numel(t)
S(k) = fzero(@(S) myfun(S,t(k)),0.03);
end
end
I have this code where tinj is a vector with (i) elements and i'd like to exit with a matrix (i, k), but as I wrote the code I only get a vector relative to the last tinj.
댓글 수: 0
답변 (1개)
Ayush
2024년 9월 1일
Hi RAFFAELE
To obtain a matrix (i, k) instead of a vector, you can preallocate the matrix S before the loop and assign the values inside the loop. Since you have not provided your complete code, you may refer to the below snippet and make the changes accordingly in your code.
S = zeros(numel(tinj), numel(t)); % Preallocate matrix S with dimensions (numel(tinj), numel(t))
for i = 1:numel(tinj)
t = linspace(0, tinj(i), 20);
for k = 1:numel(t)
S(i, k) = fzero(@(S) myfun(S,t(k)),0.03); % Find the root of myfun(S,t(k)) and store it in S(i, k)
end
end
This will give you a matrix S with dimensions (i, k), where i corresponds to the elements of tinj and k corresponds to the elements of t.
댓글 수: 0
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!