matlab循环一次多长时间,新人求教简化for循环的办法,循环太大耗时太长

本文介绍了如何通过符号计算和预计算优化MATLAB中的大规模for循环,以降低计算时间。作者首先定义了一系列符号变量,然后在for循环中进行复杂的数学运算。尽管例子中具体涉及的数学公式未详述,但可以推断作者在寻找减少循环次数或提前计算的方法以提高效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

%**********************************一单元测试**********************************

syms c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c4_ c5_ c6_ real;

syms alpha1 alpha2 alpha3 alpha4 alpha5 alpha6 real;

syms L T0 rh r0 E S I positive;

syms sga yta lda lda0

syms Q1 R1 K1  Q2 R2 K2  tol

lda=0.05011;

%L=10;S=100;I=1;E=20;

sga=100;yta=0.1;r0=0;

%**********************************代数运算************************************

alpha1=yta^2+lda^2;alpha2=alpha1*sga^2;alpha3=yta^2*sga^2;alpha4=lda^2;alpha5=0;alpha6=1/(2*lda*yta);

c1=alpha1-(alpha3*(r0+0.5)+alpha5);c2=alpha3*r0;c4=alpha3*r0;c3=0.5*alpha3;c5=alpha3;

c6=-alpha1*(alpha3*(r0+0.5)+alpha5)-alpha2;c7=alpha1*alpha3*r0;c9=alpha1*alpha3*r0;

c8=0.5*alpha1*alpha3;c10=alpha1*alpha3;c11=-(alpha1*alpha2-4*alpha3*alpha4);

c4_=3*c4;c5_=3*c5;

c6_=3*alpha3+c6;

a=sym(zeros(250,1));

b=sym(zeros(250,1));

delta=sym(zeros(6,1));

F=sym(zeros(6,1));

for i=1:250  %符号向量

a(i)=sym (['a',num2str(i)]);

end

for i=1:250  %符号向量

b(i)=sym (['b',num2str(i)]);

end

% a=sym('a%d',[200,1]);

% b=sym('b%d',[200,1]);

for ii=6:249

a(ii+1)=-(a(ii-1)*(ii-2)*(ii-3)*(ii-4)*(ii-5)*c1+a(ii-2)*(ii-3)*(ii-4)*(ii-5)*(c2*(ii-6)+c4)+a(ii-3)*(ii-4)*(ii-5)*(c3*(ii-6)*(ii-7)+c5*(ii-6)+c6)+a(ii-4)*(ii-5)*(c7*(ii-6)+c9)+a(ii-5)*(c8*(ii-6)*(ii-7)+c10*(ii-6)+c11))/(ii*(ii-1)*(ii-2)*(ii-3)*(ii-4)*(ii-5));

end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值