
matlab数值解与解析解差距特别大
[c1,c2]=dsolve('2*pp*A*(a*D2c1+c*D2c2)-P+diff(U,c1)=0','2*pp*A*(b*D2c2+c*D2c1)+P+diff...
[c1,c2]=dsolve('2*pp*A*(a*D2c1+c*D2c2)-P+diff(U,c1)=0','2*pp*A*(b*D2c2+c*D2c1)+P+diff(U,c2)=0','c1(0)=0,Dc1(0)=0,c2(0)=0,Dc2(0)=0','t');
pp,A,a,b,c这几个都是常数,用这个方程求解出c1,c2,然后给定P,t取值如下,就可以做出c3=c1-c2+0.4关于t的曲线。解析解和数值解差距怎么这么大?
t=0:0.1:8;
P0=10;
td=2;
P=P0*(1-t/td);
P(find(P<0))=0;
全部命令流如图:
结果如下: 展开
pp,A,a,b,c这几个都是常数,用这个方程求解出c1,c2,然后给定P,t取值如下,就可以做出c3=c1-c2+0.4关于t的曲线。解析解和数值解差距怎么这么大?
t=0:0.1:8;
P0=10;
td=2;
P=P0*(1-t/td);
P(find(P<0))=0;
全部命令流如图:
结果如下: 展开
展开全部
1)数值解和解析解对于病态方程是可能出现很大差距,比如希尔伯特矩阵求逆等线性方程组。微分方程组我不太了解,但很可能和线性方程有类似的结论。
2)数值舍入误差传递会扩大的,matlab数值默认只能保留到小数点后15位,如果涉及一些乘除法影响还是很大的 比如2/0.0000023451与2/0.0000023461等等。相信解析解,参考数值解。
希望对你有帮助。
2)数值舍入误差传递会扩大的,matlab数值默认只能保留到小数点后15位,如果涉及一些乘除法影响还是很大的 比如2/0.0000023451与2/0.0000023461等等。相信解析解,参考数值解。
希望对你有帮助。

2021-01-25 广告
边缘计算可以咨询图为信息科技(深圳)有限公司了解一下,图为信息科技(深圳)有限公司(简称:图为信息科技)是基于视觉处理的边缘计算方案解决商。作为一家创新企业,多年来始终专注于人工智能领域的发展,致力于为客户提供满意的解决方案。...
点击进入详情页
本回答由图为信息科技(深圳)有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |