Question

Physics-Step: ouve probably already heard of economic supply-demand curves of price (P) S. # of items produced. For exam

-Create a "f(p)" MATLAB function (name it Price.m) so that it outputs the vlue of the function f(P)= P2_19P+ 24/P
-Create a plot of f(P) over the range $0.00 to $20.00

-Finish code by writing own Secant Method to converge on the final solution for P:

%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%

% This script solves for the Equilibrium Price P, from the equation f(P)=0
%
% THIS IS JUST THE INITIAL CODE FRAGMENT. YOU NEED TO COMPLETE THE SCRIPT.
% *** ADD ADDITIONAL DOCUMENTATION! ***

%% INITIALIZATION OF VARIABLES FOR THE SECANT METHOD
clear

% Initial Bracket [P1, P2] and start the "P_history" vector of iterations
P1= 10; % DO NOT CHANGE P1 or P2 !!!
P2= 20; % " " " " " " !!!

P_history = [P1 P2]; % Will save each new Pk (k>2) as another element
% to the right in the vector P_history

% Tolerances (NEED TO REPLACE 0 PLACEHOLDERS)
tol_x = 0;
tol_f = 0;

%% PART [C]: ITERATIONS FOR THE SECANT METHOD

% Be sure to use a while loop, which continues iterating until BOTH
% convergence criteria ("proxy" AND "residual" error) are satisfied.

% You'll need to call Price(P) here somehow to get f(P) at each iteration,
% and use the last two iterations of P (and f(P)) to calculate the next
% iteration of price.
%
% Save the latest iteration of P in the vector of "P_history"


%% PART [D]: CONVERGENCE PLOTS OF "PROXY" and RESIDUAL ERRORS

% Calculate "proxy" error for all the (saved) Pk iterations in P_history
% Must start with "proxy" error for SECOND iteration (k=2), because
% you can't determine it for FIRST (k=1) iteration.

% Calculate residual error for all the (saved) Pk iterations in P_history
% Start with SECOND iteration (k=2), just to be consistent with "proxy"


% Plot the log10(proxy error) vs. iteration k -> save as Proxy_Plot.pdf

% Plot the log10(residual error) vs. k -> save as Resid_Plot.pdf


% Use built-in "fzero" to calculate MATLAB's solution to this problem, and
% calculate the "error" between fzero's answer and YOUR final, converged
% answer from [C].

0 0
Add a comment Improve this question Transcribed image text
Answer #1

