How to write function for two variables
88 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I am trying to write down the function to predict "y" having two independent variables "x1 & x2". Here is my code for the function;
function y=Project_func(beta0,x1,x2)
y=100./(1+exp((-beta0(1).*(-2.4-(39.7*(1+x1).^(-2.8))))+(beta0(2).*(-2.4-(39.7*(1+x1).^(-2.8))).*log10(100.*x2))));
end;
but once I run the code it does not spit the y values as desired because I have predicted values taken from the excel. I want to solve it in the Matlab. Here are the equations. C1 & C2 are parameters having intial guess.
7 commentaires
dpb
le 22 Fév 2023
Modifié(e) : dpb
le 22 Fév 2023
%figure;
%hold on
%set(gca, 'fontsize',14,'fontweight','bold');
for i=1:p
h2(i) = mesh(X,Y,Xp(:,:,i));
end
%plot C vs t to know the total span
ypred=fnameFOR(beta0,X,Y);
h2(i+1)=mesh(X,Y,ypred);
You've not provided any data nor even described the variables; so nobody can see your workspace from here to know...but the above code tries to put p mesh plots on the same axis which will look very messy. Probably about all it will leave visible will be the result for whichever plane of the array is the largest in amplitude, it occluding the others.
Then, you add one more yet on top of those; one presumes fnameFOR is the name for the preceding function m-file; that's a very non-informative name, but MATLAB doesn't really care.
Now, the h array will contain the handles to the various mesh plot objects created; what, specifically you had in mind to do to them after plotting is unclear as to why you did save the handles; they're only of use to be able to make changes to the properties of the plot afterwards if desired. Or, you could hide all of them except one by setting 'Visible','off' so could see what each plane did look like.
It's certainly unclear what you think isn't working...
Réponse acceptée
dpb
le 22 Fév 2023
I'd approach writing the functional something more like--
function y=Y(C,x1,x2)
% Magic function Y=fn(C, x1, x2) from unknown source
% C is 2-vector of C1, C2 per Eqn 1
C1=C(1); C2=C(2); % convenience in writing expression w/o subscripts
C2S=@(x) -2.40874-39.748*(1+x).^-2.856; % define C2* as anonymous function(x)
y=100./(1+exp(-C1.*C2S(x1)+C2.*C2S(x1).*log10(100*x2))); % the function (x1,x2) for input C
end;
If we had the experimental or other data, be interesting to see how well it would fit...but, we're pretty much hamstrung at this point.
0 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Annotations dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!