Get fitting statistics from "solve"
1 view (last 30 days)
1) How do I get the graphs to update nicely during the fitting precces.
2) How do I get statistics from the fitting precess?
Hello, I wrote a fitting script using the example here https://www.mathworks.com/help/optim/ug/fit-ode-problem-based-least-squares.html which was very helpful. The code is working fine, I just want to make it flashier, and report some statistics from the fit. Any advice would be appreciated.
I want to see each iteration of the fit, so I put plot commands in my function call RtoODE. However each time it plots, the first trace has lower y values than the next trace, meaning the y axis rescales each time. It's hard to see how the fit is changing when the y axis is constantly rescaling. Is there a better way to do this? Perhaps an option when calling "solve" that will show the iterations automatically?
I would also like to see the goodness of fit, such as the r^2. If I could get a plot of the goodness of fit for each iteration, showing the fit getting better and better, that would be wonderful. Is there a good way to do this?
I'm using MATLAB 2019a.
Thank you in advance!
Jerome Blair on 28 Mar 2020
Edited: Walter Roberson on 11 Apr 2020
You do all the plots once as follows:
p1 = plot(x1,y1,color1);
p2 = plot(x2,y2,color2);
Now set the y limits so they don't change:
Use values that will work for you.
Next is the code that changes all of the y arrays
Instead of plotting again you do
p1.YData = y1;
p2.YData = y2;
These changes to the YData field cause the plot to instantly change.
This sort of thing is covered in Chapter 17 of the MATLAB Graphics manual.
p1 can only reference 1 line. Additional lines must use p2, p3, etc., as in the example I sent. The different hanles, p1, p2, p3, etc., eg., can have any names you wish.
Of course p1 will not be able to access them. You have to acces them with p2 or p3--the handle that was used when theeh line was created--as in teh example I orginally sent.