-
Notifications
You must be signed in to change notification settings - Fork 323
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Some problems about the PDE-FIND accuracy. #563
Comments
Hey, can you start with the version of pysindy, and at the very least, the code you used to create the |
The version is 1.7.5. And the code is as follows, Importimport matplotlib.pyplot as plt np.random.seed(100) Data Prepdata = loadmat('data/VacuumFDM.mat') u_dot = ps.FiniteDifference(axis=1)._differentiate(u, t=dt) u = u.reshape(len(x), len(t), 1) Library Definelibrary_functions = [lambda x: x, lambda x: x * x, lambda x: x * x * x] pde_lib = ps.PDELibrary( Fitoptimizer = ps.STLSQ(threshold=1, alpha = 1e-5, normalize_columns=False) Weak form SINDyu = np.real(data['usol']) u_dot = ps.SmoothedFiniteDifference(axis=1)._differentiate(u, t=dt) library_functions = [lambda x: x, lambda x: x * x, lambda x: x * x * x] X, T = np.meshgrid(x, t) pde_lib = ps.WeakPDELibrary( optimizer = ps.STLSQ(threshold=1e-3, alpha = 1e-5, normalize_columns=True) |
I tried STRidge algorithm (from Data-driven discovery of partial differential equations) with the same dataset, the PDE can be identified with clean data in a strong form (grid size is 101*201, the same as the default size in pySINDy model). However the parameter input into the may be wierd? w = TrainSTRidge(R,Ut,0.1,3000), means the dtol is 3000. Whatever, can this result rule out issues with the quality of the dataset? And how can I achieve the same effect in pySINDy? I noticed that there seems no iteration about the threshold (TrainSTRidge function in STRidge) in pySINDy. |
Can you please provide the link to the data? |
@makeabhishek I upload the data in my repositories, the link is https://github.com/Camelllia-L/1DConsolidationVacuumAnalyticalData Thank you! A problem I found with this PDE is that tit will be discontinuous near point (0,0). The initial boundary is u(0,x) = 0, here 0<x<H. And the top boundary is u(t,0) = 1, here 0<t<T. I suspect this is what caused pysindy to fail. |
Well, thanks a lot for your work. It's fantastic.
I'm now trying to identify the 1D Terzaghi Consolidation Equations (u_t = a*u_xx), but I met some problems. The accuracy is not very good, the PDE can only be identified with clean data or data with about 0.15% noise, and only with the weak form method(even clean data).
I don't know whether it is the problem of the data I input into the model. The data was obtained through Finite Difference Method.
Actually, I noticed your paper about PDE-FIND first, there is a poly- difference method in the STRidge algorithm. Can I use this difference method in pySINDy? Or in which ways can I obtain the same effect?
I tried the Smoothed-FD here but it has no effect, just like the normal FD. Does this problem mean that it has nothing to do with the differential method? If yes, then maybe it is the problem of input data itself?
Thank you!
The text was updated successfully, but these errors were encountered: