util.m

来自「这是一个超宽带的源码」· M 代码 · 共 49 行

M
49
字号
%%	[A,b,umin] = util(xmax,n,f)%%  Arguments:%	xmax - approximate between (0,xmax]  (default xmax=10)%  n - number of points for linear interpolation (default n=4)%  f - utility function default (f=@log)%%	gives a linear aproximation of a utility function (log by default)% 	in points xmax.^[-n+2:1] (default [0.01,0.1,1,10]). %%  A, b - such that for every x, U(x) <= Ax + b%  umin - min U (for x=0)%function [A,b,umin] = util(xrange,n,f)if nargin < 3	% define default utility f. here	f=@log;	if nargin < 2		n = 4;		if nargin < 1			xrange = [10 1e-3];		end	endendxmax = xrange(1);if length(xrange) < 2    xmin = 10^(-n+1+log10(xmax));else    xmin = xrange(2);end% interpolation pointsx = logspace(log10(xmin), log10(xmax), n);fx = feval(f,x);A = zeros(size(x,2)-1,1);b = zeros(size(x,2)-1,1);for i=1:size(x,2)-1    A(i) = (fx(i+1)-fx(i))/(x(i+1)-x(i));    b(i) = fx(i) - A(i)*x(i);endumin = b(1);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?