@@ -493,7 +493,7 @@ def step_response(sys, T=None, X0=0., input=None, output=None,
493493
494494
495495def initial_response (sys , T = None , X0 = 0. , input = 0 , output = None ,
496- transpose = False ):
496+ transpose = False , return_x = False ):
497497 # pylint: disable=W0622
498498 """Initial condition response of a linear system
499499
@@ -535,6 +535,8 @@ def initial_response(sys, T=None, X0=0., input=0, output=None,
535535 Time values of the output
536536 yout: array
537537 Response of the system
538+ xout: array
539+ Individual response of each x variable
538540
539541 See Also
540542 --------
@@ -553,11 +555,15 @@ def initial_response(sys, T=None, X0=0., input=0, output=None,
553555 U = np .zeros_like (T )
554556
555557 T , yout , _xout = forced_response (sys , T , U , X0 , transpose = transpose )
558+
559+ if return_x :
560+ return T , yout , _xout
561+
556562 return T , yout
557563
558564
559565def impulse_response (sys , T = None , X0 = 0. , input = 0 , output = None ,
560- transpose = False ):
566+ transpose = False , return_x = False ):
561567 # pylint: disable=W0622
562568 """Impulse response of a linear system
563569
@@ -599,6 +605,8 @@ def impulse_response(sys, T=None, X0=0., input=0, output=None,
599605 Time values of the output
600606 yout: array
601607 Response of the system
608+ xout: array
609+ Individual response of each x variable
602610
603611 See Also
604612 --------
@@ -637,4 +645,8 @@ def impulse_response(sys, T=None, X0=0., input=0, output=None,
637645 T , yout , _xout = forced_response (
638646 sys , T , U , new_X0 ,
639647 transpose = transpose )
648+
649+ if return_x :
650+ return T , yout , _xout
651+
640652 return T , yout
0 commit comments