`Hey,

Note: Brother if you have any queries related the answer please do comment. I would be very happy to resolve all your queries.

clc
clear all
close all
format long
root = secant(@Price,1,3,1e-6,100);
fprintf('Root using secant is %.4f\n',root(end));
Proxy=abs(diff(root));
res=abs(Price(root));
fplot(@Price,[0,20]);
figure;
semilogy((2:length(root)),Proxy);
title('Plot of proxy error');
figure;
semilogy((1:length(root)),res);
title('Plot of res error');
p=fzero(@Price,5);
fprintf('The equilibrium price using fzero is %.4f\n',p);
function y=Price(p)
y=p.^2-19*p+44-24./p;
end
function root = secant(func, xrold, xr, es, maxit)
% secant(func, xrold, xr, es, maxit):
% uses secant method to find the root of a function
% input:
% func = function name
% xrold, xr = initial guess
% es = (optional) stopping criteria (%)
% maxit = (optional) maximum number of allowable iteraitons
% Outputs:
% root = real root
% if necessary, assign defualt values
if nargin<5, maxit = 50;end
if nargin<4, es = 0.001;end

% Secant Method
iter = 0;
while(1)
xrn(iter+1) = xr-((func(xr)/(func(xr)-func(xrold)))*(xr-xrold));% calculate the new xr
iter=iter+1; % next iteration
if xrn(iter)~=0 % xrn is not zero
ea = abs(xr-xrn(iter))/abs(xrn(iter)) *100; % Calculate the error
end
if ea<es | iter==maxit % Check the sopping criteria
break
end
xrold=xr; % set xrold equal to xr
xr=xrn(iter); % set xr equal to xrn
end
root = xrn;
end

- O X - OX Figure 3 File Edit Window HD H View Insert MATLAB R20 Figure 2 HOME File Edit View Insert Tools Desktop Window Hel

Kindly revert for any queries

Thanks.

Add a comment
Know the answer?
Add Answer to:
-Create a "f(p)" MATLAB function (name it Price.m) so that it outputs the vlue of the...
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for? Ask your own homework help question. Our experts will answer your question WITHIN MINUTES for Free.
Similar Homework Help Questions
  • Please code in MatLab or Octave Output should match Sample Output in Second Picture Thank you...

    Please code in MatLab or Octave Output should match Sample Output in Second Picture Thank you 5. In this problem we will investigate using the Secant Method to approximate a root of a function f(r). The Secant Method is an iterative approach that begins with initial guesses , and r2. Then, for n > 3, the Secant Method generates approximations of a root of f(z) as In-1-In-2 n=En-1-f (x,-1) f(Fn-1)-f(-2) any iteration, the absolute error in the approximation can be...

  • i need the answer to be on a MatLab window 1. Consider the following equation, which...

    i need the answer to be on a MatLab window 1. Consider the following equation, which represents the concentration (c, in mg/ml) of a drug in the bloodstream over time (t, in seconds). Assume we are interested in a concentration of c2 mg/ml C3te-0.4t A. Estimate the times at which the concentration is 2 mg/ml using a graphical method Be sure to show your plot(s). Hint: There are 2 real solutions B. Use MATLAB to apply the secant method (e.g....

  • DO THIS IN MATLAB PLEASE DO THIS IN MATLAB Create a script file that performs the...

    DO THIS IN MATLAB PLEASE DO THIS IN MATLAB Create a script file that performs the following calculations. Your script will use the functions you create. Label all graphs appropriately. For this project, do not have your homemade functions fprintf anything, instead have all your fprintf commands within your script. Attach your published script file along with .m files for your functions. Exercise 1. A fundamental iterative method for finding the roots of equations of one-variable is known as Newton's...

  • 1) Create a matlab function that calculates: for Name your function TwoVarFunc : The inputs should...

    1) Create a matlab function that calculates: for Name your function TwoVarFunc : The inputs should be in the same order: xmin xmax ymin ymax N: n is the number of elements in the vector x and y The ouputs should be in the same order: f_xy: is the calculated array f(x,y) f_xyMAX: should be the the maximum value of the function f(x,y). Hint: to create vectors x and y look up the matlab built-in function linspace() Hint 2: To...

  • MATLAB MATLAB MATLAB Model description The logistic map is a function that is often used to...

    MATLAB MATLAB MATLAB Model description The logistic map is a function that is often used to model population growth. It is defined by P(t+1) = rP(t) (1 -P(t)/K) Here, P(t) represents the density of a population at year 1, the parameter r is a growth rate and the parameter K is the maximum possible population density (known as the carrying capacity). This equation says that if we know the density at one year, we can substitute it into the right-hand...

  • Write MATLAB code g(x)=x+a*f(x) f(x)=(e^x)+(x^2)-x-4 function f(x) is stored in fogp1.m (c) (1) Create a file...

    Write MATLAB code g(x)=x+a*f(x) f(x)=(e^x)+(x^2)-x-4 function f(x) is stored in fogp1.m (c) (1) Create a file gopgi.m to calculate the function glir, a) (see Preparation, ex. 7c) function [y] =gopg1(x,a) % input: x, a % output: y y= .....; (2) Create a file sucsub1.m and write a program that calculates the solution using the method of successive substitution. Calculate the values of g(x, a) by making multiple calls to the function gopg1(x, a). Take xo = 1.3 as starting value...

  • 5.1.2 Open Methods - Newton-Raphson Method Xi+1= xi – FOTO Matlab Code Example:4 function mynewtraph (f,...

    5.1.2 Open Methods - Newton-Raphson Method Xi+1= xi – FOTO Matlab Code Example:4 function mynewtraph (f, f1,x0,n) Xx0; for ilin x = x - f(x)/f1(x); disp (li if f(x) <0.01 f(x))) break end end end Matlab Code from Chapra function [root, ea, iter)=newtraph (func,dfunc, xr, es,maxit,varargin) newtraph: Newton-Raphson root location zeroes 8 [root, ea, iter)-newtraph (func, dfunc, xr, es,maxit,pl,p2, ...): $uses Newton-Raphson method to find the root of fune input: func- name of function 8dfunc = name of derivative of...

  • ____________ % This function is a modified versio of the newtmult function obtained % from % “Ap...

    ____________ % This function is a modified versio of the newtmult function obtained % from % “Applied Numerical Methods with MATLAB, Chapra, % 3rd edition, 2012, McGraw-Hill.” function [x,f,ea,iter]=newtmult(func,x0,es,maxit,varargin) % newtmult: Newton-Raphson root zeroes nonlinear systems % [x,f,ea,iter]=newtmult(f,J,x0,es,maxit,p1,p2,...): % uses the Newton-Raphson method to find the roots of % a system of nonlinear equations % input: % f = the passed function % J = the passed jacobian % x0 = initial guess % es = desired percent relative error...

  • Newton's Method in MATLAB During this module, we are going to use Newton's method to compute...

    Newton's Method in MATLAB During this module, we are going to use Newton's method to compute the root(s) of the function f(x) = x° + 3x² – 2x – 4 Since we need an initial approximation ('guess') of each root to use in Newton's method, let's plot the function f(x) to see many roots there are, and approximately where they lie. Exercise 1 Use MATLAB to create a plot of the function f(x) that clearly shows the locations of its...

  • please solve then upload matlab code Thanks 1. The function f(z, y) (a-x)2 + b(y-12)2 is...

    please solve then upload matlab code Thanks 1. The function f(z, y) (a-x)2 + b(y-12)2 is called Rosenbrock's banana function. It is often used as a benchmarking test for optimization algorithms becatse it is easy to find the minimum by hand but often very difficult to find numerically. Throughout the problem, we will use the values a = 2 and b 10. You can plot this function using the following code: x3:0.1:3; y = -10:0.2:10; Cx,Ymeshgrid(x,y); Z(2-X).2 10* (Y-X. 2)....

ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT