How to prevent complex solutions from lsqnonlin
조회 수: 1 (최근 30일)
이전 댓글 표시
I am trying to determine the parameter of an equation using lsqnonlin.
y = x.^a
Where x and y are input and output data, and a is the parameter to be solved for.
This is the part of my code:
Y_fn = @(apara) ((X_meas).^(apara(1))-Y_meas);
apara = lsqnonlin(Y_fn,init,LB,UB,Y_meas);
Running the script yields solutions for a such as -0.1771 + 1.1983i. How do I prevent obtaining complex solutions?
Thanks
댓글 수: 0
답변 (1개)
Walter Roberson
2015년 8월 18일
If any of your X_meas are negative then you are likely to get complex results unless you use a lower bound of 0 for apara. A negative value raised to a non-integral exponent using .^ is going to return a complex value.
댓글 수: 0
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!