Differential equation error.
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
The following equation need to be implemented and the graph should be obtained like this. I tried all the way, but couldn't.
clc;
close all;
clear all;
t=0:0.001:10;
I = @(t)100*sin(100*pi*t);
r0=0.0002;
Lp=1;
U0=(0.95+(0.005./I(t)));
Ust=(U0+(r0*abs(I(t))))*Lp;
G=(abs(I(t)))./Ust;
g0 = 0.1;
fun = @(t,g) (1/0.00001)*(G-g);
[T,g] = ode45(@(t,g) fun(t,g,I),0.01:0.001:5,g0);
plot(T,g);
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1161008/image.jpeg)
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1161013/image.png)
0 comentarios
Respuestas (1)
Walter Roberson
el 18 de Oct. de 2022
U0=@(t)(0.95+(0.005./I(t)));
Ust=@(t)(U0(t)+(r0*abs(I(t))))*Lp;
G=@(t)(abs(I(t)))./Ust(t);
g0 = 0.1;
fun = @(t,g) (1/0.00001)*(G(t)-g);
However using abs() violates the restriction that the function you use has continuous second derivatives.
Please see the ballode example.
3 comentarios
Walter Roberson
el 19 de Oct. de 2022
The code needs bigger changes. The function violates the continuity requirements of all ode*() solvers
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!