有一个连续时间系统如下所示:
matlab代码是:
t=0.01;
syms s;
a2=[0 0 -285.7143;0 -0.4533 9.0662;5.2650 -5.2131 -42.5958];
b2=[571.4286;0;82.5714];
c2=[1 0 0];
A2=expm(a2*t);
B2=(int(expm(a2*s),0,t)*b1);
但是,当我计算B1时,计算机显示'输出被截断'。
请帮帮我。
非常感谢。
答案 0 :(得分:0)
我认为没有必要使用符号数学来表示矩阵值函数的这个积分。相反,您可以将integral
与'ArrayValued'
option:
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/1.0.25/vue.min.js"></script>
<div id="app">
<ul class="plans">
<plan-component name="Basic"></plan-component>
<plan-component name="Recreational"></plan-component>
<plan-component name="Team" most-popular></plan-component>
<plan-component name="Club"></plan-component>
</ul>
</div>
<template id="plan-component">
<li v-bind:class="{ 'most-popular': mostPopular }">
<p>{{ name }} <small v-if="mostPopular" class="popular-plan-label" style="color: red">Most popular</small></p>
</li>
</template>
这要快得多,并返回与t = 0.01;
a2 = [0 0 -285.7143;
0 -0.4533 9.0662;
5.2650 -5.2131 -42.5958];
integral(@(s)expm(a2*s),0,t,'ArrayValued',true)
syms s;
非常相似的结果(忽略由于数值误差导致的微小虚部)。另请参阅this question。