用matlab解下面的方程,如果无穷大次求和解不出来的话可以用一个较大的数代替无穷大,最后要附上代码和解的图像
1条回答 默认 最新
- CSDN专家-Matlab_Fans 2021-08-04 20:16关注
代码:
V0 = 1e8; T = 0.00025; td = 0.0000152; N = 1e4; n = 1:N; Vpt = @(t) V0/2 + sum( V0*( sin(2*n*pi*td/T).*cos(2*n*pi*t/T) + (1-cos(2*n*pi*td/T)).*sin(2*n*pi*t/T) )./(n*pi) ); Fpt = @(t) V0*t/2 + sum( (T*(V0*cos((2*pi*n*t)/T - (2*pi*n*td)/T) - V0*cos((2*pi*n*t)/T)))./(2*n.^2*pi^2) ); Fpt2 = @(t) Fpt(t) - Fpt(0); % 原函数 dfun = @(t,x) Vpt(t)*x./Fpt(t); [T,X] = ode45( dfun,[1 10],0.1 ); figure plot(T,X)
结果:
需要注意的问题:
- t=0时,若Fpt(0)=0,则会出现分母为0无意义的情况;
- 需要给出tau的初始值。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报