第5个回答 2020-03-22
题主的微分方程可以使用龙格库塔法(Runge_Kutta)求得其数值解。求解思路:
1、根据微分方程自定义函数ode_fun(),其内容
syms t1
dy=-(R*I/L+int(I,t1,0,t)/(L*C)-sign((sin(w*t)))/L)
2、根据龙格库塔法,定义其算法函数 RK2(),其调用格式
[t,I] = RK2(@(t,I)ode_fun(t,I),I0,h,a,b);
其中:I0—初值,a—起始值,b—终值,h—步长
3、使用plot函数,绘制电流 i波形图
4、主程序
I0=0;
a=0;b=150;h=5;
[t,I] = RK2(@(t,I)ode_fun(t,I),I0,h,a,b); %二阶龙格库塔法
plot(t,I,'r*-','LineWidth',0.5); grid on%作图
xlabel('t'),ylabel('I(t)'); %描述x轴,y轴
title('Ldi/dt+Ri+∫idt/C=sign(sin(ωt)) 随t变化的曲线') %标题
运行结果
上述结果,是利用matlab软件编程运行得到的。