How to solve an equation system using a interp1-variable
古いコメントを表示
Hello everyone,
I'm trying to solve equations in a Matlab function that is part of a Simulink model.
One of those two equations is an interpolation of a given array.
% variable definiton
% T function argument
% p = f(T) values are given in form of a 69x2 double
% a | b | c | h constants / parameters (defined or calculated beforehand)
% equations
% eqn 1
% p = interp1(p(:,1),p(:,2),T)
% eqn 2
% h = a * T + p * (b + c * T)
% As I am used to solve equations with my pocket calculator I quickly found something like this while browsing:
syms T
solve (h == a * T + interp1(p(:,1),p(:,2),T) * (b + c * T),T);
% Unfortunately I do not have the required toolbox to solve equations which is why I need to find a work-around
% my next idea was to use an iteration to solve this (which I did not formulate and test until now)
% it would be something like that though:
for T = 1:100
p = interp1(p(:,1),p(:,2),T);
h_iter = a * T + p * (b + c * T);
if h_iter > h - h_marge | h_iter < h + h_marge
break
end
end
% with h_marge being a predefined value for accuracy tolerance
I would like to avoid such an iterational process since the iteration has to be done each simulation-step which could cause long simulation times
depending on the accuracy and the initial condition(s) I determine.
Thus, I wanted to ask you if there is another method / solution to solving that problem.
Look forward to hearing from you and thanks in advance.
Kind regards
Anton
採用された回答
その他の回答 (0 件)
カテゴリ
ヘルプ センター および File Exchange で Numeric Solvers についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!