How to correctly calculate the ODEs model in UQlab and further complete the sensitivity analysis?

Hello everyone. I’m new UQ man.
I tried using UQlab to compute the ODE model in the attachment and then wanted to be able to analyze it for uncertain input sensitivity. I refer to Dr. Damar’s detailed answer at ‘‘https://uqworld.org/t/using-parameters-in-model-objects/578’’ when building the model. However, after several days of hard work, I found that the calculated Y result by taking the uncertain input with a small range fluctuation through the attachment YMODEL.m on UQlab had a big deviation from the result calculated with the certainty of ode45, and even could not be converged. The correct result should be convergence around 0 over time, but the result obtained in UQlab diverges. I have made many attempts to get the correct convergence of the answer, but can not find the wrong reason. I sincerely ask for some help to find the cause of the error? Or tell me how to achieve this work, thank you for your time.

Dear @li_chaoqun

In the code you provide, you wrap the myrigid_linear function in a UQLab model that you evaluate for a number of different inputs. So the only thing UQLab does is evaluate this function for some values X. It is not clear to me what you mean by “deviation” and “non-convergence” and what role UQLab plays in this.

Can you explain your problem in more detail and maybe provide the codes that reproduce your problem?

Best regards
Styfen

[quote=“li_chaoqun, post:4, topic:1943, full:true”]
Dear Dr. Styfen

Thank you for your reply. Regarding “deviation” and “non-convergence” , I refer to the results of ODEs solution. The results obtained by UQlab are completely different from those obtained by ode45 in matlab, which means that wrong results may be obtained.
The code to reproduce my problem I’ve put all in the comments above, you can try to get f = 0.15 with the ode45 solver in matlab; H0 = 76; Q0 = 110 is the determined value, annotate out X, and solve rigid_linear according to the most conventional method. Then comparing the results of Ymodel shows that they are completely different.
I don’t know how to describe it clearly, but if it’s still not clear, maybe you can provide a similar example of this system of ordinary differential equations to use in UQlab? Because I’m not sure if the function asked is defined correctly in UQlab.Thanks again for your time.

Best regards
Chaoqun

Dear @li_chaoqun

In the code you provided, the only task of UQLab is to generate the input X and evaluate your function myrigid_linear. This means that uq_evalModel(myrigid_linear,X) is equivalent to myrigid_linear(X).

If you think there is still a misunderstanding, can you provide a single executable example that produces a plots that shows the problem (this discrepancy)?

Best regards
Styfen