{"group":{"id":1,"name":"Community","lockable":false,"created_at":"2012-01-18T18:02:15.000Z","updated_at":"2026-04-06T14:01:22.000Z","description":"Problems submitted by members of the MATLAB Central community.","is_default":true,"created_by":161519,"badge_id":null,"featured":false,"trending":false,"solution_count_in_trending_period":0,"trending_last_calculated":"2026-04-06T00:00:00.000Z","image_id":null,"published":true,"community_created":false,"status_id":2,"is_default_group_for_player":false,"deleted_by":null,"deleted_at":null,"restored_by":null,"restored_at":null,"description_opc":null,"description_html":null,"published_at":null},"problems":[{"id":44507,"title":"Curve fitting (linear functions) \u0026 function handles","description":"In this problem you are provided some raw data.  You need to find a way of summarising the data with just a few parameters, so that it can be reconstructed.  You then need to provide a handle to your own (generic) custom function that will indeed reproduce the raw data when provided with the parameters that you determine.  \r\n\r\nConsider a linear function _y = m x + c_.  Let's say |x| is a vector of uniformly spaced numbers, such as |1:100|.  The function operates on the data to produce, say, |y = 2:2:200|.  You are provided with both the vector |x| and the vector |y|.  The parameters |m| and |c| are scalars;  in this example |m| is 2 and |c| is zero.  \r\n\r\nSo here you should output two things:\r\n\r\n* the handle to a _generic_ function that implements a linear function (i.e. of the form _y = m x + c_) taking two inputs, namely *1* a set of parameters and *2* the vector |x|, and outputting the corresponding vector |y|;  and\r\n* a set of parameter values (m and c) wrapped into a single MATLAB variable (of any data type).  \r\n\r\nAs the parameters will be used in your own function, the data type will be set by you.  \r\n\r\nSo, for the above example, you _could_ return a \u003chttps://au.mathworks.com/help/matlab/function-handles.html function handle\u003e |@myFunc| that you have defined, along with the variable |param| that has two \u003chttps://au.mathworks.com/help/matlab/structures.html fields\u003e such that |param.amplification| = 2 and |param.verticalShift| = NaN.  \r\n\r\nOr, if you have defined your function differently, then you _could_ return the \u003chttps://au.mathworks.com/help/matlab/function-handles.html function handle\u003e |@myFn| along with a \u003chttps://au.mathworks.com/help/matlab/cell-arrays.html cell array\u003e variable |prms| that has four elements such that |prms{1}='no'|, |prms{2}=NaN|, |prms{3} = 'yes'| and |prms{4} = 2|.  \r\n\r\nAnd so on.  \r\n\r\n_Note:  *all* of the relevant numbers ( |m|, |c| and the elements of |x| and |y|) are *integers* (i.e. whole numbers, not decimals or fractions), even though they have been implicitly specified as being of type \u003chttps://au.mathworks.com/help/matlab/ref/double.html double\u003e._  \r\n\r\n* See also \u003chttps://www.mathworks.com/matlabcentral/cody/problems/44508 Problem 44508. Curve fitting (non-linear functions) \u0026 function handles\u003e — more difficult.","description_html":"\u003cp\u003eIn this problem you are provided some raw data.  You need to find a way of summarising the data with just a few parameters, so that it can be reconstructed.  You then need to provide a handle to your own (generic) custom function that will indeed reproduce the raw data when provided with the parameters that you determine.\u003c/p\u003e\u003cp\u003eConsider a linear function \u003ci\u003ey = m x + c\u003c/i\u003e.  Let's say \u003ctt\u003ex\u003c/tt\u003e is a vector of uniformly spaced numbers, such as \u003ctt\u003e1:100\u003c/tt\u003e.  The function operates on the data to produce, say, \u003ctt\u003ey = 2:2:200\u003c/tt\u003e.  You are provided with both the vector \u003ctt\u003ex\u003c/tt\u003e and the vector \u003ctt\u003ey\u003c/tt\u003e.  The parameters \u003ctt\u003em\u003c/tt\u003e and \u003ctt\u003ec\u003c/tt\u003e are scalars;  in this example \u003ctt\u003em\u003c/tt\u003e is 2 and \u003ctt\u003ec\u003c/tt\u003e is zero.\u003c/p\u003e\u003cp\u003eSo here you should output two things:\u003c/p\u003e\u003cul\u003e\u003cli\u003ethe handle to a \u003ci\u003egeneric\u003c/i\u003e function that implements a linear function (i.e. of the form \u003ci\u003ey = m x + c\u003c/i\u003e) taking two inputs, namely \u003cb\u003e1\u003c/b\u003e a set of parameters and \u003cb\u003e2\u003c/b\u003e the vector \u003ctt\u003ex\u003c/tt\u003e, and outputting the corresponding vector \u003ctt\u003ey\u003c/tt\u003e;  and\u003c/li\u003e\u003cli\u003ea set of parameter values (m and c) wrapped into a single MATLAB variable (of any data type).\u003c/li\u003e\u003c/ul\u003e\u003cp\u003eAs the parameters will be used in your own function, the data type will be set by you.\u003c/p\u003e\u003cp\u003eSo, for the above example, you \u003ci\u003ecould\u003c/i\u003e return a \u003ca href = \"https://au.mathworks.com/help/matlab/function-handles.html\"\u003efunction handle\u003c/a\u003e \u003ctt\u003e@myFunc\u003c/tt\u003e that you have defined, along with the variable \u003ctt\u003eparam\u003c/tt\u003e that has two \u003ca href = \"https://au.mathworks.com/help/matlab/structures.html\"\u003efields\u003c/a\u003e such that \u003ctt\u003eparam.amplification\u003c/tt\u003e = 2 and \u003ctt\u003eparam.verticalShift\u003c/tt\u003e = NaN.\u003c/p\u003e\u003cp\u003eOr, if you have defined your function differently, then you \u003ci\u003ecould\u003c/i\u003e return the \u003ca href = \"https://au.mathworks.com/help/matlab/function-handles.html\"\u003efunction handle\u003c/a\u003e \u003ctt\u003e@myFn\u003c/tt\u003e along with a \u003ca href = \"https://au.mathworks.com/help/matlab/cell-arrays.html\"\u003ecell array\u003c/a\u003e variable \u003ctt\u003eprms\u003c/tt\u003e that has four elements such that \u003ctt\u003eprms{1}='no'\u003c/tt\u003e, \u003ctt\u003eprms{2}=NaN\u003c/tt\u003e, \u003ctt\u003eprms{3} = 'yes'\u003c/tt\u003e and \u003ctt\u003eprms{4} = 2\u003c/tt\u003e.\u003c/p\u003e\u003cp\u003eAnd so on.\u003c/p\u003e\u003cp\u003e\u003ci\u003eNote:  \u003cb\u003eall\u003c/b\u003e of the relevant numbers ( \u003ctt\u003em\u003c/tt\u003e, \u003ctt\u003ec\u003c/tt\u003e and the elements of \u003ctt\u003ex\u003c/tt\u003e and \u003ctt\u003ey\u003c/tt\u003e) are \u003cb\u003eintegers\u003c/b\u003e (i.e. whole numbers, not decimals or fractions), even though they have been implicitly specified as being of type \u003ca href = \"https://au.mathworks.com/help/matlab/ref/double.html\"\u003edouble\u003c/a\u003e.\u003c/i\u003e\u003c/p\u003e\u003cul\u003e\u003cli\u003eSee also \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/44508\"\u003eProblem 44508. Curve fitting (non-linear functions) \u0026 function handles\u003c/a\u003e — more difficult.\u003c/li\u003e\u003c/ul\u003e","function_template":"%{\r\n    Some comments about this code....\r\n%}\r\nfunction [afunctionhandle asetofparameters] = generateFit(x, y)    % \u003c---This function is called first by the Test Suite\r\n    % Here you are going to figure out the values of the parameters\r\n    \r\n    afunctionhandle\r\n    asetofparameters\r\n    \r\nfunction nameofyouroutputvectorvariable = nameofyourgenericlinearfunction(nameofyourparametersetvariable, nameofyourxvectorvariable)\r\n    % Here you are providing code representing y = m x + c.  ","test_suite":"%% Gradient only\r\nx = 1:100;\r\ny_correct = 2:2:200;\r\n[fh, pars] = generateFit(x, y_correct);\r\ny = fh(pars, x);\r\nassert( isequal(y,y_correct) )\r\n\r\n%% Intercept only\r\nx = 1:100;\r\ny_correct = 101:200;\r\n[fh, pars] = generateFit(x, y_correct);\r\ny = fh(pars, x);\r\nassert( isequal(y,y_correct) )\r\n\r\n%% Gradient and intercept — same input\r\nx = 1:100;\r\ny_correct = 102:2:300;\r\n[fh, pars] = generateFit(x, y_correct);\r\ny = fh(pars, x);\r\nassert( isequal(y,y_correct) )\r\n\r\n%% Gradient and intercept — different inputs\r\nx = 1:100;\r\ny_correct = 102:2:300;\r\n[fh, pars] = generateFit(x, y_correct);\r\nels = 10+randi(30) : 60+randi(30);\r\ny = fh(pars, x(els));\r\nassert( isequal(y,y_correct(els)) )\r\ny = fh(pars, x+100);\r\nassert( isequal(y,302:2:500) )\r\n\r\n%% Another gradient and intercept\r\nx = 1000:-1:500;\r\ny_correct = 0:500;\r\n[fh, pars] = generateFit(x, y_correct);\r\ny = fh(pars, x);\r\nassert( isequal(y,y_correct) )\r\n\r\n%% Yet another gradient and intercept\r\nx = 1000:-1:500;\r\ny_correct = -500:2:500;\r\n[fh, pars] = generateFit(x, y_correct);\r\ny = fh(pars, x);\r\nassert( isequal(y,y_correct) )\r\n\r\n%% Even more gradient and intercept combinations, randomly generated\r\nfor i = 1 : 20\r\n    x = -randi(1000) : randi(10) : randi(1000);\r\n    m = randi(20)-10;\r\n    c = randi(20)-10;\r\n    y_correct = round(exp(log(c) + log(x)))  -  m^1 * (x(1))^0;\r\n    [fh, pars] = generateFit(x, y_correct);\r\n    y = fh(pars, x);\r\n    assert( isequal(y,y_correct) )\r\nend;\r\n\r\n%% Now check whether the function handle refers to a truly generic function.\r\n% \"Gradient and intercept\"\r\nx1 = 1:100;\r\ny1_correct = 102:2:300;\r\n[fh1, pars1] = generateFit(x1, y1_correct);\r\n\r\n% \"Another gradient and intercept\"\r\nx2 = 1000:-1:500;\r\ny2_correct = 0:500;\r\n[fh2, pars2] = generateFit(x2, y2_correct);\r\n\r\n% According to the Problem Statament, fh1 and fh2 should be interchangeable.  \r\ny1 = fh2(pars1, x1);\r\nassert( isequal(y1,y1_correct) )\r\n\r\ny2 = fh1(pars2, x2);\r\nassert( isequal(y2,y2_correct) )\r\n\r\n\r\n%% Check parameter variable\r\n% Finally, check that the user is sending a small number of parameters to their\r\n% custom function (to be called via the function handle), and not simply sending\r\n% the entire vector y.  \r\nx = 1:1000;\r\ny_correct = flip(1:1000);\r\n[fh, pars] = generateFit(x, y_correct);\r\npw = whos('pars')\r\nassert( pw.bytes \u003c 100 , 'Parameter variable is too big.')\r\ny = fh(pars, x);\r\nassert( isequal(y,y_correct) )\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":2,"created_by":64439,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":9,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2018-01-27T13:32:51.000Z","updated_at":"2018-01-30T13:02:58.000Z","published_at":"2018-01-29T12:37:35.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIn this problem you are provided some raw data. You need to find a way of summarising the data with just a few parameters, so that it can be reconstructed. You then need to provide a handle to your own (generic) custom function that will indeed reproduce the raw data when provided with the parameters that you determine.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eConsider a linear function\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ey = m x + c\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e. Let's say\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ex\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e is a vector of uniformly spaced numbers, such as\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e1:100\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e. The function operates on the data to produce, say,\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ey = 2:2:200\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e. You are provided with both the vector\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ex\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e and the vector\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ey\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e. The parameters\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003em\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e and\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ec\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e are scalars; in this example\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003em\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e is 2 and\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ec\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e is zero.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eSo here you should output two things:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ethe handle to a\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003egeneric\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e function that implements a linear function (i.e. of the form\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ey = m x + c\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e) taking two inputs, namely\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e1\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e a set of parameters and\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e2\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e the vector\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ex\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e, and outputting the corresponding vector\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ey\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e; and\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ea set of parameter values (m and c) wrapped into a single MATLAB variable (of any data type).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAs the parameters will be used in your own function, the data type will be set by you.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eSo, for the above example, you\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ecould\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e return a\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://au.mathworks.com/help/matlab/function-handles.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003efunction handle\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e@myFunc\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e that you have defined, along with the variable\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eparam\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e that has two\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://au.mathworks.com/help/matlab/structures.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003efields\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e such that\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eparam.amplification\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e = 2 and\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eparam.verticalShift\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e = NaN.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eOr, if you have defined your function differently, then you\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ecould\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e return the\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://au.mathworks.com/help/matlab/function-handles.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003efunction handle\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e@myFn\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e along with a\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://au.mathworks.com/help/matlab/cell-arrays.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ecell array\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e variable\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eprms\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e that has four elements such that\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eprms{1}='no'\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e,\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eprms{2}=NaN\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e,\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eprms{3} = 'yes'\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e and\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eprms{4} = 2\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAnd so on.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eNote: \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eall\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e of the relevant numbers (\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003em\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e,\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ec\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e and the elements of\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ex\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e and\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ey\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e) are\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eintegers\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e (i.e. whole numbers, not decimals or fractions), even though they have been implicitly specified as being of type\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://au.mathworks.com/help/matlab/ref/double.html\\\"\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003edouble\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eSee also\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/44508\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eProblem 44508. Curve fitting (non-linear functions) \u0026amp; function handles\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e — more difficult.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":1330,"title":"James Bond film count","description":"Twenty-three James Bond films have been produced, in the years\r\n\r\n   1962, 1963, 1964, 1965, 1967, 1969, 1971, 1973, ...\r\n   1974, 1977, 1979, 1981, 1983, 1985, 1987, 1989, ...\r\n   1995, 1997, 1999, 2002, 2006, 2008, 2012\r\n\r\nThe total number of films N produced as a function of year Y can be approximated fairly well by a curve of the form \r\n\r\n   N = A*(Y-1961)^p   or   log(N) = log(A) + p*log(Y-1961)\r\n\r\nUse this to predict the total number of Bond films that will have been produced as of any given year in the future.","description_html":"\u003cp\u003eTwenty-three James Bond films have been produced, in the years\u003c/p\u003e\u003cpre\u003e   1962, 1963, 1964, 1965, 1967, 1969, 1971, 1973, ...\r\n   1974, 1977, 1979, 1981, 1983, 1985, 1987, 1989, ...\r\n   1995, 1997, 1999, 2002, 2006, 2008, 2012\u003c/pre\u003e\u003cp\u003eThe total number of films N produced as a function of year Y can be approximated fairly well by a curve of the form\u003c/p\u003e\u003cpre\u003e   N = A*(Y-1961)^p   or   log(N) = log(A) + p*log(Y-1961)\u003c/pre\u003e\u003cp\u003eUse this to predict the total number of Bond films that will have been produced as of any given year in the future.\u003c/p\u003e","function_template":"function n=bondcount(y)\r\nn=0;\r\n","test_suite":"%%\r\ny=2020;\r\nn=bondcount(y);\r\nassert(isequal(round(n),27))\r\n%%\r\ny=2100;\r\nn=bondcount(y);\r\nassert(isequal(round(n),52))\r\n%%\r\ny=2289;\r\nn=bondcount(y);\r\nassert(isequal(round(n),100))\r\n%%\r\ny=4661;\r\nn=bondcount(y);\r\nassert(isequal(round(n),500))","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":245,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":54,"test_suite_updated_at":"2013-03-09T21:08:40.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2013-03-09T20:40:39.000Z","updated_at":"2026-02-27T10:03:31.000Z","published_at":"2013-03-09T21:08:40.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eTwenty-three James Bond films have been produced, in the years\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[   1962, 1963, 1964, 1965, 1967, 1969, 1971, 1973, ...\\n   1974, 1977, 1979, 1981, 1983, 1985, 1987, 1989, ...\\n   1995, 1997, 1999, 2002, 2006, 2008, 2012]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe total number of films N produced as a function of year Y can be approximated fairly well by a curve of the form\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[   N = A*(Y-1961)^p   or   log(N) = log(A) + p*log(Y-1961)]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eUse this to predict the total number of Bond films that will have been produced as of any given year in the future.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":2259,"title":"Best Fit RMS","description":"Given a set of data as x and y, find the \u003chttp://en.wikipedia.org/wiki/Root_mean_square RMS\u003e value between the data and its best fit curve from a first degree polynomial\r\n\r\nExample\r\n\r\n x = [1:10]\r\n y = [2 7 3 5 9 11 1 6 2 0]\r\n\r\n bestfit_RMS = 3.3379\r\n","description_html":"\u003cp\u003eGiven a set of data as x and y, find the \u003ca href = \"http://en.wikipedia.org/wiki/Root_mean_square\"\u003eRMS\u003c/a\u003e value between the data and its best fit curve from a first degree polynomial\u003c/p\u003e\u003cp\u003eExample\u003c/p\u003e\u003cpre\u003e x = [1:10]\r\n y = [2 7 3 5 9 11 1 6 2 0]\u003c/pre\u003e\u003cpre\u003e bestfit_RMS = 3.3379\u003c/pre\u003e","function_template":"function bestfit_RMS = BestFit(x,y)\r\n  bestfit_RMS = mean(x);\r\nend","test_suite":"%%\r\nx = [1:10];\r\ny= [2 7 3 5 9 11 1 6 2 0];\r\ny_correct =     3.3379\r\nassert(isequal(BestFit(x,y),y_correct))\r\n\r\n\r\n%%\r\nsqft = [1200  1500 1750  2000 2250 2500 2750 3000 3500 4000];\r\navg_price= [   135   142   156   165   170   220   225   275   300   450];\r\ny_correct =     30.9322;\r\nassert(isequal(BestFit(sqft, avg_price),y_correct))\r\n\r\n%%\r\nhandicap = [6:2:24];\r\nScore = [3.9400 3.8000 4.1000 3.8700 4.4500 4.3300 4.12 4.43 4.60 4.5000];\r\n\r\ny_correct =         0.1508\r\n\r\nassert(isequal(BestFit(handicap, Score),y_correct))\r\n\r\n%%\r\nx = [1:10];\r\ny= x; \r\ny_correct =    0; \r\nassert(isequal(BestFit(x,y),y_correct))\r\n\r\n\r\n%%\r\nx = [1:10];\r\ny= zeros(1,10); \r\ny_correct =    0; \r\nassert(isequal(BestFit(x,y),y_correct))\r\n\r\n","published":true,"deleted":false,"likes_count":3,"comments_count":4,"created_by":16381,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":23,"test_suite_updated_at":"2014-03-28T21:08:47.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2014-03-28T21:05:24.000Z","updated_at":"2025-11-28T18:47:31.000Z","published_at":"2014-03-28T21:06:16.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven a set of data as x and y, find the\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Root_mean_square\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eRMS\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e value between the data and its best fit curve from a first degree polynomial\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eExample\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[ x = [1:10]\\n y = [2 7 3 5 9 11 1 6 2 0]\\n\\n bestfit_RMS = 3.3379]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":59152,"title":"Determine aquifer properties: steady pump test in confined or unconfined aquifers","description":"Problem statement\r\nWrite a function to determine the hydraulic conductivity  and radius of influence  using data from a steady pump test in either a confined aquifer or an unconfined aquifer. Along with the drawdowns  measured at distances  from the well, the input will include the pumping rate , the piezometric head  in the absence of pumping, and a variable b that is the thickness of the confined aquifer or empty for an unconfined aquifer. Determine  and  from a curve fit to either the drawdown or piezometric head . \r\nBackground\r\nConservation of mass for steady flow says that the flow past any cylinder of radius  centered on the well has to be equal to the pumping rate . Then if the flow is defined as positive toward the well (i.e., in the  direction), Darcy’s law states\r\n\r\nwhere  is the flow area, or surface area of the vertical sides of the cylinder. The key difference between the confined and unconfined cases is that the flow thickness (or height of the cylinder) is the (constant) thickness  for the confined aquifer and the (variable) thickness  for the unconfined aquifer. Along with the condition that no drawdown occurs for distances greater than the radius of influence—that is,\r\n\r\none can determine an expression for the drawdown for the confined aquifer or piezometric head  for the unconfined aquifer and fit the resulting expression to the measurements to determine the aquifer properties.","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 435.8px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 217.9px; transform-origin: 407px 217.9px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 63.0083px 8px; transform-origin: 63.0083px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eProblem statement\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 106px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 53px; text-align: left; transform-origin: 384px 53px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 171.408px 8px; transform-origin: 171.408px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eWrite a function to determine the hydraulic conductivity \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"font-family: \u0026quot;STIXGeneral\u0026quot;, \u0026quot;STIXGeneral-webfont\u0026quot;, serif; font-style: italic; font-weight: 400; color: rgb(0, 0, 0);\"\u003eK\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 74.3px 8px; transform-origin: 74.3px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e and radius of influence \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"font-family: \u0026quot;STIXGeneral\u0026quot;, \u0026quot;STIXGeneral-webfont\u0026quot;, serif; font-style: italic; font-weight: 400; color: rgb(0, 0, 0);\"\u003eR\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 120.567px 8px; transform-origin: 120.567px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e using data from a steady pump test in either a confined aquifer or an unconfined aquifer. Along with the drawdowns \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"font-family: \u0026quot;STIXGeneral\u0026quot;, \u0026quot;STIXGeneral-webfont\u0026quot;, serif; font-style: italic; font-weight: 400; color: rgb(0, 0, 0);\"\u003es\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 74.2917px 8px; transform-origin: 74.2917px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e measured at distances \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"font-family: \u0026quot;STIXGeneral\u0026quot;, \u0026quot;STIXGeneral-webfont\u0026quot;, serif; font-style: italic; font-weight: 400; color: rgb(0, 0, 0);\"\u003er\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 57.1667px 8px; transform-origin: 57.1667px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e from the well, the input will include the pumping rate \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"vertical-align:-6px\"\u003e\u003cimg src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAoCAYAAACSN4jeAAAC30lEQVRYR+1XTUhVQRTWvW1qZZsWtTDUbBNJ7VwoiCIkVNCysFq2MDJciIiCLsSVP9i+BImoTRkuhMJq0SaojaAgtUoI2tf3wRw4d+7MvWce78kD78DHfe/dmTnf+c6Zc+a1tjTpaG1SXi0VsdTIVIqdeMVuQYEbwCWgQ6nxDp9fAiupCvnzU3OMhBaBdmADeAaQDEc/sOSI/sDzOnBUK0ErsdMwsAzcBP4C94AXAaOcdwC0ASR3sZHEaOyDU4J2bkdICYdVfBhzX57iOVcLOYtiu9j4qtt8Dc/7JYYY0rduzi88zzaCmPaeRroMeaOJkdMFYC+VXJFivoGyEIrtWtdluBcR0yG0qsXNHwA8KDKsDpmI+V4vYNVjYzh0+LnkjCH8ua1jirEUsDTISMmT71gkRTdFaZNiPzGLRZQjpViytPxWFlh8B4xKlxLzN7eUCNm0LvnFzUKh9PPrIeZZe58O4yesG/Ty6wq+zwD7QA/ALsH9c63LQsx6qsrKhLzXB4mFuBvI1ccQMT+UVmK6vLDBs+Hrwbw9BZxTClHBz0AuXWKnUie/JZQT2HzWsQiFkCSfA6HG/s+ty3CJEZvH5HG3IOS9VkK85m80PAT4LUj2Cx0kUToTmRgxhvMbICUjViSZN5sArzl0IJjI+F2MFxHLFPGilkQlXjlyLJQjwBcn1XkXOhZhvnsEhO5noqyFWIZ02bWHyj0BhgF9heZl8SPAazSVKrup1p2YeCw5Yj2hXEdVJddYFhj2olAmKUYD0jfZXiZVOIV06MlTOAXIQahb8ovHb7wQCgnm1WvgK7CllKEqdwFW/FFA/1GhaiwlvZ4nUi4yByyWY/R4HTgE/riN5HpdpBTf0fgdRVbmS23UNqXU5Jp9rPLzXv8+EDYS7gPY5zoBlgkO1q8dYBuInc5YS7qGNZd9R8pOZZk6qe9Jbhpg85bBf1K5/wTHTczsSEXMLJWbWClWKZaqQOr8/+6UrClQAbvIAAAAAElFTkSuQmCC\" width=\"19\" height=\"20\" alt=\"Q0\" style=\"width: 19px; height: 20px;\"\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 70.7917px 8px; transform-origin: 70.7917px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e, the piezometric head \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"font-family: \u0026quot;STIXGeneral\u0026quot;, \u0026quot;STIXGeneral-webfont\u0026quot;, serif; font-style: italic; font-weight: 400; color: rgb(0, 0, 0);\"\u003eH\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 133.817px 8px; transform-origin: 133.817px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e in the absence of pumping, and a variable \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 3.85px 8px; transform-origin: 3.85px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003eb\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 34.2167px 8px; transform-origin: 34.2167px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e that is the thickness of the confined aquifer or empty for an unconfined aquifer. Determine \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"font-family: \u0026quot;STIXGeneral\u0026quot;, \u0026quot;STIXGeneral-webfont\u0026quot;, serif; font-style: italic; font-weight: 400; color: rgb(0, 0, 0);\"\u003eK\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 15.5583px 8px; transform-origin: 15.5583px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e and \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"font-family: \u0026quot;STIXGeneral\u0026quot;, \u0026quot;STIXGeneral-webfont\u0026quot;, serif; font-style: italic; font-weight: 400; color: rgb(0, 0, 0);\"\u003eR\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 89.05px 8px; transform-origin: 89.05px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e from a curve fit to either the drawdown or piezometric head \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"vertical-align:-5px\"\u003e\u003cimg src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIIAAAAkCAYAAABFRuIOAAAEAklEQVR4Xu1aO69NQRR2eyKh0lBQEDdoPEKIiFDdSuLVSjx+AAmFKAShUnlUCslFJyoKEiLx6IRQUGioaOj5vpNZsc42e2bPPZmz90zWJF/uOffM3nvWWt96zeyZRTZMA9DAjGnBNEANGBGMByMNGBGMCEYE48A/DVhEMDYkR4TVTmdfTHf1aSAUEfZB3L3ALmA9sBi4BpwpXA0k9AlgDljbkOU1vj8HrgA/3W/UwzHgYGPud3x/BJxVc4tVTSw1LINk8wCVwbEfeFKstP8v/I/61wN8PhUw6i38dtzN/42/m4BqomOMCJT7vvMGesBsDex3xiTJfygibMHntwGSayLQGegU1YwuRPgGaVe4SFCT8Icg0z1nyS4k/4i5kkrO4fPlalgAQWJE2Iw5b5zADJs3KxI+xcOb0WNNTWmBNo0RgYXQJWf82oTXHh4juY4en6CPHRWlyJF5Y0R4jDksFGsTnp3DZxXdYiSXOomXsKgkMaoaMSL8grRsG28DbLk4SIzrAPMlq+c9QKjIGqLCTmJRN9zCupBc6iReEoseQ5KXqf0isB34ACwF3gEbgAsACT4asX0ERgSOw+4i5lX233edQkgS9t7bOkpPEsk9O17inTZpsZbi4c3osRwrkj2GSWTIfS3rmq8AbSRtP//3EqATj3VJISJcxeTTAL1+FSAeRCOwfxYvKZEI2sNTDMLosS7lgh7n6vpOk1ei4RihQ0R4BSG2Oo9/iL+7gSPOG3Q3odNGj3J3frReOy+KtcSSBjm3JFk1EXQ6k6gwVvC2EUG3SyyOdjrITpp+iKSNzpboeaJeexcPlzpJSLPQnVW9i7kQFTAyL0m4UKc0ieqtKa2NCLpd8ilAuonoAxIWPq2psnY+L3Z2omuaSWWdNhEon94rCabwNiLoG/jCoXhJSn0wLUPHnqMNEjs7kTqJ9yxRVl0cBlNbGxGkmPIdrugcm1q99901pHq43nSKRY8YAfv6nfZ6CrB74PCeqfiIoHOLb/Nkkt3GvomQ4uGph1J9Gbr5XHYFtJuuB7TcXkL7iKA3W3yhU3KshEoyju8tlHAIk3JwlHooNRQisNu7A+hzIU1qb+fjI0Ls2FnqA6YF1hLvAXYVQz+bT/VwvelU0rEzayDfeqU28tZFPiKIoX030/UBIwLHeffgoXhE2zp0eOSc0PlCM6+WtH/gM7ik89aXb5pEiB07s354AfD9BBKhBBKEXjXjVrl+9Y5zDwBHASmuhFhU4rNGyB0a+eUciK/QbQRWugXyjIGy6lfwxtYeO3QamqC2nkwaMCJkUmxptzUilGaxTOs1ImRSbGm3NSKUZrFM6zUiZFJsabc1IpRmsUzrNSJkUmxptzUilGaxTOv9C9Mv6SVWCeAgAAAAAElFTkSuQmCC\" width=\"65\" height=\"18\" alt=\"h = H - s\" style=\"width: 65px; height: 18px;\"\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 3.88333px 8px; transform-origin: 3.88333px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 40.8333px 8px; transform-origin: 40.8333px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eBackground\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 43px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21.5px; text-align: left; transform-origin: 384px 21.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 255.925px 8px; transform-origin: 255.925px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eConservation of mass for steady flow says that the flow past any cylinder of radius \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"font-family: \u0026quot;STIXGeneral\u0026quot;, \u0026quot;STIXGeneral-webfont\u0026quot;, serif; font-style: italic; font-weight: 400; color: rgb(0, 0, 0);\"\u003er\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 123.283px 8px; transform-origin: 123.283px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e centered on the well has to be equal to the pumping rate \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"vertical-align:-6px\"\u003e\u003cimg src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAoCAYAAACSN4jeAAAC30lEQVRYR+1XTUhVQRTWvW1qZZsWtTDUbBNJ7VwoiCIkVNCysFq2MDJciIiCLsSVP9i+BImoTRkuhMJq0SaojaAgtUoI2tf3wRw4d+7MvWce78kD78DHfe/dmTnf+c6Zc+a1tjTpaG1SXi0VsdTIVIqdeMVuQYEbwCWgQ6nxDp9fAiupCvnzU3OMhBaBdmADeAaQDEc/sOSI/sDzOnBUK0ErsdMwsAzcBP4C94AXAaOcdwC0ASR3sZHEaOyDU4J2bkdICYdVfBhzX57iOVcLOYtiu9j4qtt8Dc/7JYYY0rduzi88zzaCmPaeRroMeaOJkdMFYC+VXJFivoGyEIrtWtdluBcR0yG0qsXNHwA8KDKsDpmI+V4vYNVjYzh0+LnkjCH8ua1jirEUsDTISMmT71gkRTdFaZNiPzGLRZQjpViytPxWFlh8B4xKlxLzN7eUCNm0LvnFzUKh9PPrIeZZe58O4yesG/Ty6wq+zwD7QA/ALsH9c63LQsx6qsrKhLzXB4mFuBvI1ccQMT+UVmK6vLDBs+Hrwbw9BZxTClHBz0AuXWKnUie/JZQT2HzWsQiFkCSfA6HG/s+ty3CJEZvH5HG3IOS9VkK85m80PAT4LUj2Cx0kUToTmRgxhvMbICUjViSZN5sArzl0IJjI+F2MFxHLFPGilkQlXjlyLJQjwBcn1XkXOhZhvnsEhO5noqyFWIZ02bWHyj0BhgF9heZl8SPAazSVKrup1p2YeCw5Yj2hXEdVJddYFhj2olAmKUYD0jfZXiZVOIV06MlTOAXIQahb8ovHb7wQCgnm1WvgK7CllKEqdwFW/FFA/1GhaiwlvZ4nUi4yByyWY/R4HTgE/riN5HpdpBTf0fgdRVbmS23UNqXU5Jp9rPLzXv8+EDYS7gPY5zoBlgkO1q8dYBuInc5YS7qGNZd9R8pOZZk6qe9Jbhpg85bBf1K5/wTHTczsSEXMLJWbWClWKZaqQOr8/+6UrClQAbvIAAAAAElFTkSuQmCC\" width=\"19\" height=\"20\" alt=\"Q0\" style=\"width: 19px; height: 20px;\"\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 203.417px 8px; transform-origin: 203.417px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e. Then if the flow is defined as positive toward the well (i.e., in the \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"vertical-align:-5px\"\u003e\u003cimg src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAkCAYAAAD7PHgWAAABRUlEQVRYR2NkGOSAcZC7j2HUgZTG0GgIjoYgpSFAqf7RNDgagpSGAKX6R9PgUAlBIaBD04FYEIjtgFgOiA8DcTgQmwLxZCA2B+IbQKyJ7Cl6RTHIgSZA7ALEpVAHZALps0C8D4h5kBwlDGS/g/Hp5UCYfW5Axk4oxwzquGAgrQTE04F4FxBHDqQDu6AhCIrKj0B8CIjLkKMUnY0rBP/j00SE3BegGl4s6k4AxWBpDeRAL+TQwmYuPR0ISodvkRwRAWSvJORZeqZBUI5dAXXQSWJCD6SWng4EhVYY1IFEhR69HfgMaKEkED8HYh1CaQ8W9fQKQVBhfApqaTehnIucLunlwEqgpW1Qi0Hl32lCmYPeIYhcvFgTG730SoPIxcsqoKWg3Ew0oFcUE+0gdIWjDiQ76KAaR0NwNAQpDQFK9Y+mQUpDEACuOywlLMoU/AAAAABJRU5ErkJggg==\" width=\"20\" height=\"18\" alt=\"-r\" style=\"width: 20px; height: 18px;\"\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 90.8833px 8px; transform-origin: 90.8833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e direction), Darcy’s law states\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 34.8px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 17.4px; text-align: left; transform-origin: 384px 17.4px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"vertical-align:-15px\"\u003e\u003cimg src=\"data:image/png;base64,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\" width=\"79.5\" height=\"35\" alt=\"Q0 = K(dh/dr)A\" style=\"width: 79.5px; height: 35px;\"\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 84px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 42px; text-align: left; transform-origin: 384px 42px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 21.0083px 8px; transform-origin: 21.0083px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003ewhere \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"font-family: \u0026quot;STIXGeneral\u0026quot;, \u0026quot;STIXGeneral-webfont\u0026quot;, serif; font-style: italic; font-weight: 400; color: rgb(0, 0, 0);\"\u003eA\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 352.267px 8px; transform-origin: 352.267px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e is the flow area, or surface area of the vertical sides of the cylinder. The key difference between the confined and unconfined cases is that the flow thickness (or height of the cylinder) is the (constant) thickness \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"font-family: \u0026quot;STIXGeneral\u0026quot;, \u0026quot;STIXGeneral-webfont\u0026quot;, serif; font-style: italic; font-weight: 400; color: rgb(0, 0, 0);\"\u003eb\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 75.4583px 8px; transform-origin: 75.4583px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e for the confined aquifer and the (variable) thickness \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"font-family: \u0026quot;STIXGeneral\u0026quot;, \u0026quot;STIXGeneral-webfont\u0026quot;, serif; font-style: italic; font-weight: 400; color: rgb(0, 0, 0);\"\u003eh\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 282.008px 8px; transform-origin: 282.008px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e for the unconfined aquifer. Along with the condition that no drawdown occurs for distances greater than the radius of influence—that is,\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"vertical-align:-5px\"\u003e\u003cimg src=\"data:image/png;base64,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\" width=\"64\" height=\"18.5\" alt=\"h(R) = H\" style=\"width: 64px; height: 18.5px;\"\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 297.975px 8px; transform-origin: 297.975px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eone can determine an expression for the drawdown for the confined aquifer or piezometric head \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"font-family: \u0026quot;STIXGeneral\u0026quot;, \u0026quot;STIXGeneral-webfont\u0026quot;, serif; font-style: italic; font-weight: 400; color: rgb(0, 0, 0);\"\u003eh\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 59.9px 8px; transform-origin: 59.9px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e for the unconfined aquifer and fit the resulting expression to the measurements to determine the aquifer properties.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function [K,R] = steadyPumpTest(r,s,Q0,H,b)\r\n%  K = hydraulic conductivity\r\n%  R = radius of influence\r\n%  r = distance from the well\r\n%  s = drawdown = H - h \r\n%  Q0 = pumping rate\r\n%  H = piezometric head without pumping\r\n%  b = {aquifer thickness if confined, [] if unconfined}\r\n  h = H-s;\r\n  K = Q0/(2*pi*r*b);\r\n  R = interp1(s,r,0);\r\nend","test_suite":"%% Confined aquifer\r\nr = [35 75 110 150];                    %  Distance from well (m)\r\ns = [0.9 0.6 0.3 0.1];                  %  Drawdown (m)\r\nH = 15;                                 %  Piezometric head without pumping (m)\r\nQ0 = 2592;                              %  Pumping rate (m3/d)\r\nb = 25;                                 %  Aquifer thickness (m)\r\n[K,R] = steadyPumpTest(r,s,Q0,H,b);\r\nK_correct = 30.0;\r\nR_correct = 192.4;\r\nassert(abs(K-K_correct)/K_correct \u003c 1e-3)\r\nassert(abs(R-R_correct)/R_correct \u003c 1e-3)\r\n\r\n%% Unconfined aquifer\r\nr = [50 100];                           %  Distance from well (m)\r\ns = [0.42 0.27];                        %  Drawdown (m)\r\nH = 15;                                 %  Piezometric head without pumping (m)\r\nQ0 = 8000;                              %  Pumping rate (m3/d)\r\n[K,R] = steadyPumpTest(r,s,Q0,H,[]);\r\nK_correct = 401.5;\r\nR_correct = 354.5;\r\nassert(abs(K-K_correct)/K_correct \u003c 1e-3)\r\nassert(abs(R-R_correct)/R_correct \u003c 1e-3)\r\n\r\n%% Confined aquifer\r\nr = [25 47 70 96 131];                  %  Distance from well (m)\r\ns = [12.32 10.1 8.69 7.53 6.45];        %  Drawdown (m)\r\nH = 50;                                 %  Piezometric head without pumping (m)\r\nQ0 = 4600;                              %  Pumping rate (m3/d)\r\nb = 25;                                 %  Aquifer thickness (m)\r\n[K,R] = steadyPumpTest(r,s,Q0,H,b);\r\nK_correct = 8.25;\r\nR_correct = 804.9;\r\nassert(abs(K-K_correct)/K_correct \u003c 1e-3)\r\nassert(abs(R-R_correct)/R_correct \u003c 1e-3)\r\n\r\n%% Unconfined aquifer\r\nr = [25 47 70 96 131];                  %  Distance from well (m)\r\ns = [6.61 5.33 4.54 3.93 3.33];         %  Drawdown (m)\r\nH = 50;                                 %  Piezometric head without pumping (m)\r\nQ0 = 4600;                              %  Pumping rate (m3/d)\r\n[K,R] = steadyPumpTest(r,s,Q0,H,[]);\r\nK_correct = 8.213;\r\nR_correct = 796.9;\r\nassert(abs(K-K_correct)/K_correct \u003c 1e-3)\r\nassert(abs(R-R_correct)/R_correct \u003c 1e-3)\r\n\r\n%% Confined aquifer\r\nr = [54 112 140 222];                   %  Distance from well (m)\r\ns = [1.12 0.87 0.74 0.6];               %  Drawdown (m)\r\nH = 64;                                 %  Piezometric head without pumping (m)\r\nQ0 = 2300;                              %  Pumping rate (m3/d)\r\nb = 43;                                 %  Aquifer thickness (m)\r\n[K,R] = steadyPumpTest(r,s,Q0,H,b);\r\nK_correct = 22.78;\r\nR_correct = 1087;\r\nassert(abs(K-K_correct)/K_correct \u003c 1e-3)\r\nassert(abs(R-R_correct)/R_correct \u003c 1e-3)\r\n\r\n%% Unconfined aquifer\r\nr = [43 98 151 208];                    %  Distance from well (m)\r\ns = [2.65 1.81 1.38 1.06];              %  Drawdown (m)\r\nH = 75;                                 %  Piezometric head without pumping (m)\r\nQ0 = 1300;                              %  Pumping rate (m3/d)\r\n[K,R] = steadyPumpTest(r,s,Q0,H,[]);\r\nK_correct = 2.805;\r\nR_correct = 605.9;\r\nassert(abs(K-K_correct)/K_correct \u003c 1e-3)\r\nassert(abs(R-R_correct)/R_correct \u003c 1e-3)\r\n\r\n%% Confined aquifer\r\nr = [35 75 110 150];                    %  Distance from well (m)\r\ns = [0.9 0.6 0.3 0.1];                  %  Drawdown (m)\r\nH = 15;                                 %  Piezometric head without pumping (m)\r\nQ0 = 2592;                              %  Pumping rate (m3/d)\r\nb = 60*rand;                            %  Aquifer thickness (m)\r\n[K,R] = steadyPumpTest(r,s,Q0,H,b);\r\nK_correct = 750/b;\r\nR_correct = 192.4;\r\nassert(abs(K-K_correct)/K_correct \u003c 1e-3)\r\nassert(abs(R-R_correct)/R_correct \u003c 1e-3)\r\n\r\n%%\r\nfiletext = fileread('steadyPumpTest.m');\r\nillegal = contains(filetext, 'assignin') || contains(filetext, 'assert') || contains(filetext,'regexp'); \r\nassert(~illegal)\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":46909,"edited_by":46909,"edited_at":"2023-11-05T15:51:52.000Z","deleted_by":null,"deleted_at":null,"solvers_count":2,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2023-11-05T15:51:46.000Z","updated_at":"2026-02-12T14:11:09.000Z","published_at":"2023-11-05T15:51:52.000Z","restored_at":null,"restored_by":null,"spam":null,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eProblem statement\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eWrite a function to determine the hydraulic conductivity \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"K\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eK\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e and radius of influence \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"R\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eR\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e using data from a steady pump test in either a confined aquifer or an unconfined aquifer. Along with the drawdowns \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"s\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003es\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e measured at distances \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"r\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003er\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e from the well, the input will include the pumping rate \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"Q0\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eQ_0\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e, the piezometric head \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"H\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eH\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e in the absence of pumping, and a variable \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eb\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e that is the thickness of the confined aquifer or empty for an unconfined aquifer. Determine \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"K\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eK\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e and \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"R\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eR\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e from a curve fit to either the drawdown or piezometric head \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"h = H - s\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eh = H-s\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e. \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eBackground\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eConservation of mass for steady flow says that the flow past any cylinder of radius \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"r\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003er\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e centered on the well has to be equal to the pumping rate \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"Q0\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eQ_0\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e. Then if the flow is defined as positive toward the well (i.e., in the \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"-r\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003e-r\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e direction), Darcy’s law states\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"true\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"Q0 = K(dh/dr)A\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eQ_0 = K \\\\frac{dh}{dr} A\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ewhere \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eA\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e is the flow area, or surface area of the vertical sides of the cylinder. The key difference between the confined and unconfined cases is that the flow thickness (or height of the cylinder) is the (constant) thickness \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"b\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eb\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e for the confined aquifer and the (variable) thickness \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"h\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eh\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e for the unconfined aquifer. Along with the condition that no drawdown occurs for distances greater than the radius of influence—that is,\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"true\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"h(R) = H\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eh(R) = H\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eone can determine an expression for the drawdown for the confined aquifer or piezometric head \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"h\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eh\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e for the unconfined aquifer and fit the resulting expression to the measurements to determine the aquifer properties.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":1416,"title":"Find the function","description":"Given a set of point (x,y) and the coordinate x of a new point, find the y value of new point.\r\n\r\n","description_html":"\u003cp\u003eGiven a set of point (x,y) and the coordinate x of a new point, find the y value of new point.\u003c/p\u003e","function_template":"function y = new_point_fit(M,x)\r\n  y = x;\r\nend","test_suite":"%%\r\nM = [ 0.091273   0.060806\r\n   0.130562   0.076233\r\n   0.184484   0.170092\r\n   0.197685   0.244964\r\n   0.226948   0.308231\r\n   0.232963   0.309789\r\n   0.321582   0.329059\r\n   0.343480   0.384513\r\n   0.612326   0.505868\r\n   0.691264   0.529026\r\n   0.710301   0.595951\r\n   0.733409   0.637104\r\n   0.774992   0.649954\r\n   0.836475   0.717744]\r\nx = 0.881524;\r\ny_correct = 0.857148;\r\nassert(abs((new_point_fit(M,x)-y_correct)/y_correct)\u003c=0.1)\r\n\r\n\r\n\r\n\r\n%%\r\nM = [  0.016105   0.042602\r\n   0.048845   0.100409\r\n   0.135680   0.162205\r\n   0.382335   0.174843\r\n   0.409982   0.219579\r\n   0.505942   0.247533\r\n   0.535645   0.463607\r\n   0.553299   0.539963\r\n   0.562505   0.629237\r\n   0.605515   0.665519\r\n   0.609794   0.668600\r\n   0.718378   0.761209\r\n   0.803968   0.822402\r\n   0.996661   0.883440]\r\nx = 0.999173;\r\ny_correct = 0.954605;\r\nassert(abs((new_point_fit(M,x)-y_correct)/y_correct)\u003c=0.1)\r\n\r\n\r\n\r\n\r\n%%\r\nM = [  0.0705596   0.0010882\r\n   0.0880270   0.1284582\r\n   0.1557501   0.1819287\r\n   0.4294053   0.1980035\r\n   0.4354657   0.4193907\r\n   0.5222490   0.6849248\r\n   0.6131108   0.7573705\r\n   0.6277358   0.7864304\r\n   0.6678857   0.8790018]\r\nx = 0.9916796;\r\ny_correct = 0.7335639;\r\nassert(abs((new_point_fit(M,x)-y_correct)/y_correct)\u003c=0.1)\r\n","published":true,"deleted":false,"likes_count":0,"comments_count":12,"created_by":3919,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":28,"test_suite_updated_at":"2013-04-12T15:23:54.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2013-04-10T20:49:41.000Z","updated_at":"2024-11-20T13:11:34.000Z","published_at":"2013-04-10T21:00:17.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven a set of point (x,y) and the coordinate x of a new point, find the y value of new point.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":44508,"title":"Curve fitting (non-linear functions) \u0026 function handles","description":"In this problem you are provided some raw data. You need to find a way of summarising the data with just a few parameters, so that it can be reconstructed. You then need to provide a handle to your own (generic) custom function that will indeed reproduce the raw data when provided with the parameters that you determine.\r\nConsider a non-linear scalar function y = mˣ + c. Suppose x is the vector [3 2 1 4]. The function would operate elementwise on x; for example, if m=2 and c=3 then y = [11 7 5 19]. You are provided with both the vector x and the vector y. Every number will be provided in some form of an integer data type. The scalar parameters m and c are both whole numbers (although they're not provided directly).\r\nSo here you should output two things:\r\nthe handle to a generic function that implements the relevant non-linear function (i.e. of the form y = mˣ + c) taking two inputs, namely 1 a set of parameters and 2 the vector x, and outputting the corresponding vector y (in any data type); and\r\na set of parameter values (m and c) wrapped into a single MATLAB variable (of any data type).\r\nAs the parameters will be used in your own function, the data type will be set by you.\r\nSo, for the above example, you could return a function handle @myFunc that you have defined, along with the variable param that has two fields such that param.base = 2 and param.translation = 3.\r\nOr, if you have defined your function differently, then you could return the function handle @myFn along with a cell array variable prms that has four elements such that prms{1}='positive', prms{2}=uint8(3), prms{3} = 'positive' and prms{4} = uint8(2).\r\nAnd so on.\r\nNote 1: the parameter m can be assumed to have values between -30 and +30 (inclusive); the parameter c can be assumed to have values between -10000 and +10000 (inclusive); the elements in x are positive.\r\nNote 2: if the code runs too slowly, then it will also fail the Test Suite.\r\nNote 3: there might not be only one unique pair of the m \u0026 c parameter values that is correct — the individual values of m \u0026 c are not tested here, only the values of y that they predict are examined.\r\nSee also Problem 44507. Curve fitting (linear functions) \u0026 function handles — easier.","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.44px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: none solid rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 633px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 316.5px; transform-origin: 407px 316.5px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 63px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 31.5px; text-align: left; transform-origin: 384px 31.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eIn this problem you are provided some raw data. You need to find a way of summarising the data with just a few parameters, so that it can be reconstructed. You then need to provide a handle to your own (generic) custom function that will indeed reproduce the raw data when provided with the parameters that you determine.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 84px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 42px; text-align: left; transform-origin: 384px 42px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eConsider a non-linear scalar function\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003ey = mˣ + c\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e. Suppose\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003ex\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e is the vector\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e[3 2 1 4]\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e. The function would operate elementwise on\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003ex\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e; for example, if\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003em=2\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e and\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003ec=3\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e then\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003ey = [11 7 5 19]\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e. You are provided with both the vector\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003ex\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e and the vector\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003ey\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e. Every number will be provided in some form of an\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://au.mathworks.com/help/matlab/matlab_prog/integers.html\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003einteger\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e data type. The scalar parameters\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003em\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e and\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003ec\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e are both whole numbers (although they're not provided directly).\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eSo here you should output two things:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003col style=\"block-size: 81px; font-family: Helvetica, Arial, sans-serif; list-style-type: decimal; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; perspective-origin: 391px 40.5px; transform-origin: 391px 40.5px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"block-size: 61px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 30.5px; text-align: left; transform-origin: 363px 30.5px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003ethe handle to a\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003egeneric\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e function that implements the relevant non-linear function (i.e. of the form\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003ey = mˣ + c\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e) taking two inputs, namely\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003e1\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e a set of parameters and\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003e2\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e the vector\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003ex\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e, and outputting the corresponding vector\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003ey\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e (in any data type); and\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10px; text-align: left; transform-origin: 363px 10px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003ea set of parameter values (m and c) wrapped into a single MATLAB variable (of any data type).\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ol\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eAs the parameters will be used in your own function, the data type will be set by you.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eSo, for the above example, you\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003ecould\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e return a\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://au.mathworks.com/help/matlab/function-handles.html\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003efunction handle\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e@myFunc\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e that you have defined, along with the variable\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003eparam\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e that has two\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://au.mathworks.com/help/matlab/structures.html\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003efields\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e such that\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003eparam.base\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e = 2 and\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003eparam.translation\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e = 3.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 63px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 31.5px; text-align: left; transform-origin: 384px 31.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eOr, if you have defined your function differently, then you\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003ecould\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e return the\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://au.mathworks.com/help/matlab/function-handles.html\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003efunction handle\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e@myFn\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e along with a\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://au.mathworks.com/help/matlab/cell-arrays.html\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003ecell array\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e variable\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003eprms\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e that has four elements such that\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003eprms{1}='positive'\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e,\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003eprms{2}=uint8(3)\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e,\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003eprms{3} = 'positive'\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e and\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003eprms{4} = uint8(2)\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eAnd so on.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eNote\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; font-weight: 700; \"\u003e1\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e: the parameter\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-style: italic; \"\u003em\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e can be assumed to have values between -30 and +30 (inclusive); the parameter\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-style: italic; \"\u003ec\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e can be assumed to have values between -10000 and +10000 (inclusive); the elements in\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-style: italic; \"\u003ex\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e are positive.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eNote\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; font-weight: 700; \"\u003e2\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e: if the code runs too slowly, then it will also fail the Test Suite.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eNote\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; font-weight: 700; \"\u003e3\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e: there might not be only one unique pair of the m \u0026amp; c parameter values that is correct — the individual values of m \u0026amp; c are not tested here, only the values of y that they predict are examined.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cul style=\"block-size: 20px; font-family: Helvetica, Arial, sans-serif; list-style-type: square; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; perspective-origin: 391px 10px; transform-origin: 391px 10px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10px; text-align: left; transform-origin: 363px 10px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eSee also\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/matlabcentral/cody/problems/44507\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eProblem 44507. Curve fitting (linear functions) \u0026amp; function handles\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e — easier.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"%{\r\n    Some comments about this code....\r\n%}\r\nfunction [afunctionhandle asetofparameters] = generateFit(x, y)    % \u003c---This function is called first by the Test Suite\r\n    % Here you are going to figure out the values of the parameters\r\n    \r\n    afunctionhandle\r\n    asetofparameters\r\n    \r\nfunction nameofyouroutputvectorvariable = nameofyourgenericnonlinearfunction(nameofyourparametersetvariable, nameofyourxvectorvariable)\r\n    % Here you are providing code representing y = mˣ + c.  ","test_suite":"%% Hard-coded m and c (1).\r\nfor i = 1 : 5\r\n    x = uint64(randi(10):60-randi(40));\r\n    m = uint64(2);\r\n    c = uint64(3);\r\n    y_correct = m.^x + c;\r\n    [fh, pars] = generateFit(x, y_correct);\r\n    y = fh(pars, x);\r\n    assert( isequal(y,y_correct) )\r\nend;\r\n\r\n%% Hard-coded m and c (2).\r\nfor i = 1 : 5\r\n    x = uint64(randi(10):40-randi(10));\r\n    m = uint64(3);\r\n    c = uint64(2);\r\n    y_correct = m.^x + c;\r\n    [fh, pars] = generateFit(x, y_correct);\r\n    y = fh(pars, x);\r\n    assert( isequal(y,y_correct) )\r\nend;\r\n\r\n%% Dynamic m and c.\r\nfor i = 1 : 5\r\n    x = int64( randi(5):25-randi(5) );\r\n    m = int64( randi(10) - 5 );\r\n    c = int64( 10000 - randi(20000) );\r\n    y_correct = m.^x + c;\r\n    [fh, pars] = generateFit(x, y_correct);\r\n    y = fh(pars, x);\r\n    assert( isequal(y,y_correct) )\r\nend;\r\n\r\n%% Variable spacing in x vector, and values in reverse sequence.\r\nfor i = 1 : 100      % EDITED 2021-07-19.  Increased iterations from 5 to 100.\r\n    x = int64( +25-randi(5) : -randi(5) : randi(5) );\r\n    m = int64( randi(10) - 5 );\r\n    c = int64( 10000 - randi(20000) );\r\n    y_correct = m.^x + c;\r\n    try      % EDITED 2021-07-19.  Inserted try–catch structure to provide more feedback on failures.\r\n        [fh, pars] = generateFit(x, y_correct);\r\n        y = fh(pars, x);\r\n        assert( isequal(y,y_correct) )\r\n    catch solnErr\r\n        disp(['Error identifier:  ' solnErr.identifier])\r\n        fprintf('m:\\t%d\\r\\n', m)\r\n        fprintf('c:\\t%d\\r\\n', c)\r\n        fprintf('user parameters:\\r\\n')\r\n        pars\r\n        rethrow(solnErr)\r\n    end;\r\nend;\r\n\r\n%% Variable spacing in x vector, and values out of sequence.\r\nfor i = 1 : 100      % EDITED 2021-07-19.  Increased iterations from 5 to 100.\r\n    x = int64( randi(5) : randi(5) : 25-randi(5) );\r\n    els = randperm( length(x) );\r\n    x = x(els);\r\n    m = int64( randi(10)-5 );\r\n    c = int64( 10000 - randi(20000) );\r\n    y_correct = m.^x + c;\r\n    try      % EDITED 2021-07-19.  Inserted try–catch structure to provide more feedback on failures.\r\n        [fh, pars] = generateFit(x, y_correct);\r\n        y = fh(pars, x);\r\n        assert( isequal(y,y_correct) )\r\n    catch solnErr\r\n        disp(['Error identifier:  ' solnErr.identifier])\r\n        fprintf('m:\\t%d\\r\\n', m)\r\n        fprintf('c:\\t%d\\r\\n', c)\r\n        fprintf('user parameters:\\r\\n')\r\n        pars\r\n        rethrow(solnErr)\r\n    end;\r\nend;\r\n\r\n%% Duplicate values in x.\r\nfor i = 1 : 100      % EDITED 2021-07-19.  Increased iterations from 5 to 100.\r\n    x = int64( randi(5) : randi(5) : 25-randi(5) );\r\n    x = repmat(x, [1,50]);\r\n    els = randperm( length(x) );\r\n    x = x(els);\r\n    m = int64( randi(10)-5 );\r\n    c = int64( 10000 - randi(20000) );\r\n    y_correct = m.^x + c;\r\n    try      % EDITED 2021-07-19.  Inserted try–catch structure to provide more feedback on failures.\r\n        [fh, pars] = generateFit(x, y_correct);\r\n        y = fh(pars, x);\r\n        assert( isequal(y,y_correct) )\r\n    catch solnErr\r\n        disp(['Error identifier:  ' solnErr.identifier])\r\n        fprintf('m:\\t%d\\r\\n', m)\r\n        fprintf('c:\\t%d\\r\\n', c)\r\n        fprintf('user parameters:\\r\\n')\r\n        pars\r\n        rethrow(solnErr)\r\n    end;\r\nend;\r\n\r\n%% Different inputs.\r\nfor i = 1 : 5\r\n    x = int64( 1+randi(4) : 2*randi(2)-1 : 25-randi(4) );    % Must be odd step to ensure both odd and even values of x here.\r\n    els = randperm( length(x) );\r\n    x = x(els);\r\n    m = int64( randi(10)-5 );\r\n    c = int64( 10000 - randi(20000) );\r\n    y_correct = m.^x + c;\r\n    [fh, pars] = generateFit(x, y_correct);\r\n    y = fh(pars, x);\r\n    assert( isequal(y,y_correct) , 'Failed test 7a' )\r\n    idx = [1+randi(2) : length(x)-randi(2)];\r\n    z = x(idx);\r\n    y = fh(pars, z);\r\n    assert( isequal(y, y_correct(idx)) , 'Failed test 7b' )\r\n    z = x-1;\r\n    y = fh(pars, z);\r\n    assert( isequal(y, m.^z + c) , 'Failed test 7c' )\r\n    z = x(idx)+1;\r\n    y = fh(pars, z);\r\n    assert( isequal(y, m.^z + c) , 'Failed test 7d' )\r\nend;\r\n\r\n%% Check interchangeability of function handles.  \r\nfor i = 1 : 5\r\n    % Hard-coded m and c (1).\r\n    x1 = int64(randi(10):60-randi(40));\r\n    m = int64(2);\r\n    c = int64(3);\r\n    y1_correct = m.^x1 + c;\r\n    [fh1, pars1] = generateFit(x1, y1_correct);\r\n\r\n    % Hard-coded m and c (2).\r\n    x2 = int64(randi(10):60-randi(40));\r\n    m = int64(3);\r\n    c = int64(2);\r\n    y2_correct = m.^x2 + c;\r\n    [fh2, pars2] = generateFit(x2, y2_correct);\r\n\r\n    % According to the Problem Statament, fh1 and fh2 should be interchangeable.  \r\n    y1 = fh2(pars1, x1);\r\n    assert( isequal(y1,y1_correct) )\r\n    y2 = fh1(pars2, x2);\r\n    assert( isequal(y2,y2_correct) )\r\nend;\r\n\r\n%% Large values of m.\r\nfor i = 1 : 5\r\n    x = int64( randi(3):13-randi(3) );\r\n    m = int64( randi(60) - 30 );\r\n    c = int64( 10000 - randi(20000) );\r\n    y_correct = m.^x + c;\r\n    [fh, pars] = generateFit(x, y_correct);\r\n    y = fh(pars, x);\r\n    assert( isequal(y,y_correct) )\r\nend;\r\n\r\n\r\n%% Check timing\r\ngenerateFit( uint32([1:10]), uint32(7.^[1:10] - 7) );\r\ntic\r\nfor i = 1 : 10\r\n    x = uint64(randi(10):25-randi(10));\r\n    x = repmat(x, [1,100]);\r\n    m = uint64( randi(5) );\r\n    c = uint64( randi(1000) );\r\n    y_correct = m.^x + c;\r\n    for j = 1 : 200\r\n        [fh, pars] = generateFit(x, y_correct);\r\n        y = fh(pars, x);\r\n    end;\r\n    assert( isequal(y,y_correct) )\r\nend;\r\nt = toc\r\nassert( t \u003c 2 )    % Seconds.\r\n\r\n%% Check parameter variable\r\n% Finally, check that the user is sending a small number of parameters to their\r\n% custom function (to be called via the function handle), and not simply sending\r\n% the entire vector y.  \r\nx = uint64(randi(10):60-randi(40));\r\nm = uint64(2);\r\nc = uint64(3);\r\ny_correct = m.^x + c;\r\n[fh, pars] = generateFit(x, y_correct);\r\ny = fh(pars, x);\r\nassert( isequal(y,y_correct) )\r\npw = whos('pars')\r\nassert( pw.bytes \u003c 100 , 'Parameter variable is too big.')\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":4,"created_by":64439,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":2,"test_suite_updated_at":"2021-07-19T02:37:07.000Z","rescore_all_solutions":true,"group_id":1,"created_at":"2018-01-30T04:21:49.000Z","updated_at":"2021-07-19T02:37:07.000Z","published_at":"2018-01-30T13:00:26.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIn this problem you are provided some raw data. You need to find a way of summarising the data with just a few parameters, so that it can be reconstructed. You then need to provide a handle to your own (generic) custom function that will indeed reproduce the raw data when provided with the parameters that you determine.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eConsider a non-linear scalar function\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ey = mˣ + c\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e. Suppose\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ex\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e is the vector\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e[3 2 1 4]\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e. The function would operate elementwise on\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ex\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e; for example, if\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003em=2\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e and\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ec=3\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e then\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ey = [11 7 5 19]\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e. You are provided with both the vector\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ex\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e and the vector\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ey\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e. Every number will be provided in some form of an\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://au.mathworks.com/help/matlab/matlab_prog/integers.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003einteger\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e data type. The scalar parameters\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003em\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e and\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ec\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e are both whole numbers (although they're not provided directly).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eSo here you should output two things:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"2\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ethe handle to a\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003egeneric\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e function that implements the relevant non-linear function (i.e. of the form\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ey = mˣ + c\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e) taking two inputs, namely\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e1\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e a set of parameters and\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e2\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e the vector\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ex\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e, and outputting the corresponding vector\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ey\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e (in any data type); and\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"2\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ea set of parameter values (m and c) wrapped into a single MATLAB variable (of any data type).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAs the parameters will be used in your own function, the data type will be set by you.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eSo, for the above example, you\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ecould\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e return a\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://au.mathworks.com/help/matlab/function-handles.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003efunction handle\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e@myFunc\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e that you have defined, along with the variable\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eparam\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e that has two\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://au.mathworks.com/help/matlab/structures.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003efields\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e such that\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eparam.base\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e = 2 and\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eparam.translation\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e = 3.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eOr, if you have defined your function differently, then you\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ecould\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e return the\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://au.mathworks.com/help/matlab/function-handles.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003efunction handle\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e@myFn\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e along with a\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://au.mathworks.com/help/matlab/cell-arrays.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ecell array\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e variable\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eprms\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e that has four elements such that\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eprms{1}='positive'\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e,\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eprms{2}=uint8(3)\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e,\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eprms{3} = 'positive'\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e and\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eprms{4} = uint8(2)\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAnd so on.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eNote\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e1\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e: the parameter\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003em\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e can be assumed to have values between -30 and +30 (inclusive); the parameter\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ec\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e can be assumed to have values between -10000 and +10000 (inclusive); the elements in\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ex\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e are positive.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eNote\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e2\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e: if the code runs too slowly, then it will also fail the Test Suite.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eNote\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e3\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e: there might not be only one unique pair of the m \u0026amp; c parameter values that is correct — the individual values of m \u0026amp; c are not tested here, only the values of y that they predict are examined.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eSee also\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/44507\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eProblem 44507. Curve fitting (linear functions) \u0026amp; function handles\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e — easier.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":49743,"title":"Determine aquifer properties: unsteady pump test in a confined aquifer","description":null,"description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 714.15px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 357.075px; transform-origin: 407px 357.075px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 63px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 31.5px; text-align: left; transform-origin: 384px 31.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 382.358px 7.79167px; transform-origin: 382.358px 7.79167px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eAn important task in characterizing the flow of groundwater is to determine the properties of the aquifer, or the underground water-bearing formation. One approach is to disturb the aquifer, observe its response, and fit a theoretical formula to the observations. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 106.633px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 53.3167px; text-align: left; transform-origin: 384px 53.3167px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 297.567px 7.79167px; transform-origin: 297.567px 7.79167px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eFor example, suppose a confined aquifer initially has no flow. In that case, the piezometric head \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"font-family: \u0026quot;STIXGeneral\u0026quot;, \u0026quot;STIXGeneral-webfont\u0026quot;, serif; font-style: italic; font-weight: 400; color: rgb(0, 0, 0);\"\u003eh\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 67.675px 7.79167px; transform-origin: 67.675px 7.79167px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e, or the level to which water would rise in an observation well, would be a uniform value \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"vertical-align:-6px\"\u003e\u003cimg src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB8AAAAoCAYAAAAG0SEsAAABYElEQVRYhe2WYRHDIAyFn4c5wMAMoKAK6qAOcFAL1TAJ84AFNNTC9oPkyBhL27Xwi++utztYeSXJCwCdTidhAUwAFvptJjoDWAG86BlbiTNOiJvW4k8S9q2Fb0i7dq3FByFuW4vPJLwiRqEpnsQf2fiAmIZq1jNIIZ/E2FOMvxCjczmjELjTE5AKj6NSxQULLR4QdxyQik66YKkhHsTiHp/dTbrg8rzfxeIe37ub8ZmSHEMf5fCHRSexeCjMe2XOIVrT0kd4fLtF5SHEh2xOyzenQ6aCXbPbFTLkOVrX4zrJDyCPGI3Ng8lCLybZ9RiDVCdr4R12zmZxbh2hnG8OOV8yuC+UouWw05Za85D5HunhYnLKe9pccfHSESpTkvf80+KG/ujwuzhGlP17WvwM7AJN/JDfj8B+LjWe3dV+Bs3nv1rxZWgdrsrpl8N3fYvoHo94AWl2DZOuqRrqTqezyRvS05ZMfyOVtAAAAABJRU5ErkJggg==\" alt=\"h0\" style=\"width: 15.5px; height: 20px;\" width=\"15.5\" height=\"20\"\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 124.467px 7.79167px; transform-origin: 124.467px 7.79167px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e. A well turned on and pumped at a rate \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"vertical-align:-6px\"\u003e\u003cimg src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAoCAYAAACSN4jeAAABxklEQVRYhe2XUZGEMBBEnwccYAADKFgFOMABDtbCakDCesACGrDAfSRTGbIJJBzsVV2lq/IDCenp9EwGKCgo+D+ogQcwqNH8JaEOmIAVeCtSb/tsxhD+GhpFaMIo5qOz71eg/wapDljshuPBXFFu4eaj1SrMQJUx/yiI02hwSq1Am7CmVfMXjgPJRoVRSDZ5Ja7TxFKDycLgbRAyewqxSzO0YnuEOV7xA7o0AXrORz16ay/1mKT8GQNrpacrScE24pxjbLy1w5WkfvPxF1ulQwnT4K6x1IQCzmeVnzDPwPsRV6RbOz/56vIVSyWmszHkyyefWSq3RHJy5RKrcWotfBbVGnelaVRkJolO+RSPSdcR6yqk/IQSSW6XpHqnfXYUjRh+wRzN3hzfd+BKU2ztB8QTMRVq9dGJ/Yhl3h6x0LsoerZ9mKS5KDBHSN9ODIxBJXukle7JuwNvISY9WUqTqPHEFVCxxR6xrFb8gTvKCXec3Q7J2s7V/ZsoHurpsrIStuaPjdlu5v8p+coc1bElhVBlNxgxirV2DGzrVWhMxDvWvcqfXCqOiLcYT4hSD479JwHLr594N9v0d0HU78nsLgoKCgoC+AFiNNyLnb1SQwAAAABJRU5ErkJggg==\" alt=\"Q0\" style=\"width: 19px; height: 20px;\" width=\"19\" height=\"20\"\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 38.9083px 7.79167px; transform-origin: 38.9083px 7.79167px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e will create a cone of depression; that is, it will draw down the piezometric head to a level \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"vertical-align:-5px\"\u003e\u003cimg src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADoAAAAlCAYAAAATO/pmAAACQ0lEQVRoge2Z642DMAyAvx26AQuwQCdgAjZgAzboCp2hI7ADKzADK/R+JG58iEfimtP94JOqk2jjVxzb4eDi4uIicXeQUQE3Bzmn8QRaBzk1MMS/rtyBjmBoZ5Th5aRQARNOzt6BBzAD7/ixGPsAXh4GLagJzrqlcU9ytCpc2xACddaZcg3iQHByNKydCIE6ixshkI2HINnNUoNbzt1N4UkI6Fc0JEdLW8MUjTibGpt9v3hEIaU7I8o9K+0eM18GdSQYvDzwDSGVt9qNFLCS4lVHuR0pqNWBHmHgi/StSGnbqWeDev4m7Pqa4nemnicpoO+4FkI2aD17BUcCa6oHWlFN6ltSlMS4tWo8bTzfQxe9Nsp4kVcj+ozfbPKMiyfSJCKCdDVeOxt6Z3LQ2SNOytTTcXzWpWia2sxEcmRcKNPVeO38lDoq2TPHdaVF7I6tBX6qpqTmctce/E7rJaWOSvbM2AYTs6MdyZG1ajbufAfljup52pJ+4mhxO9NFYKn46HxCSsEcltljwVyM9hTnTEsDwdkc9KXBOmBY+vYnDbYKjZ6WhKUC+U1OX5NjkBuYNV6W9UfXMjFM0nbtQi67fpRKOccgB+m5RewNAtqwNn62FMysT00aPZRYh3LTXH10LdNpvTYDa3KuT7qtWK9zPYa0lSG6Z/tgt/H7ox2QaWevXXSkkc/K2Zf7LHrsLSOHDodLtxcj9reHe1SElHV/7WnlhuOrScVy/v4XyD3Wy1nv98Su3PApGg0+/9q4uLi4+Ht+AFQA2/P927ZEAAAAAElFTkSuQmCC\" alt=\"h(r)\" style=\"width: 29px; height: 18.5px;\" width=\"29\" height=\"18.5\"\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 24.8917px 7.79167px; transform-origin: 24.8917px 7.79167px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e, where \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"font-family: \u0026quot;STIXGeneral\u0026quot;, \u0026quot;STIXGeneral-webfont\u0026quot;, serif; font-style: italic; font-weight: 400; color: rgb(0, 0, 0);\"\u003er\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 95.2917px 7.79167px; transform-origin: 95.2917px 7.79167px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e is the radial distance from the well. Applying conservation of mass and Darcy’s law to this situation leads to a diffusion equation whose solution for the drawdown \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"vertical-align:-6px\"\u003e\u003cimg src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIEAAAAoCAYAAADZs5l2AAAChklEQVR4nO2Z67GDIBCFTw92kAZswApSgR3YgR2khdRgCfZgC6nBFu79gTtsCD5AEZT9Zpy56oVwcGEfAIIgCIIgCIIgCLlQAKgAtAC66e+7kpPWzdQA3gD+2PWIOqJw5KTVix5qUj6xB3ICOWl1glbGK/ZATiAnrZt5Qk/M3X1kTlqdeEFNyggVON2ZnLQ6MUBNTB97ICcQTCulHC3UdlMAaHANSyugt8fGeF5Da7oDQbQW0Jb1gjKGjv3QViPgRrTn8kl3ajbeko3ng+9U6g6GEERrOzUajOeD5dmWfvZepdnxBihvHqf7GmpSaEe7UyQdRCvPN/mqb+Dmc47aCXzcD62CN9RkcC08kq49+k6NIFop0jQbPnCN9OMBPf4WalL4bsL1+ewySxxh+C5zHEwr73h0bZwADfT4B/yuAIp3Rtgp4R+PHOECm59e59mrdbOYAdeqRfMg9m28K1beddDbaQU1eS4f5YidwGXR+WrdDMUGvp3Eyg5GaOs32y75SNo6+UegyDvVLMJX62YK9iM+J1MxsoOKtbNFw3OVNXKB5uELrSaXrOgsfLUuYvtn/iFdV0OM7ICP12Y85CO76b6ALoLx5xyKvlOLjXy1zkIrwYxMubWlNgk2lo5TuY+sp/seSiPl2rYV1bM2KeGrdRb62OZKIJ+Y4nZoslYY4T7yAfXhKejrF9otvYvFHq2z8NIjlYprKBdhFo1SZe041YxR+KRczQj2aJ2lgt7un/g+OLoKPAaxQb7flnFczQj2aBVmoEh6yQhc6gXCBSF3aKuHpJodCAezVifwKrsK12OpYphaeigEgnJpOispoXaAlAJC4SQo8m4gkbUgCIIgCIIgCIKQB/+ZU42DSga/5QAAAABJRU5ErkJggg==\" alt=\"s = h0 - h\" style=\"width: 64.5px; height: 20px;\" width=\"64.5\" height=\"20\"\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 79.3417px 7.79167px; transform-origin: 79.3417px 7.79167px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e as a function of distance \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"font-family: \u0026quot;STIXGeneral\u0026quot;, \u0026quot;STIXGeneral-webfont\u0026quot;, serif; font-style: italic; font-weight: 400; color: rgb(0, 0, 0);\"\u003er\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 30.725px 7.79167px; transform-origin: 30.725px 7.79167px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e and time \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"font-family: \u0026quot;STIXGeneral\u0026quot;, \u0026quot;STIXGeneral-webfont\u0026quot;, serif; font-style: italic; font-weight: 400; color: rgb(0, 0, 0);\"\u003et\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 7px 7.79167px; transform-origin: 7px 7.79167px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e is\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 44px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 22px; text-align: left; transform-origin: 384px 22px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"vertical-align:-17px\"\u003e\u003cimg src=\"data:image/png;base64,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\" alt=\"s = (Q0/(4 pi T)) integral(exp(-x)/x, u, infinity)\" style=\"width: 117px; height: 44px;\" width=\"117\" height=\"44\"\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 21.0083px 7.79167px; transform-origin: 21.0083px 7.79167px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003ewhere \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"font-family: \u0026quot;STIXGeneral\u0026quot;, \u0026quot;STIXGeneral-webfont\u0026quot;, serif; font-style: italic; font-weight: 400; color: rgb(0, 0, 0);\"\u003eT\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 65.9833px 7.79167px; transform-origin: 65.9833px 7.79167px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e is the transmissivity, \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"font-family: \u0026quot;STIXGeneral\u0026quot;, \u0026quot;STIXGeneral-webfont\u0026quot;, serif; font-style: italic; font-weight: 400; color: rgb(0, 0, 0);\"\u003eS\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 67.15px 7.79167px; transform-origin: 67.15px 7.79167px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e is the storativity, and \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 36.05px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 18.025px; text-align: left; transform-origin: 384px 18.025px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"vertical-align:-15px\"\u003e\u003cimg src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGMAAABICAYAAADiUEtgAAAEXklEQVR4nO2cwZHiMBBF/2Ez8G2PJOAEHAERkAEZkIFT4LZ3QiAH5rABEAMpzB7EX30LSZbNGDyjflWq2rFdhlVL3b9bEoBhGIZhGGtiA6AD0L77i9RMC+AK4FPaGWaUl7MBcAOwvf/dArjAGeQCoHnT96qSHsA+uNbAz5Du5d9o5TRwncKmdHhu9B4S189wxtgm7ldHB98pt/u/z3D+vZd7S8B3bxZ6/7diB+8qQjfSwhmHgXYJbnAxo3oa+M4+JZ6hsfoFPr+DxYv/bOFnRaqzGWSX8OnnzOdWxwHeGMfMc0v49D3Ss7FKNF7ckO7wlBKaSwcnDgxBY8azyVeLYSbNkkf4PiZ74fUGpqiwx7A8cUSZQSiHmUVrXOkxLHcQqrNYp58S16vjiKFBTiifIdrxzf1dWn+ibOUsvMLnMZrPWPwQQoOUzhAa4wI3y9j5O7iO7uS50AjaTN4GhAYpCdx0U0e4kW8Fvy+E5Qm2XHlbC31XPGbwxpM0GPr8XFIWSmNjBmfk3Ylm5rm6kbo1mxUzoGsZ8+0lxmCOYrNiJizOjS11jpVJWpS5MiNDSRVW3VSqQKh1LVvDnol2YkzbN/ByNZeI8Zm31Zg6uJEVGy1b+ARmzWk9pSsV0xF+mXUv13OGUEn7UhfVwI0mLajFlMMJ04PZ5v7uZ9uU7FUz6xa+lM2BdMD4YGJd6m3bbLQGE37ZDcYDXgwG02dbdbJSp3eIVj53E975VTOjugCaG/masa45XvwI1J2EwVtLArZ69QJUDoaZq86KKfHCmAnjRbh3aI+hypq6g+IdaurbE6vvcwlRi2VTa/mmpiaiHcYRyCy1w3AnNe+VBvFXq6k/AP6uvGVhvNBk7gg/S3TWNFj3eYMPfM1MXLL9zv0HmFlf4UbyCb5UoLNmB2ektbuMXytvWWiMmGJqg3u2w2FhGrjRvkc8FuxQoaIxjOpglTo30+kN5jY7pVQIE9ycEGGM5CkndvIpuNffr/cYVirMpReg1eeUMaggY2IltccW8FuAbKNbAaEyTBmjR3rHiI7+2G7EA5Y7jvZj4KjVgmjKGBfEk1pdYPtMPEN3FnunxZE7R/iNbSVuKkbJ7sIOj+kBa3u2DgQ3IvXMxNzioxZMS5LfBj7g22lX+J+Q0KXiucbQeJFbemYSrUsPVGR7VBzcz3hcEJtjjDBe5FxOh0cZzMLrlP0DP4oD3GgOR+IcY6gkLl16pgyuXupSxsYUzxxjhKO8BK4DVS11VcbGmGOMqUvP6tbWvuSwKJSxKaZ2UpgslrgclcFrXYhbHO4uZ80o1lSelmx40HhR6nIog6s+16GdPaXlZomeAUy5vhDddF0tlJW5Fmr/sQ0ParSSaqy6tWqlbClTYobuASh1OerWmI9UGzfGmGIMLZmXrv/rBg/cP6fUvVXHFGOUHlFWKIN7+F9RMBKUGGODx19TGDvOHL6fBcKqs+8xxoJ2yfp3ji0qr0MZhmEYhmEYhmEYAP4BaLBwoebcWQsAAAAASUVORK5CYII=\" alt=\"u = Sr^2/(4Tt)\" style=\"width: 49.5px; height: 36px;\" width=\"49.5\" height=\"36\"\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 349.917px 7.79167px; transform-origin: 349.917px 7.79167px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eWrite a function that achieves the objective of a pumping test: to determine the transmissivity and storativity from measurements of drawdown in time. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 347.467px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 173.733px; text-align: left; transform-origin: 384px 173.733px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cimg class=\"imageNode\" style=\"vertical-align: baseline;width: 497px;height: 342px\" src=\"data:image/png;base64,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\" data-image-state=\"image-loaded\" width=\"497\" height=\"342\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function [T,S] = confinedPumpTest(t,s,Q0,r)\r\n  % t = time, s = drawdown, Q0 = pumping rate, r = distance from well\r\n  T = f1(t,s,Q0,r);\r\n  S = f2(t,s,Q0,r);\r\nend","test_suite":"%%\r\nQ0 = 0.15;                                %  Pumping rate (m3/s)\r\nr  = 100;                                 %  Distance from well (m)\r\nt  = [100 1000 10000 1e5 2e5];            %  Time (s)\r\ns  = [0.0402 1.236 3.664 6.276 7.05];     %  Drawdown (m)\r\n[T,S] = confinedPumpTest(t,s,Q0,r);\r\nT_correct = 1.042e-2;                     %  Transmissivity (m2/s)\r\nS_correct = 9.864e-4;                     %  Storativity\r\nassert(abs(T-T_correct)/T_correct \u003c 1e-3 \u0026\u0026 abs(S-S_correct)/S_correct \u003c 1e-3)\r\n\r\n%%\r\nQ0 = 0.30;                                %  Pumping rate (m3/s)\r\nr  = 100;                                 %  Distance from well (m)\r\nt  = [100 1000 10000 1e5 2e5];            %  Time (s)\r\ns  = [0.0804 2.472 7.328 12.552 14.1];    %  Drawdown (m)\r\n[T,S] = confinedPumpTest(t,s,Q0,r);\r\nT_correct = 1.042e-2;                     %  Transmissivity (m2/s)\r\nS_correct = 9.864e-4;                     %  Storativity\r\nassert(abs(T-T_correct)/T_correct \u003c 1e-3 \u0026\u0026 abs(S-S_correct)/S_correct \u003c 1e-3)\r\n\r\n%%\r\nQ0 = 0.1;                                      %  Pumping rate (m3/s)\r\nr  = 40;                                       %  Distance from well (m)\r\nt  = [300 2000 8000 12000 24000 40000];        %  Time (s)\r\ns  = [0.494 1.749 2.830 3.153 3.709 4.120];    %  Drawdown (m)\r\n[T,S] = confinedPumpTest(t,s,Q0,r);\r\nT_correct = 9.838e-3;                          %  Transmissivity (m2/s)\r\nS_correct = 3.4e-3;                            %  Storativity\r\nassert(abs(T-T_correct)/T_correct \u003c 1e-3 \u0026\u0026 abs(S-S_correct)/S_correct \u003c 1e-3)\r\n\r\n%%\r\nQ0 = 0.1;                                      %  Pumping rate (m3/s)\r\nr  = 65;                                       %  Distance from well (m)\r\nt  = [300 2000 8000 12000 24000 40000];        %  Time (s)\r\ns  = [0.125 1.050 2.067 2.383 2.931 3.339];    %  Drawdown (m)\r\n[T,S] = confinedPumpTest(t,s,Q0,r);\r\nT_correct = 9.838e-3;                          %  Transmissivity (m2/s)\r\nS_correct = 3.4e-3;                            %  Storativity\r\nassert(abs(T-T_correct)/T_correct \u003c 2e-3 \u0026\u0026 abs(S-S_correct)/S_correct \u003c 1e-3)\r\n\r\n%%\r\nQ0 = 0.05;                                     %  Pumping rate (m3/s)\r\nr  = 5+10*rand;                                %  Distance from well (m)\r\nt  = [4e5 9e5 14e5 19e5 24e5];                 %  Time (s)\r\ns  = [0.859 0.918 0.951 0.973 0.991];          %  Drawdown (m)\r\n[T,S] = confinedPumpTest(t,s,Q0,r);\r\nlogfit = polyfit(log(t),s,1);                  \r\nTapprox = Q0/(4*pi*logfit(1));                       \r\nSapprox = 2.25*Tapprox*exp(-logfit(2)/logfit(1))/r^2;      \r\nassert(abs(T-Tapprox)/Tapprox \u003c 1e-3 \u0026\u0026 abs(S-Sapprox)/Sapprox \u003c 2e-3)","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":46909,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":4,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2021-01-04T00:26:53.000Z","updated_at":"2026-01-09T18:01:40.000Z","published_at":"2021-01-04T05:23:32.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAn important task in characterizing the flow of groundwater is to determine the properties of the aquifer, or the underground water-bearing formation. One approach is to disturb the aquifer, observe its response, and fit a theoretical formula to the observations. \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor example, suppose a confined aquifer initially has no flow. In that case, the piezometric head \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"h\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eh\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e, or the level to which water would rise in an observation well, would be a uniform value \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"h0\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eh_0\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e. A well turned on and pumped at a rate \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"Q0\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eQ_0\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e will create a cone of depression; that is, it will draw down the piezometric head to a level \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"h(r)\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eh(r)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e, where \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"r\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003er\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e is the radial distance from the well. Applying conservation of mass and Darcy’s law to this situation leads to a diffusion equation whose solution for the drawdown \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"s = h0 - h\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003es = h_0-h\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e as a function of distance \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"r\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003er\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e and time \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"t\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003et\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e is\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"true\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"s = (Q0/(4 pi T)) integral(exp(-x)/x, u, infinity)\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003es = {Q_0 \\\\over 4 \\\\pi T} \\\\int_u^\\\\infty {e^{-x} \\\\over x} dx\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ewhere \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"T\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eT\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e is the transmissivity, \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"S\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eS\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e is the storativity, and \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"true\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"u = Sr^2/(4Tt)\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eu = {S r^2 \\\\over 4 T t}\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eWrite a function that achieves the objective of a pumping test: to determine the transmissivity and storativity from measurements of drawdown in time. \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"342\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"497\\\"/\u003e\u003cw:attr w:name=\\\"verticalAlign\\\" w:val=\\\"baseline\\\"/\u003e\u003cw:attr w:name=\\\"altText\\\" w:val=\\\"\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image1.png\",\"relationshipId\":\"rId1\"}]},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,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\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":1419,"title":"Find the function 2","description":"Given a set of point (x,y) and the coordinate x of a new point, find the y value of new point.\r\nTest Suite is based on only one odd function.","description_html":"\u003cp\u003eGiven a set of point (x,y) and the coordinate x of a new point, find the y value of new point.\r\nTest Suite is based on only one odd function.\u003c/p\u003e","function_template":"function y = new_point_fit2(M,x)\r\n  y = x;\r\nend","test_suite":"%%\r\nM = [-2.6000   -0.0383\r\n   -1.7000   -0.1812\r\n   -1.6000   -0.2018\r\n   -1.5000   -0.2226\r\n   -1.3000   -0.2626\r\n   -0.9000   -0.3185\r\n    0.8000    0.3223\r\n    1.0000    0.3096\r\n    1.0000    0.3096\r\n    1.1000    0.2967\r\n    1.1000    0.2967\r\n    1.2000    0.2807\r\n    1.7000    0.1812\r\n    2.1000    0.1057\r\n    2.8000    0.0204]\r\nx = -3.0000;\r\ny_correct = -0.0070;\r\nassert(abs((new_point_fit2(M,x)-y_correct)/y_correct)\u003c=0.05)\r\n\r\n\r\n%%\r\nM = [-3.0000   -0.0070\r\n   -2.8000   -0.0204\r\n   -2.0000   -0.1231\r\n   -1.1000   -0.2967\r\n   -0.7000   -0.3199\r\n   -0.5000   -0.2908\r\n   -0.2000   -0.1627\r\n   -0.2000   -0.1627\r\n   -0.2000   -0.1627\r\n   -0.2000   -0.1627\r\n    0.6000    0.3099\r\n    1.4000    0.2430\r\n    1.6000    0.2018\r\n    1.7000    0.1812\r\n    2.5000    0.0491]\r\nx = -2.1000;\r\ny_correct = -0.1057;\r\nassert(abs((new_point_fit2(M,x)-y_correct)/y_correct)\u003c=0.05)\r\n\r\n\r\n%%\r\nM = [-2.5000   -0.0491\r\n   -1.9000   -0.1415\r\n   -1.9000   -0.1415\r\n   -1.6000   -0.2018\r\n   -1.4000   -0.2430\r\n   -1.3000   -0.2626\r\n   -1.0000   -0.3096\r\n   -0.5000   -0.2908\r\n    0.3000    0.2189\r\n    0.5000    0.2908\r\n    0.7000    0.3199\r\n    1.1000    0.2967\r\n    1.5000    0.2226\r\n    1.6000    0.2018\r\n    2.5000    0.0491]\r\nx = 0.9000;\r\ny_correct = 0.3185;\r\nassert(abs((new_point_fit2(M,x)-y_correct)/y_correct)\u003c=0.05)\r\n\r\n\r\n%%\r\nM = [-2.3000   -0.0748\r\n   -1.8000   -0.1610\r\n   -1.6000   -0.2018\r\n   -0.9000   -0.3185\r\n   -0.3000   -0.2189\r\n   -0.3000   -0.2189\r\n    0.7000    0.3199\r\n    0.8000    0.3223\r\n    0.9000    0.3185\r\n    1.0000    0.3096\r\n    1.0000    0.3096\r\n    1.1000    0.2967\r\n    1.3000    0.2626\r\n    1.6000    0.2018\r\n    2.7000    0.0287]\r\nx = -0.5000;\r\ny_correct = -0.2908;\r\nassert(abs((new_point_fit2(M,x)-y_correct)/y_correct)\u003c=0.05)\r\n\r\n\r\n%%\r\nM = [-2.3000   -0.0748\r\n   -1.5000   -0.2226\r\n   -1.4000   -0.2430\r\n   -1.1000   -0.2967\r\n   -0.1000   -0.0903\r\n    0.2000    0.1627\r\n    0.3000    0.2189\r\n    0.5000    0.2908\r\n    0.7000    0.3199\r\n    0.8000    0.3223\r\n    0.9000    0.3185\r\n    2.0000    0.1231\r\n    2.1000    0.1057\r\n    2.3000    0.0748\r\n    2.7000    0.0287]\r\nx = 0.9000;\r\ny_correct = 0.3185;\r\nassert(abs((new_point_fit2(M,x)-y_correct)/y_correct)\u003c=0.05)\r\n\r\n\r\n\r\n%%\r\nfiletext = fileread('new_point_fit2.m');\r\nassert(isempty(strfind(filetext, 'switch')))\r\nassert(isempty(strfind(filetext, 'while')))\r\nassert(isempty(strfind(filetext, 'case')))\r\nassert(isempty(strfind(filetext, 'if')))","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":3919,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":18,"test_suite_updated_at":"2013-04-12T16:00:57.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2013-04-12T15:57:57.000Z","updated_at":"2026-02-09T13:08:03.000Z","published_at":"2013-04-12T16:00:57.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven a set of point (x,y) and the coordinate x of a new point, find the y value of new point. Test Suite is based on only one odd function.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":44655,"title":"Computational power of Cody servers","description":"It has been \u003chttps://en.wikipedia.org/wiki/Moore%27s_law#History predicted\u003e that the performance of integrated circuits would _double_ every 18 months.  That suggests the time to perform a given computation should _halve_ roughly every 18 months.  \r\n\r\nWhat about on Cody?  Observational data is available from the final test case of \u003chttps://www.mathworks.com/matlabcentral/cody/problems/963-we-love-vectorized-solutions-problem-1-remove-the-row-average Problem 963\u003e to help us quantify the improvement in performance!  And thereby even make predictions for future computations.\r\n\r\n Solution    Date\t   Runtime [s]\r\n ...\r\n 144393\t     04-Oct-12\t   4.230\r\n ...\r\n 654812\t     17-Apr-15\t   3.099\r\n ...\r\n 1272817     20-Sep-17\t   2.0402\r\n ...\r\n\r\nThe complete data set will be provided to you as input.  You should assume the general trend can be described by the following law:\r\n\r\n runtime = r0 - δ [1 - exp(-t/k)]\r\n runtime = r∞ + δ exp(-t/k)\r\n\r\nwhere |r0| is the runtime at the start of the period in seconds, |r∞| is the predicted runtime (in seconds) that will be approached far in the future, |δ = r0 - r∞|, and |t| is the time in nominal years since the start of the period, and |k| is a kinetic parameter (in nominal years).  \r\n\r\nThe start of the period is defined by the earliest date in the series.  Compute the number of days exactly, and assume that a nominal year comprises 365.24 days.\r\n\r\nYour task is to \u003chttps://au.mathworks.com/help/matlab/math/example-curve-fitting-via-optimization.html fit the curve\u003e and thereby predict the runtime for various future dates.  Your output should be rounded to four decimal places.  \r\n\r\nMETHOD:  You _must_ use \u003chttps://au.mathworks.com/help/matlab/ref/fminsearch.html |fminsearch|\u003e to perform the non-linear regression, and you _must_ set the options using \u003chttps://au.mathworks.com/help/matlab/ref/optimset.html |optimset|\u003e to ensure sufficient accuracy.  The 'best' fit is defined — _for this problem, as in the common convention_ — as that which minimises the sum of the squares of the residuals.  \r\n\r\nEXAMPLE:\r\n\r\n % Input\r\n futureDate = '21-Nov-2023';\r\n data.solutionNumber = [1036949, ..., 1272817];\r\n data.date = ['29-Oct-2016'; ...; '20-Sep-2017'];\r\n data.runtime = [1.2630, ..., 2.0402];\r\n % Output\r\n predictedRuntime = 0.3619;  % seconds\r\n\r\n","description_html":"\u003cp\u003eIt has been \u003ca href = \"https://en.wikipedia.org/wiki/Moore%27s_law#History\"\u003epredicted\u003c/a\u003e that the performance of integrated circuits would \u003ci\u003edouble\u003c/i\u003e every 18 months.  That suggests the time to perform a given computation should \u003ci\u003ehalve\u003c/i\u003e roughly every 18 months.\u003c/p\u003e\u003cp\u003eWhat about on Cody?  Observational data is available from the final test case of \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/963-we-love-vectorized-solutions-problem-1-remove-the-row-average\"\u003eProblem 963\u003c/a\u003e to help us quantify the improvement in performance!  And thereby even make predictions for future computations.\u003c/p\u003e\u003cpre\u003e Solution    Date\t   Runtime [s]\r\n ...\r\n 144393\t     04-Oct-12\t   4.230\r\n ...\r\n 654812\t     17-Apr-15\t   3.099\r\n ...\r\n 1272817     20-Sep-17\t   2.0402\r\n ...\u003c/pre\u003e\u003cp\u003eThe complete data set will be provided to you as input.  You should assume the general trend can be described by the following law:\u003c/p\u003e\u003cpre\u003e runtime = r0 - δ [1 - exp(-t/k)]\r\n runtime = r∞ + δ exp(-t/k)\u003c/pre\u003e\u003cp\u003ewhere \u003ctt\u003er0\u003c/tt\u003e is the runtime at the start of the period in seconds, \u003ctt\u003er∞\u003c/tt\u003e is the predicted runtime (in seconds) that will be approached far in the future, \u003ctt\u003eδ = r0 - r∞\u003c/tt\u003e, and \u003ctt\u003et\u003c/tt\u003e is the time in nominal years since the start of the period, and \u003ctt\u003ek\u003c/tt\u003e is a kinetic parameter (in nominal years).\u003c/p\u003e\u003cp\u003eThe start of the period is defined by the earliest date in the series.  Compute the number of days exactly, and assume that a nominal year comprises 365.24 days.\u003c/p\u003e\u003cp\u003eYour task is to \u003ca href = \"https://au.mathworks.com/help/matlab/math/example-curve-fitting-via-optimization.html\"\u003efit the curve\u003c/a\u003e and thereby predict the runtime for various future dates.  Your output should be rounded to four decimal places.\u003c/p\u003e\u003cp\u003eMETHOD:  You \u003ci\u003emust\u003c/i\u003e use \u003ca href = \"https://au.mathworks.com/help/matlab/ref/fminsearch.html\"\u003e\u003ctt\u003efminsearch\u003c/tt\u003e\u003c/a\u003e to perform the non-linear regression, and you \u003ci\u003emust\u003c/i\u003e set the options using \u003ca href = \"https://au.mathworks.com/help/matlab/ref/optimset.html\"\u003e\u003ctt\u003eoptimset\u003c/tt\u003e\u003c/a\u003e to ensure sufficient accuracy.  The 'best' fit is defined — \u003ci\u003efor this problem, as in the common convention\u003c/i\u003e — as that which minimises the sum of the squares of the residuals.\u003c/p\u003e\u003cp\u003eEXAMPLE:\u003c/p\u003e\u003cpre\u003e % Input\r\n futureDate = '21-Nov-2023';\r\n data.solutionNumber = [1036949, ..., 1272817];\r\n data.date = ['29-Oct-2016'; ...; '20-Sep-2017'];\r\n data.runtime = [1.2630, ..., 2.0402];\r\n % Output\r\n predictedRuntime = 0.3619;  % seconds\u003c/pre\u003e","function_template":"function predictedRuntime = predictor(futureDate, data)\r\n    % Preliminaries:\r\n    ...\r\n    \r\n    \r\n    % Use fminsearch to find the parameters that minimize the objective function.\r\n    myObjectiveFun = ...\r\n    myOptions = ...\r\n    ... = fminsearch\r\n\r\n    % Report your prediction of the runtime at the specified future date.\r\n    predictedRuntime = ...\r\nend\r\n\r\n% Function that accepts a trial set of parameters and the observed data, \r\n% and returns the sum of squared errors for the model . \r\n% https://au.mathworks.com/help/matlab/math/example-curve-fitting-via-optimization.html\r\nfunction SSE = sseVal(...)\r\n    % runtime = r0 - δ [1 - exp(-t/k)]\r\n    % runtime = r∞ + δ exp(-t/k)\r\n    \r\n    ...\r\n    \r\n    SSE = ...\r\nend\r\n","test_suite":"data.solutionNumber = [1036949\t1048171\t1051202\t1078061\t1078699\t1081561\t886761\t1165117\t1202850\t1211446\t1241478\t1241530\t1329044\t1323931\t1382633\t1345204\t1281524\t1272814\t1272815\t1272823\t1272845\t1287012\t1287386\t1262442\t1262445\t1251993\t1252843\t1407137\t1412687\t1448359\t1448368\t1410187\t1465616\t1472214\t1472225\t1490596\t1490602\t1541085\t1541132\t860114\t143879\t144156\t144393\t202249\t210894\t539555\t182974\t276887\t1133109\t654812\t1272817];\r\ndata.date = ['29-Oct-2016';\t'08-Nov-2016';\t'12-Nov-2016';\t'09-Dec-2016';\t'10-Dec-2016';\t'14-Dec-2016';\t'06-May-2016';\t'18-Apr-2017';\t'02-Jun-2017';\t'13-Jun-2017';\t'28-Jul-2017';\t'28-Jul-2017';\t'06-Nov-2017';\t'01-Nov-2017';\t'16-Dec-2017';\t'15-Nov-2017';\t'05-Oct-2017';\t'20-Sep-2017';\t'20-Sep-2017';\t'20-Sep-2017';\t'20-Sep-2017';\t'15-Oct-2017';\t'15-Oct-2017';\t'05-Sep-2017';\t'05-Sep-2017';\t'16-Aug-2017';\t'17-Aug-2017';\t'06-Jan-2018';\t'10-Jan-2018';\t'24-Feb-2018';\t'24-Feb-2018';\t'08-Jan-2018';\t'18-Mar-2018';\t'27-Mar-2018';\t'27-Mar-2018';\t'13-Apr-2018';\t'13-Apr-2018';\t'26-May-2018';\t'26-May-2018';\t'31-Mar-2016';\t'02-Oct-2012';\t'03-Oct-2012';\t'04-Oct-2012';\t'08-Feb-2013';\t'01-Mar-2013';\t'03-Dec-2014';\t'29-Dec-2012';\t'09-Jul-2013';\t'03-Mar-2017';\t'17-Apr-2015';\t'20-Sep-2017'];\r\ndata.runtime = [1.2630\t0.624\t1.3326\t1.2939\t0.5995\t1.1307\t1.3505\t1.2613\t1.2737\t1.3081\t1.2774\t1.252\t1.2179\t1.4431\t1.2637\t1.1614\t1.2542\t1.9135\t1.2996\t1.2595\t1.2664\t1.1858\t1.1501\t1.2516\t1.2786\t1.9461\t1.2492\t1.3654\t1.3263\t1.1484\t1.1728\t1.6177\t1.0538\t1.0571\t1.0454\t1.3873\t1.0600\t1.1154\t1.0635\t1.4359\t4.498\t4.198\t4.230\t5.264\t4.022\t3.153\t4.740\t4.112\t2.3409\t3.099\t2.0402];\r\n\r\n%% Anti-hacking provision\r\n% ADDED 2019-06-29.  \r\n% Ensure only builtin functions will be called.  \r\n! rm -v fileread.m\r\n! rm -v assert.m\r\n\r\n%% Required methodology\r\nassessFunctionPresence({'fminsearch', 'optimset'}, 'FileName','predictor.m', 'Feedback','You must use the specified methodology')\r\n\r\n%% Anti-hardcoding test\r\n% Adapted from a comment at https://www.mathworks.com/matlabcentral/cody/problems/44343 .\r\nassert(~any(cellfun(@(x)ismember(max([0,str2num(x)]),[2012,2019:2023,3000]),regexp(fileread('predictor.m'),'[\\d\\.\\+\\-\\*\\/\\(\\) \\[\\]\\,\\;]+','match'))), 'Please don''t hard-code your ''solution''.') \r\nassert(~any(cellfun(@(x)ismember(max([0,str2num(x)]),[2012,2019:2023,3000]),regexp(fileread('predictor.m'),'\\d+','match'))), 'Please do not hard-code your ''solution''.') \r\n\r\n%% January 2019\r\nfutureDate = '22-Jan-2019';\r\npredictedRuntime_correct = round(0.935043294718475, 4);\r\nassert(isequal(predictor(futureDate, data), predictedRuntime_correct))\r\n\r\nfutureDate = '23-Jan-2019';\r\npredictedRuntime_correct = round(0.934448955935569, 4);\r\nassert(isequal(predictor(futureDate, data), predictedRuntime_correct))\r\n\r\nfutureDate = '24-Jan-2019';\r\npredictedRuntime_correct = round(0.933855075296061, 4);\r\nassert(isequal(predictor(futureDate, data), predictedRuntime_correct))\r\n\r\n%% January 2020\r\nfutureDate = '09-Jan-2020';\r\npredictedRuntime_correct = round(0.751755426901932, 4);\r\nassert(isequal(predictor(futureDate, data), predictedRuntime_correct))\r\n\r\nfutureDate = '13-Jan-2020';\r\npredictedRuntime_correct = round(0.749945312632780, 4);\r\nassert(isequal(predictor(futureDate, data), predictedRuntime_correct))\r\n\r\n%% January 2021\r\nfutureDate = '06-Jan-2021';\r\npredictedRuntime_correct = round(0.608254613313523, 4);\r\nassert(isequal(predictor(futureDate, data), predictedRuntime_correct))\r\n\r\nfutureDate = '11-Jan-2021';\r\npredictedRuntime_correct = round(0.606545074994730, 4);\r\nassert(isequal(predictor(futureDate, data), predictedRuntime_correct))\r\n\r\n%% February 2022\r\nfutureDate = '06-Feb-2022';\r\npredictedRuntime_correct = round(0.491354117473879, 4);\r\nassert(isequal(predictor(futureDate, data), predictedRuntime_correct))\r\n\r\nfutureDate = '10-Feb-2022';\r\npredictedRuntime_correct = round(0.490345992043568, 4);\r\nassert(isequal(predictor(futureDate, data), predictedRuntime_correct))\r\n\r\n%% November 2023\r\nfutureDate = '06-Nov-2023';\r\npredictedRuntime_correct = round(0.364155581026111, 4);\r\nassert(isequal(predictor(futureDate, data), predictedRuntime_correct))\r\n\r\nfutureDate = '21-Nov-2023';\r\npredictedRuntime_correct = round(0.361853937995679, 4);\r\nassert(isequal(predictor(futureDate, data), predictedRuntime_correct))\r\n\r\nfutureDate = '25-Nov-2023';\r\npredictedRuntime_correct = round(0.361244649648014, 4);\r\nassert(isequal(predictor(futureDate, data), predictedRuntime_correct))\r\n\r\nfutureDate = '27-Nov-2023';\r\npredictedRuntime_correct = round(0.360940709522436, 4);\r\nassert(isequal(predictor(futureDate, data), predictedRuntime_correct))\r\n\r\n%% Let's all meet up in the year 3000\r\nfutureDate = '01-Jan-3000';\r\npredictedRuntime_correct = round(0.164021404839, 4);\r\nassert(isequal(predictor(futureDate, data), predictedRuntime_correct))\r\n\r\n%% Enforce antihacking\r\n% Assure no 'workarounds' that avoid appropriate use of optimset.\r\n% (Added 29 May 2018.)\r\nfutureDate = {'19-Dec-2019';\t'04-Oct-2020';\t'06-Nov-2020';\t'20-Nov-2020';\t'07-Dec-2020';\t'09-Dec-2020';\t'11-Dec-2020';\t'25-Feb-2021';\t'04-Mar-2021';\t'18-Apr-2021';\t'19-May-2021';\t'23-Jul-2021'};\r\npRuntime_c_unrounded = {0.761350673860113\t0.641651747331991\t0.629650497697623\t0.624650604424140\t0.618651428148657\t0.617950799242008\t0.617251250072375\t0.591452258418511\t0.589151203003048\t0.574651625923890\t0.564951737257372\t0.545350739105932};\r\nfor j = 1 : length(futureDate)\r\n    assert(isequal(predictor(futureDate{j}, data), round(pRuntime_c_unrounded{j}, 4)))\r\nend;\r\n","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":64439,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":2,"test_suite_updated_at":"2019-06-29T12:58:19.000Z","rescore_all_solutions":true,"group_id":1,"created_at":"2018-05-27T08:32:09.000Z","updated_at":"2019-06-29T12:58:19.000Z","published_at":"2018-05-27T12:35:16.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIt has been\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Moore%27s_law#History\\\"\u003e\u003cw:r\u003e\u003cw:t\u003epredicted\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e that the performance of integrated circuits would\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003edouble\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e every 18 months. That suggests the time to perform a given computation should\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ehalve\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e roughly every 18 months.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eWhat about on Cody? Observational data is available from the final test case of\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/963-we-love-vectorized-solutions-problem-1-remove-the-row-average\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eProblem 963\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e to help us quantify the improvement in performance! And thereby even make predictions for future computations.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[ Solution    Date     Runtime [s]\\n ...\\n 144393       04-Oct-12     4.230\\n ...\\n 654812       17-Apr-15     3.099\\n ...\\n 1272817     20-Sep-17     2.0402\\n ...]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe complete data set will be provided to you as input. You should assume the general trend can be described by the following law:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[ runtime = r0 - δ [1 - exp(-t/k)]\\n runtime = r∞ + δ exp(-t/k)]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ewhere\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003er0\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e is the runtime at the start of the period in seconds,\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003er∞\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e is the predicted runtime (in seconds) that will be approached far in the future,\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eδ = r0 - r∞\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e, and\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003et\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e is the time in nominal years since the start of the period, and\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ek\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e is a kinetic parameter (in nominal years).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe start of the period is defined by the earliest date in the series. Compute the number of days exactly, and assume that a nominal year comprises 365.24 days.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eYour task is to\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://au.mathworks.com/help/matlab/math/example-curve-fitting-via-optimization.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003efit the curve\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e and thereby predict the runtime for various future dates. Your output should be rounded to four decimal places.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eMETHOD: You\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003emust\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e use\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://au.mathworks.com/help/matlab/ref/fminsearch.html\\\"\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003efminsearch\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e to perform the non-linear regression, and you\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003emust\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e set the options using\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://au.mathworks.com/help/matlab/ref/optimset.html\\\"\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eoptimset\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e to ensure sufficient accuracy. The 'best' fit is defined —\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003efor this problem, as in the common convention\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e — as that which minimises the sum of the squares of the residuals.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eEXAMPLE:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[ % Input\\n futureDate = '21-Nov-2023';\\n data.solutionNumber = [1036949, ..., 1272817];\\n data.date = ['29-Oct-2016'; ...; '20-Sep-2017'];\\n data.runtime = [1.2630, ..., 2.0402];\\n % Output\\n predictedRuntime = 0.3619;  % seconds]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"}],"problem_search":{"errors":[],"problems":[{"id":44507,"title":"Curve fitting (linear functions) \u0026 function handles","description":"In this problem you are provided some raw data.  You need to find a way of summarising the data with just a few parameters, so that it can be reconstructed.  You then need to provide a handle to your own (generic) custom function that will indeed reproduce the raw data when provided with the parameters that you determine.  \r\n\r\nConsider a linear function _y = m x + c_.  Let's say |x| is a vector of uniformly spaced numbers, such as |1:100|.  The function operates on the data to produce, say, |y = 2:2:200|.  You are provided with both the vector |x| and the vector |y|.  The parameters |m| and |c| are scalars;  in this example |m| is 2 and |c| is zero.  \r\n\r\nSo here you should output two things:\r\n\r\n* the handle to a _generic_ function that implements a linear function (i.e. of the form _y = m x + c_) taking two inputs, namely *1* a set of parameters and *2* the vector |x|, and outputting the corresponding vector |y|;  and\r\n* a set of parameter values (m and c) wrapped into a single MATLAB variable (of any data type).  \r\n\r\nAs the parameters will be used in your own function, the data type will be set by you.  \r\n\r\nSo, for the above example, you _could_ return a \u003chttps://au.mathworks.com/help/matlab/function-handles.html function handle\u003e |@myFunc| that you have defined, along with the variable |param| that has two \u003chttps://au.mathworks.com/help/matlab/structures.html fields\u003e such that |param.amplification| = 2 and |param.verticalShift| = NaN.  \r\n\r\nOr, if you have defined your function differently, then you _could_ return the \u003chttps://au.mathworks.com/help/matlab/function-handles.html function handle\u003e |@myFn| along with a \u003chttps://au.mathworks.com/help/matlab/cell-arrays.html cell array\u003e variable |prms| that has four elements such that |prms{1}='no'|, |prms{2}=NaN|, |prms{3} = 'yes'| and |prms{4} = 2|.  \r\n\r\nAnd so on.  \r\n\r\n_Note:  *all* of the relevant numbers ( |m|, |c| and the elements of |x| and |y|) are *integers* (i.e. whole numbers, not decimals or fractions), even though they have been implicitly specified as being of type \u003chttps://au.mathworks.com/help/matlab/ref/double.html double\u003e._  \r\n\r\n* See also \u003chttps://www.mathworks.com/matlabcentral/cody/problems/44508 Problem 44508. Curve fitting (non-linear functions) \u0026 function handles\u003e — more difficult.","description_html":"\u003cp\u003eIn this problem you are provided some raw data.  You need to find a way of summarising the data with just a few parameters, so that it can be reconstructed.  You then need to provide a handle to your own (generic) custom function that will indeed reproduce the raw data when provided with the parameters that you determine.\u003c/p\u003e\u003cp\u003eConsider a linear function \u003ci\u003ey = m x + c\u003c/i\u003e.  Let's say \u003ctt\u003ex\u003c/tt\u003e is a vector of uniformly spaced numbers, such as \u003ctt\u003e1:100\u003c/tt\u003e.  The function operates on the data to produce, say, \u003ctt\u003ey = 2:2:200\u003c/tt\u003e.  You are provided with both the vector \u003ctt\u003ex\u003c/tt\u003e and the vector \u003ctt\u003ey\u003c/tt\u003e.  The parameters \u003ctt\u003em\u003c/tt\u003e and \u003ctt\u003ec\u003c/tt\u003e are scalars;  in this example \u003ctt\u003em\u003c/tt\u003e is 2 and \u003ctt\u003ec\u003c/tt\u003e is zero.\u003c/p\u003e\u003cp\u003eSo here you should output two things:\u003c/p\u003e\u003cul\u003e\u003cli\u003ethe handle to a \u003ci\u003egeneric\u003c/i\u003e function that implements a linear function (i.e. of the form \u003ci\u003ey = m x + c\u003c/i\u003e) taking two inputs, namely \u003cb\u003e1\u003c/b\u003e a set of parameters and \u003cb\u003e2\u003c/b\u003e the vector \u003ctt\u003ex\u003c/tt\u003e, and outputting the corresponding vector \u003ctt\u003ey\u003c/tt\u003e;  and\u003c/li\u003e\u003cli\u003ea set of parameter values (m and c) wrapped into a single MATLAB variable (of any data type).\u003c/li\u003e\u003c/ul\u003e\u003cp\u003eAs the parameters will be used in your own function, the data type will be set by you.\u003c/p\u003e\u003cp\u003eSo, for the above example, you \u003ci\u003ecould\u003c/i\u003e return a \u003ca href = \"https://au.mathworks.com/help/matlab/function-handles.html\"\u003efunction handle\u003c/a\u003e \u003ctt\u003e@myFunc\u003c/tt\u003e that you have defined, along with the variable \u003ctt\u003eparam\u003c/tt\u003e that has two \u003ca href = \"https://au.mathworks.com/help/matlab/structures.html\"\u003efields\u003c/a\u003e such that \u003ctt\u003eparam.amplification\u003c/tt\u003e = 2 and \u003ctt\u003eparam.verticalShift\u003c/tt\u003e = NaN.\u003c/p\u003e\u003cp\u003eOr, if you have defined your function differently, then you \u003ci\u003ecould\u003c/i\u003e return the \u003ca href = \"https://au.mathworks.com/help/matlab/function-handles.html\"\u003efunction handle\u003c/a\u003e \u003ctt\u003e@myFn\u003c/tt\u003e along with a \u003ca href = \"https://au.mathworks.com/help/matlab/cell-arrays.html\"\u003ecell array\u003c/a\u003e variable \u003ctt\u003eprms\u003c/tt\u003e that has four elements such that \u003ctt\u003eprms{1}='no'\u003c/tt\u003e, \u003ctt\u003eprms{2}=NaN\u003c/tt\u003e, \u003ctt\u003eprms{3} = 'yes'\u003c/tt\u003e and \u003ctt\u003eprms{4} = 2\u003c/tt\u003e.\u003c/p\u003e\u003cp\u003eAnd so on.\u003c/p\u003e\u003cp\u003e\u003ci\u003eNote:  \u003cb\u003eall\u003c/b\u003e of the relevant numbers ( \u003ctt\u003em\u003c/tt\u003e, \u003ctt\u003ec\u003c/tt\u003e and the elements of \u003ctt\u003ex\u003c/tt\u003e and \u003ctt\u003ey\u003c/tt\u003e) are \u003cb\u003eintegers\u003c/b\u003e (i.e. whole numbers, not decimals or fractions), even though they have been implicitly specified as being of type \u003ca href = \"https://au.mathworks.com/help/matlab/ref/double.html\"\u003edouble\u003c/a\u003e.\u003c/i\u003e\u003c/p\u003e\u003cul\u003e\u003cli\u003eSee also \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/44508\"\u003eProblem 44508. Curve fitting (non-linear functions) \u0026 function handles\u003c/a\u003e — more difficult.\u003c/li\u003e\u003c/ul\u003e","function_template":"%{\r\n    Some comments about this code....\r\n%}\r\nfunction [afunctionhandle asetofparameters] = generateFit(x, y)    % \u003c---This function is called first by the Test Suite\r\n    % Here you are going to figure out the values of the parameters\r\n    \r\n    afunctionhandle\r\n    asetofparameters\r\n    \r\nfunction nameofyouroutputvectorvariable = nameofyourgenericlinearfunction(nameofyourparametersetvariable, nameofyourxvectorvariable)\r\n    % Here you are providing code representing y = m x + c.  ","test_suite":"%% Gradient only\r\nx = 1:100;\r\ny_correct = 2:2:200;\r\n[fh, pars] = generateFit(x, y_correct);\r\ny = fh(pars, x);\r\nassert( isequal(y,y_correct) )\r\n\r\n%% Intercept only\r\nx = 1:100;\r\ny_correct = 101:200;\r\n[fh, pars] = generateFit(x, y_correct);\r\ny = fh(pars, x);\r\nassert( isequal(y,y_correct) )\r\n\r\n%% Gradient and intercept — same input\r\nx = 1:100;\r\ny_correct = 102:2:300;\r\n[fh, pars] = generateFit(x, y_correct);\r\ny = fh(pars, x);\r\nassert( isequal(y,y_correct) )\r\n\r\n%% Gradient and intercept — different inputs\r\nx = 1:100;\r\ny_correct = 102:2:300;\r\n[fh, pars] = generateFit(x, y_correct);\r\nels = 10+randi(30) : 60+randi(30);\r\ny = fh(pars, x(els));\r\nassert( isequal(y,y_correct(els)) )\r\ny = fh(pars, x+100);\r\nassert( isequal(y,302:2:500) )\r\n\r\n%% Another gradient and intercept\r\nx = 1000:-1:500;\r\ny_correct = 0:500;\r\n[fh, pars] = generateFit(x, y_correct);\r\ny = fh(pars, x);\r\nassert( isequal(y,y_correct) )\r\n\r\n%% Yet another gradient and intercept\r\nx = 1000:-1:500;\r\ny_correct = -500:2:500;\r\n[fh, pars] = generateFit(x, y_correct);\r\ny = fh(pars, x);\r\nassert( isequal(y,y_correct) )\r\n\r\n%% Even more gradient and intercept combinations, randomly generated\r\nfor i = 1 : 20\r\n    x = -randi(1000) : randi(10) : randi(1000);\r\n    m = randi(20)-10;\r\n    c = randi(20)-10;\r\n    y_correct = round(exp(log(c) + log(x)))  -  m^1 * (x(1))^0;\r\n    [fh, pars] = generateFit(x, y_correct);\r\n    y = fh(pars, x);\r\n    assert( isequal(y,y_correct) )\r\nend;\r\n\r\n%% Now check whether the function handle refers to a truly generic function.\r\n% \"Gradient and intercept\"\r\nx1 = 1:100;\r\ny1_correct = 102:2:300;\r\n[fh1, pars1] = generateFit(x1, y1_correct);\r\n\r\n% \"Another gradient and intercept\"\r\nx2 = 1000:-1:500;\r\ny2_correct = 0:500;\r\n[fh2, pars2] = generateFit(x2, y2_correct);\r\n\r\n% According to the Problem Statament, fh1 and fh2 should be interchangeable.  \r\ny1 = fh2(pars1, x1);\r\nassert( isequal(y1,y1_correct) )\r\n\r\ny2 = fh1(pars2, x2);\r\nassert( isequal(y2,y2_correct) )\r\n\r\n\r\n%% Check parameter variable\r\n% Finally, check that the user is sending a small number of parameters to their\r\n% custom function (to be called via the function handle), and not simply sending\r\n% the entire vector y.  \r\nx = 1:1000;\r\ny_correct = flip(1:1000);\r\n[fh, pars] = generateFit(x, y_correct);\r\npw = whos('pars')\r\nassert( pw.bytes \u003c 100 , 'Parameter variable is too big.')\r\ny = fh(pars, x);\r\nassert( isequal(y,y_correct) )\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":2,"created_by":64439,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":9,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2018-01-27T13:32:51.000Z","updated_at":"2018-01-30T13:02:58.000Z","published_at":"2018-01-29T12:37:35.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIn this problem you are provided some raw data. You need to find a way of summarising the data with just a few parameters, so that it can be reconstructed. You then need to provide a handle to your own (generic) custom function that will indeed reproduce the raw data when provided with the parameters that you determine.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eConsider a linear function\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ey = m x + c\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e. Let's say\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ex\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e is a vector of uniformly spaced numbers, such as\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e1:100\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e. The function operates on the data to produce, say,\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ey = 2:2:200\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e. You are provided with both the vector\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ex\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e and the vector\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ey\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e. The parameters\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003em\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e and\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ec\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e are scalars; in this example\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003em\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e is 2 and\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ec\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e is zero.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eSo here you should output two things:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ethe handle to a\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003egeneric\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e function that implements a linear function (i.e. of the form\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ey = m x + c\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e) taking two inputs, namely\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e1\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e a set of parameters and\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e2\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e the vector\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ex\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e, and outputting the corresponding vector\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ey\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e; and\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ea set of parameter values (m and c) wrapped into a single MATLAB variable (of any data type).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAs the parameters will be used in your own function, the data type will be set by you.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eSo, for the above example, you\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ecould\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e return a\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://au.mathworks.com/help/matlab/function-handles.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003efunction handle\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e@myFunc\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e that you have defined, along with the variable\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eparam\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e that has two\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://au.mathworks.com/help/matlab/structures.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003efields\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e such that\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eparam.amplification\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e = 2 and\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eparam.verticalShift\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e = NaN.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eOr, if you have defined your function differently, then you\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ecould\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e return the\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://au.mathworks.com/help/matlab/function-handles.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003efunction handle\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e@myFn\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e along with a\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://au.mathworks.com/help/matlab/cell-arrays.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ecell array\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e variable\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eprms\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e that has four elements such that\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eprms{1}='no'\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e,\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eprms{2}=NaN\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e,\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eprms{3} = 'yes'\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e and\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eprms{4} = 2\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAnd so on.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eNote: \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eall\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e of the relevant numbers (\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003em\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e,\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ec\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e and the elements of\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ex\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e and\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ey\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e) are\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eintegers\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e (i.e. whole numbers, not decimals or fractions), even though they have been implicitly specified as being of type\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://au.mathworks.com/help/matlab/ref/double.html\\\"\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003edouble\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eSee also\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/44508\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eProblem 44508. Curve fitting (non-linear functions) \u0026amp; function handles\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e — more difficult.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":1330,"title":"James Bond film count","description":"Twenty-three James Bond films have been produced, in the years\r\n\r\n   1962, 1963, 1964, 1965, 1967, 1969, 1971, 1973, ...\r\n   1974, 1977, 1979, 1981, 1983, 1985, 1987, 1989, ...\r\n   1995, 1997, 1999, 2002, 2006, 2008, 2012\r\n\r\nThe total number of films N produced as a function of year Y can be approximated fairly well by a curve of the form \r\n\r\n   N = A*(Y-1961)^p   or   log(N) = log(A) + p*log(Y-1961)\r\n\r\nUse this to predict the total number of Bond films that will have been produced as of any given year in the future.","description_html":"\u003cp\u003eTwenty-three James Bond films have been produced, in the years\u003c/p\u003e\u003cpre\u003e   1962, 1963, 1964, 1965, 1967, 1969, 1971, 1973, ...\r\n   1974, 1977, 1979, 1981, 1983, 1985, 1987, 1989, ...\r\n   1995, 1997, 1999, 2002, 2006, 2008, 2012\u003c/pre\u003e\u003cp\u003eThe total number of films N produced as a function of year Y can be approximated fairly well by a curve of the form\u003c/p\u003e\u003cpre\u003e   N = A*(Y-1961)^p   or   log(N) = log(A) + p*log(Y-1961)\u003c/pre\u003e\u003cp\u003eUse this to predict the total number of Bond films that will have been produced as of any given year in the future.\u003c/p\u003e","function_template":"function n=bondcount(y)\r\nn=0;\r\n","test_suite":"%%\r\ny=2020;\r\nn=bondcount(y);\r\nassert(isequal(round(n),27))\r\n%%\r\ny=2100;\r\nn=bondcount(y);\r\nassert(isequal(round(n),52))\r\n%%\r\ny=2289;\r\nn=bondcount(y);\r\nassert(isequal(round(n),100))\r\n%%\r\ny=4661;\r\nn=bondcount(y);\r\nassert(isequal(round(n),500))","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":245,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":54,"test_suite_updated_at":"2013-03-09T21:08:40.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2013-03-09T20:40:39.000Z","updated_at":"2026-02-27T10:03:31.000Z","published_at":"2013-03-09T21:08:40.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eTwenty-three James Bond films have been produced, in the years\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[   1962, 1963, 1964, 1965, 1967, 1969, 1971, 1973, ...\\n   1974, 1977, 1979, 1981, 1983, 1985, 1987, 1989, ...\\n   1995, 1997, 1999, 2002, 2006, 2008, 2012]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe total number of films N produced as a function of year Y can be approximated fairly well by a curve of the form\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[   N = A*(Y-1961)^p   or   log(N) = log(A) + p*log(Y-1961)]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eUse this to predict the total number of Bond films that will have been produced as of any given year in the future.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":2259,"title":"Best Fit RMS","description":"Given a set of data as x and y, find the \u003chttp://en.wikipedia.org/wiki/Root_mean_square RMS\u003e value between the data and its best fit curve from a first degree polynomial\r\n\r\nExample\r\n\r\n x = [1:10]\r\n y = [2 7 3 5 9 11 1 6 2 0]\r\n\r\n bestfit_RMS = 3.3379\r\n","description_html":"\u003cp\u003eGiven a set of data as x and y, find the \u003ca href = \"http://en.wikipedia.org/wiki/Root_mean_square\"\u003eRMS\u003c/a\u003e value between the data and its best fit curve from a first degree polynomial\u003c/p\u003e\u003cp\u003eExample\u003c/p\u003e\u003cpre\u003e x = [1:10]\r\n y = [2 7 3 5 9 11 1 6 2 0]\u003c/pre\u003e\u003cpre\u003e bestfit_RMS = 3.3379\u003c/pre\u003e","function_template":"function bestfit_RMS = BestFit(x,y)\r\n  bestfit_RMS = mean(x);\r\nend","test_suite":"%%\r\nx = [1:10];\r\ny= [2 7 3 5 9 11 1 6 2 0];\r\ny_correct =     3.3379\r\nassert(isequal(BestFit(x,y),y_correct))\r\n\r\n\r\n%%\r\nsqft = [1200  1500 1750  2000 2250 2500 2750 3000 3500 4000];\r\navg_price= [   135   142   156   165   170   220   225   275   300   450];\r\ny_correct =     30.9322;\r\nassert(isequal(BestFit(sqft, avg_price),y_correct))\r\n\r\n%%\r\nhandicap = [6:2:24];\r\nScore = [3.9400 3.8000 4.1000 3.8700 4.4500 4.3300 4.12 4.43 4.60 4.5000];\r\n\r\ny_correct =         0.1508\r\n\r\nassert(isequal(BestFit(handicap, Score),y_correct))\r\n\r\n%%\r\nx = [1:10];\r\ny= x; \r\ny_correct =    0; \r\nassert(isequal(BestFit(x,y),y_correct))\r\n\r\n\r\n%%\r\nx = [1:10];\r\ny= zeros(1,10); \r\ny_correct =    0; \r\nassert(isequal(BestFit(x,y),y_correct))\r\n\r\n","published":true,"deleted":false,"likes_count":3,"comments_count":4,"created_by":16381,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":23,"test_suite_updated_at":"2014-03-28T21:08:47.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2014-03-28T21:05:24.000Z","updated_at":"2025-11-28T18:47:31.000Z","published_at":"2014-03-28T21:06:16.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven a set of data as x and y, find the\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"http://en.wikipedia.org/wiki/Root_mean_square\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eRMS\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e value between the data and its best fit curve from a first degree polynomial\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eExample\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[ x = [1:10]\\n y = [2 7 3 5 9 11 1 6 2 0]\\n\\n bestfit_RMS = 3.3379]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":59152,"title":"Determine aquifer properties: steady pump test in confined or unconfined aquifers","description":"Problem statement\r\nWrite a function to determine the hydraulic conductivity  and radius of influence  using data from a steady pump test in either a confined aquifer or an unconfined aquifer. Along with the drawdowns  measured at distances  from the well, the input will include the pumping rate , the piezometric head  in the absence of pumping, and a variable b that is the thickness of the confined aquifer or empty for an unconfined aquifer. Determine  and  from a curve fit to either the drawdown or piezometric head . \r\nBackground\r\nConservation of mass for steady flow says that the flow past any cylinder of radius  centered on the well has to be equal to the pumping rate . Then if the flow is defined as positive toward the well (i.e., in the  direction), Darcy’s law states\r\n\r\nwhere  is the flow area, or surface area of the vertical sides of the cylinder. The key difference between the confined and unconfined cases is that the flow thickness (or height of the cylinder) is the (constant) thickness  for the confined aquifer and the (variable) thickness  for the unconfined aquifer. Along with the condition that no drawdown occurs for distances greater than the radius of influence—that is,\r\n\r\none can determine an expression for the drawdown for the confined aquifer or piezometric head  for the unconfined aquifer and fit the resulting expression to the measurements to determine the aquifer properties.","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 435.8px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 217.9px; transform-origin: 407px 217.9px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 63.0083px 8px; transform-origin: 63.0083px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eProblem statement\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 106px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 53px; text-align: left; transform-origin: 384px 53px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 171.408px 8px; transform-origin: 171.408px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eWrite a function to determine the hydraulic conductivity \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"font-family: \u0026quot;STIXGeneral\u0026quot;, \u0026quot;STIXGeneral-webfont\u0026quot;, serif; font-style: italic; font-weight: 400; color: rgb(0, 0, 0);\"\u003eK\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 74.3px 8px; transform-origin: 74.3px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e and radius of influence \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"font-family: \u0026quot;STIXGeneral\u0026quot;, \u0026quot;STIXGeneral-webfont\u0026quot;, serif; font-style: italic; font-weight: 400; color: rgb(0, 0, 0);\"\u003eR\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 120.567px 8px; transform-origin: 120.567px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e using data from a steady pump test in either a confined aquifer or an unconfined aquifer. Along with the drawdowns \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"font-family: \u0026quot;STIXGeneral\u0026quot;, \u0026quot;STIXGeneral-webfont\u0026quot;, serif; font-style: italic; font-weight: 400; color: rgb(0, 0, 0);\"\u003es\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 74.2917px 8px; transform-origin: 74.2917px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e measured at distances \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"font-family: \u0026quot;STIXGeneral\u0026quot;, \u0026quot;STIXGeneral-webfont\u0026quot;, serif; font-style: italic; font-weight: 400; color: rgb(0, 0, 0);\"\u003er\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 57.1667px 8px; transform-origin: 57.1667px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e from the well, the input will include the pumping rate \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"vertical-align:-6px\"\u003e\u003cimg src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAoCAYAAACSN4jeAAAC30lEQVRYR+1XTUhVQRTWvW1qZZsWtTDUbBNJ7VwoiCIkVNCysFq2MDJciIiCLsSVP9i+BImoTRkuhMJq0SaojaAgtUoI2tf3wRw4d+7MvWce78kD78DHfe/dmTnf+c6Zc+a1tjTpaG1SXi0VsdTIVIqdeMVuQYEbwCWgQ6nxDp9fAiupCvnzU3OMhBaBdmADeAaQDEc/sOSI/sDzOnBUK0ErsdMwsAzcBP4C94AXAaOcdwC0ASR3sZHEaOyDU4J2bkdICYdVfBhzX57iOVcLOYtiu9j4qtt8Dc/7JYYY0rduzi88zzaCmPaeRroMeaOJkdMFYC+VXJFivoGyEIrtWtdluBcR0yG0qsXNHwA8KDKsDpmI+V4vYNVjYzh0+LnkjCH8ua1jirEUsDTISMmT71gkRTdFaZNiPzGLRZQjpViytPxWFlh8B4xKlxLzN7eUCNm0LvnFzUKh9PPrIeZZe58O4yesG/Ty6wq+zwD7QA/ALsH9c63LQsx6qsrKhLzXB4mFuBvI1ccQMT+UVmK6vLDBs+Hrwbw9BZxTClHBz0AuXWKnUie/JZQT2HzWsQiFkCSfA6HG/s+ty3CJEZvH5HG3IOS9VkK85m80PAT4LUj2Cx0kUToTmRgxhvMbICUjViSZN5sArzl0IJjI+F2MFxHLFPGilkQlXjlyLJQjwBcn1XkXOhZhvnsEhO5noqyFWIZ02bWHyj0BhgF9heZl8SPAazSVKrup1p2YeCw5Yj2hXEdVJddYFhj2olAmKUYD0jfZXiZVOIV06MlTOAXIQahb8ovHb7wQCgnm1WvgK7CllKEqdwFW/FFA/1GhaiwlvZ4nUi4yByyWY/R4HTgE/riN5HpdpBTf0fgdRVbmS23UNqXU5Jp9rPLzXv8+EDYS7gPY5zoBlgkO1q8dYBuInc5YS7qGNZd9R8pOZZk6qe9Jbhpg85bBf1K5/wTHTczsSEXMLJWbWClWKZaqQOr8/+6UrClQAbvIAAAAAElFTkSuQmCC\" width=\"19\" height=\"20\" alt=\"Q0\" style=\"width: 19px; height: 20px;\"\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 70.7917px 8px; transform-origin: 70.7917px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e, the piezometric head \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"font-family: \u0026quot;STIXGeneral\u0026quot;, \u0026quot;STIXGeneral-webfont\u0026quot;, serif; font-style: italic; font-weight: 400; color: rgb(0, 0, 0);\"\u003eH\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 133.817px 8px; transform-origin: 133.817px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e in the absence of pumping, and a variable \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 3.85px 8px; transform-origin: 3.85px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003eb\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 34.2167px 8px; transform-origin: 34.2167px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e that is the thickness of the confined aquifer or empty for an unconfined aquifer. Determine \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"font-family: \u0026quot;STIXGeneral\u0026quot;, \u0026quot;STIXGeneral-webfont\u0026quot;, serif; font-style: italic; font-weight: 400; color: rgb(0, 0, 0);\"\u003eK\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 15.5583px 8px; transform-origin: 15.5583px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e and \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"font-family: \u0026quot;STIXGeneral\u0026quot;, \u0026quot;STIXGeneral-webfont\u0026quot;, serif; font-style: italic; font-weight: 400; color: rgb(0, 0, 0);\"\u003eR\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 89.05px 8px; transform-origin: 89.05px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e from a curve fit to either the drawdown or piezometric head \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"vertical-align:-5px\"\u003e\u003cimg src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIIAAAAkCAYAAABFRuIOAAAEAklEQVR4Xu1aO69NQRR2eyKh0lBQEDdoPEKIiFDdSuLVSjx+AAmFKAShUnlUCslFJyoKEiLx6IRQUGioaOj5vpNZsc42e2bPPZmz90zWJF/uOffM3nvWWt96zeyZRTZMA9DAjGnBNEANGBGMByMNGBGMCEYE48A/DVhEMDYkR4TVTmdfTHf1aSAUEfZB3L3ALmA9sBi4BpwpXA0k9AlgDljbkOU1vj8HrgA/3W/UwzHgYGPud3x/BJxVc4tVTSw1LINk8wCVwbEfeFKstP8v/I/61wN8PhUw6i38dtzN/42/m4BqomOMCJT7vvMGesBsDex3xiTJfygibMHntwGSayLQGegU1YwuRPgGaVe4SFCT8Icg0z1nyS4k/4i5kkrO4fPlalgAQWJE2Iw5b5zADJs3KxI+xcOb0WNNTWmBNo0RgYXQJWf82oTXHh4juY4en6CPHRWlyJF5Y0R4jDksFGsTnp3DZxXdYiSXOomXsKgkMaoaMSL8grRsG28DbLk4SIzrAPMlq+c9QKjIGqLCTmJRN9zCupBc6iReEoseQ5KXqf0isB34ACwF3gEbgAsACT4asX0ERgSOw+4i5lX233edQkgS9t7bOkpPEsk9O17inTZpsZbi4c3osRwrkj2GSWTIfS3rmq8AbSRtP//3EqATj3VJISJcxeTTAL1+FSAeRCOwfxYvKZEI2sNTDMLosS7lgh7n6vpOk1ei4RihQ0R4BSG2Oo9/iL+7gSPOG3Q3odNGj3J3frReOy+KtcSSBjm3JFk1EXQ6k6gwVvC2EUG3SyyOdjrITpp+iKSNzpboeaJeexcPlzpJSLPQnVW9i7kQFTAyL0m4UKc0ieqtKa2NCLpd8ilAuonoAxIWPq2psnY+L3Z2omuaSWWdNhEon94rCabwNiLoG/jCoXhJSn0wLUPHnqMNEjs7kTqJ9yxRVl0cBlNbGxGkmPIdrugcm1q99901pHq43nSKRY8YAfv6nfZ6CrB74PCeqfiIoHOLb/Nkkt3GvomQ4uGph1J9Gbr5XHYFtJuuB7TcXkL7iKA3W3yhU3KshEoyju8tlHAIk3JwlHooNRQisNu7A+hzIU1qb+fjI0Ls2FnqA6YF1hLvAXYVQz+bT/VwvelU0rEzayDfeqU28tZFPiKIoX030/UBIwLHeffgoXhE2zp0eOSc0PlCM6+WtH/gM7ik89aXb5pEiB07s354AfD9BBKhBBKEXjXjVrl+9Y5zDwBHASmuhFhU4rNGyB0a+eUciK/QbQRWugXyjIGy6lfwxtYeO3QamqC2nkwaMCJkUmxptzUilGaxTOs1ImRSbGm3NSKUZrFM6zUiZFJsabc1IpRmsUzrNSJkUmxptzUilGaxTOv9C9Mv6SVWCeAgAAAAAElFTkSuQmCC\" width=\"65\" height=\"18\" alt=\"h = H - s\" style=\"width: 65px; height: 18px;\"\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 3.88333px 8px; transform-origin: 3.88333px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 40.8333px 8px; transform-origin: 40.8333px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eBackground\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 43px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21.5px; text-align: left; transform-origin: 384px 21.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 255.925px 8px; transform-origin: 255.925px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eConservation of mass for steady flow says that the flow past any cylinder of radius \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"font-family: \u0026quot;STIXGeneral\u0026quot;, \u0026quot;STIXGeneral-webfont\u0026quot;, serif; font-style: italic; font-weight: 400; color: rgb(0, 0, 0);\"\u003er\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 123.283px 8px; transform-origin: 123.283px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e centered on the well has to be equal to the pumping rate \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"vertical-align:-6px\"\u003e\u003cimg src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAoCAYAAACSN4jeAAAC30lEQVRYR+1XTUhVQRTWvW1qZZsWtTDUbBNJ7VwoiCIkVNCysFq2MDJciIiCLsSVP9i+BImoTRkuhMJq0SaojaAgtUoI2tf3wRw4d+7MvWce78kD78DHfe/dmTnf+c6Zc+a1tjTpaG1SXi0VsdTIVIqdeMVuQYEbwCWgQ6nxDp9fAiupCvnzU3OMhBaBdmADeAaQDEc/sOSI/sDzOnBUK0ErsdMwsAzcBP4C94AXAaOcdwC0ASR3sZHEaOyDU4J2bkdICYdVfBhzX57iOVcLOYtiu9j4qtt8Dc/7JYYY0rduzi88zzaCmPaeRroMeaOJkdMFYC+VXJFivoGyEIrtWtdluBcR0yG0qsXNHwA8KDKsDpmI+V4vYNVjYzh0+LnkjCH8ua1jirEUsDTISMmT71gkRTdFaZNiPzGLRZQjpViytPxWFlh8B4xKlxLzN7eUCNm0LvnFzUKh9PPrIeZZe58O4yesG/Ty6wq+zwD7QA/ALsH9c63LQsx6qsrKhLzXB4mFuBvI1ccQMT+UVmK6vLDBs+Hrwbw9BZxTClHBz0AuXWKnUie/JZQT2HzWsQiFkCSfA6HG/s+ty3CJEZvH5HG3IOS9VkK85m80PAT4LUj2Cx0kUToTmRgxhvMbICUjViSZN5sArzl0IJjI+F2MFxHLFPGilkQlXjlyLJQjwBcn1XkXOhZhvnsEhO5noqyFWIZ02bWHyj0BhgF9heZl8SPAazSVKrup1p2YeCw5Yj2hXEdVJddYFhj2olAmKUYD0jfZXiZVOIV06MlTOAXIQahb8ovHb7wQCgnm1WvgK7CllKEqdwFW/FFA/1GhaiwlvZ4nUi4yByyWY/R4HTgE/riN5HpdpBTf0fgdRVbmS23UNqXU5Jp9rPLzXv8+EDYS7gPY5zoBlgkO1q8dYBuInc5YS7qGNZd9R8pOZZk6qe9Jbhpg85bBf1K5/wTHTczsSEXMLJWbWClWKZaqQOr8/+6UrClQAbvIAAAAAElFTkSuQmCC\" width=\"19\" height=\"20\" alt=\"Q0\" style=\"width: 19px; height: 20px;\"\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 203.417px 8px; transform-origin: 203.417px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e. Then if the flow is defined as positive toward the well (i.e., in the \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"vertical-align:-5px\"\u003e\u003cimg src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAkCAYAAAD7PHgWAAABRUlEQVRYR2NkGOSAcZC7j2HUgZTG0GgIjoYgpSFAqf7RNDgagpSGAKX6R9PgUAlBIaBD04FYEIjtgFgOiA8DcTgQmwLxZCA2B+IbQKyJ7Cl6RTHIgSZA7ALEpVAHZALps0C8D4h5kBwlDGS/g/Hp5UCYfW5Axk4oxwzquGAgrQTE04F4FxBHDqQDu6AhCIrKj0B8CIjLkKMUnY0rBP/j00SE3BegGl4s6k4AxWBpDeRAL+TQwmYuPR0ISodvkRwRAWSvJORZeqZBUI5dAXXQSWJCD6SWng4EhVYY1IFEhR69HfgMaKEkED8HYh1CaQ8W9fQKQVBhfApqaTehnIucLunlwEqgpW1Qi0Hl32lCmYPeIYhcvFgTG730SoPIxcsqoKWg3Ew0oFcUE+0gdIWjDiQ76KAaR0NwNAQpDQFK9Y+mQUpDEACuOywlLMoU/AAAAABJRU5ErkJggg==\" width=\"20\" height=\"18\" alt=\"-r\" style=\"width: 20px; height: 18px;\"\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 90.8833px 8px; transform-origin: 90.8833px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e direction), Darcy’s law states\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 34.8px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 17.4px; text-align: left; transform-origin: 384px 17.4px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"vertical-align:-15px\"\u003e\u003cimg src=\"data:image/png;base64,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\" width=\"79.5\" height=\"35\" alt=\"Q0 = K(dh/dr)A\" style=\"width: 79.5px; height: 35px;\"\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 84px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 42px; text-align: left; transform-origin: 384px 42px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 21.0083px 8px; transform-origin: 21.0083px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003ewhere \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"font-family: \u0026quot;STIXGeneral\u0026quot;, \u0026quot;STIXGeneral-webfont\u0026quot;, serif; font-style: italic; font-weight: 400; color: rgb(0, 0, 0);\"\u003eA\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 352.267px 8px; transform-origin: 352.267px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e is the flow area, or surface area of the vertical sides of the cylinder. The key difference between the confined and unconfined cases is that the flow thickness (or height of the cylinder) is the (constant) thickness \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"font-family: \u0026quot;STIXGeneral\u0026quot;, \u0026quot;STIXGeneral-webfont\u0026quot;, serif; font-style: italic; font-weight: 400; color: rgb(0, 0, 0);\"\u003eb\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 75.4583px 8px; transform-origin: 75.4583px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e for the confined aquifer and the (variable) thickness \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"font-family: \u0026quot;STIXGeneral\u0026quot;, \u0026quot;STIXGeneral-webfont\u0026quot;, serif; font-style: italic; font-weight: 400; color: rgb(0, 0, 0);\"\u003eh\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 282.008px 8px; transform-origin: 282.008px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e for the unconfined aquifer. Along with the condition that no drawdown occurs for distances greater than the radius of influence—that is,\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"vertical-align:-5px\"\u003e\u003cimg src=\"data:image/png;base64,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\" width=\"64\" height=\"18.5\" alt=\"h(R) = H\" style=\"width: 64px; height: 18.5px;\"\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 297.975px 8px; transform-origin: 297.975px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eone can determine an expression for the drawdown for the confined aquifer or piezometric head \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"font-family: \u0026quot;STIXGeneral\u0026quot;, \u0026quot;STIXGeneral-webfont\u0026quot;, serif; font-style: italic; font-weight: 400; color: rgb(0, 0, 0);\"\u003eh\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 59.9px 8px; transform-origin: 59.9px 8px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e for the unconfined aquifer and fit the resulting expression to the measurements to determine the aquifer properties.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function [K,R] = steadyPumpTest(r,s,Q0,H,b)\r\n%  K = hydraulic conductivity\r\n%  R = radius of influence\r\n%  r = distance from the well\r\n%  s = drawdown = H - h \r\n%  Q0 = pumping rate\r\n%  H = piezometric head without pumping\r\n%  b = {aquifer thickness if confined, [] if unconfined}\r\n  h = H-s;\r\n  K = Q0/(2*pi*r*b);\r\n  R = interp1(s,r,0);\r\nend","test_suite":"%% Confined aquifer\r\nr = [35 75 110 150];                    %  Distance from well (m)\r\ns = [0.9 0.6 0.3 0.1];                  %  Drawdown (m)\r\nH = 15;                                 %  Piezometric head without pumping (m)\r\nQ0 = 2592;                              %  Pumping rate (m3/d)\r\nb = 25;                                 %  Aquifer thickness (m)\r\n[K,R] = steadyPumpTest(r,s,Q0,H,b);\r\nK_correct = 30.0;\r\nR_correct = 192.4;\r\nassert(abs(K-K_correct)/K_correct \u003c 1e-3)\r\nassert(abs(R-R_correct)/R_correct \u003c 1e-3)\r\n\r\n%% Unconfined aquifer\r\nr = [50 100];                           %  Distance from well (m)\r\ns = [0.42 0.27];                        %  Drawdown (m)\r\nH = 15;                                 %  Piezometric head without pumping (m)\r\nQ0 = 8000;                              %  Pumping rate (m3/d)\r\n[K,R] = steadyPumpTest(r,s,Q0,H,[]);\r\nK_correct = 401.5;\r\nR_correct = 354.5;\r\nassert(abs(K-K_correct)/K_correct \u003c 1e-3)\r\nassert(abs(R-R_correct)/R_correct \u003c 1e-3)\r\n\r\n%% Confined aquifer\r\nr = [25 47 70 96 131];                  %  Distance from well (m)\r\ns = [12.32 10.1 8.69 7.53 6.45];        %  Drawdown (m)\r\nH = 50;                                 %  Piezometric head without pumping (m)\r\nQ0 = 4600;                              %  Pumping rate (m3/d)\r\nb = 25;                                 %  Aquifer thickness (m)\r\n[K,R] = steadyPumpTest(r,s,Q0,H,b);\r\nK_correct = 8.25;\r\nR_correct = 804.9;\r\nassert(abs(K-K_correct)/K_correct \u003c 1e-3)\r\nassert(abs(R-R_correct)/R_correct \u003c 1e-3)\r\n\r\n%% Unconfined aquifer\r\nr = [25 47 70 96 131];                  %  Distance from well (m)\r\ns = [6.61 5.33 4.54 3.93 3.33];         %  Drawdown (m)\r\nH = 50;                                 %  Piezometric head without pumping (m)\r\nQ0 = 4600;                              %  Pumping rate (m3/d)\r\n[K,R] = steadyPumpTest(r,s,Q0,H,[]);\r\nK_correct = 8.213;\r\nR_correct = 796.9;\r\nassert(abs(K-K_correct)/K_correct \u003c 1e-3)\r\nassert(abs(R-R_correct)/R_correct \u003c 1e-3)\r\n\r\n%% Confined aquifer\r\nr = [54 112 140 222];                   %  Distance from well (m)\r\ns = [1.12 0.87 0.74 0.6];               %  Drawdown (m)\r\nH = 64;                                 %  Piezometric head without pumping (m)\r\nQ0 = 2300;                              %  Pumping rate (m3/d)\r\nb = 43;                                 %  Aquifer thickness (m)\r\n[K,R] = steadyPumpTest(r,s,Q0,H,b);\r\nK_correct = 22.78;\r\nR_correct = 1087;\r\nassert(abs(K-K_correct)/K_correct \u003c 1e-3)\r\nassert(abs(R-R_correct)/R_correct \u003c 1e-3)\r\n\r\n%% Unconfined aquifer\r\nr = [43 98 151 208];                    %  Distance from well (m)\r\ns = [2.65 1.81 1.38 1.06];              %  Drawdown (m)\r\nH = 75;                                 %  Piezometric head without pumping (m)\r\nQ0 = 1300;                              %  Pumping rate (m3/d)\r\n[K,R] = steadyPumpTest(r,s,Q0,H,[]);\r\nK_correct = 2.805;\r\nR_correct = 605.9;\r\nassert(abs(K-K_correct)/K_correct \u003c 1e-3)\r\nassert(abs(R-R_correct)/R_correct \u003c 1e-3)\r\n\r\n%% Confined aquifer\r\nr = [35 75 110 150];                    %  Distance from well (m)\r\ns = [0.9 0.6 0.3 0.1];                  %  Drawdown (m)\r\nH = 15;                                 %  Piezometric head without pumping (m)\r\nQ0 = 2592;                              %  Pumping rate (m3/d)\r\nb = 60*rand;                            %  Aquifer thickness (m)\r\n[K,R] = steadyPumpTest(r,s,Q0,H,b);\r\nK_correct = 750/b;\r\nR_correct = 192.4;\r\nassert(abs(K-K_correct)/K_correct \u003c 1e-3)\r\nassert(abs(R-R_correct)/R_correct \u003c 1e-3)\r\n\r\n%%\r\nfiletext = fileread('steadyPumpTest.m');\r\nillegal = contains(filetext, 'assignin') || contains(filetext, 'assert') || contains(filetext,'regexp'); \r\nassert(~illegal)\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":46909,"edited_by":46909,"edited_at":"2023-11-05T15:51:52.000Z","deleted_by":null,"deleted_at":null,"solvers_count":2,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2023-11-05T15:51:46.000Z","updated_at":"2026-02-12T14:11:09.000Z","published_at":"2023-11-05T15:51:52.000Z","restored_at":null,"restored_by":null,"spam":null,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eProblem statement\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eWrite a function to determine the hydraulic conductivity \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"K\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eK\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e and radius of influence \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"R\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eR\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e using data from a steady pump test in either a confined aquifer or an unconfined aquifer. Along with the drawdowns \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"s\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003es\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e measured at distances \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"r\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003er\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e from the well, the input will include the pumping rate \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"Q0\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eQ_0\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e, the piezometric head \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"H\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eH\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e in the absence of pumping, and a variable \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eb\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e that is the thickness of the confined aquifer or empty for an unconfined aquifer. Determine \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"K\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eK\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e and \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"R\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eR\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e from a curve fit to either the drawdown or piezometric head \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"h = H - s\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eh = H-s\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e. \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eBackground\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eConservation of mass for steady flow says that the flow past any cylinder of radius \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"r\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003er\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e centered on the well has to be equal to the pumping rate \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"Q0\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eQ_0\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e. Then if the flow is defined as positive toward the well (i.e., in the \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"-r\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003e-r\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e direction), Darcy’s law states\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"true\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"Q0 = K(dh/dr)A\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eQ_0 = K \\\\frac{dh}{dr} A\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ewhere \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eA\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e is the flow area, or surface area of the vertical sides of the cylinder. The key difference between the confined and unconfined cases is that the flow thickness (or height of the cylinder) is the (constant) thickness \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"b\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eb\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e for the confined aquifer and the (variable) thickness \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"h\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eh\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e for the unconfined aquifer. Along with the condition that no drawdown occurs for distances greater than the radius of influence—that is,\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"true\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"h(R) = H\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eh(R) = H\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eone can determine an expression for the drawdown for the confined aquifer or piezometric head \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"h\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eh\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e for the unconfined aquifer and fit the resulting expression to the measurements to determine the aquifer properties.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":1416,"title":"Find the function","description":"Given a set of point (x,y) and the coordinate x of a new point, find the y value of new point.\r\n\r\n","description_html":"\u003cp\u003eGiven a set of point (x,y) and the coordinate x of a new point, find the y value of new point.\u003c/p\u003e","function_template":"function y = new_point_fit(M,x)\r\n  y = x;\r\nend","test_suite":"%%\r\nM = [ 0.091273   0.060806\r\n   0.130562   0.076233\r\n   0.184484   0.170092\r\n   0.197685   0.244964\r\n   0.226948   0.308231\r\n   0.232963   0.309789\r\n   0.321582   0.329059\r\n   0.343480   0.384513\r\n   0.612326   0.505868\r\n   0.691264   0.529026\r\n   0.710301   0.595951\r\n   0.733409   0.637104\r\n   0.774992   0.649954\r\n   0.836475   0.717744]\r\nx = 0.881524;\r\ny_correct = 0.857148;\r\nassert(abs((new_point_fit(M,x)-y_correct)/y_correct)\u003c=0.1)\r\n\r\n\r\n\r\n\r\n%%\r\nM = [  0.016105   0.042602\r\n   0.048845   0.100409\r\n   0.135680   0.162205\r\n   0.382335   0.174843\r\n   0.409982   0.219579\r\n   0.505942   0.247533\r\n   0.535645   0.463607\r\n   0.553299   0.539963\r\n   0.562505   0.629237\r\n   0.605515   0.665519\r\n   0.609794   0.668600\r\n   0.718378   0.761209\r\n   0.803968   0.822402\r\n   0.996661   0.883440]\r\nx = 0.999173;\r\ny_correct = 0.954605;\r\nassert(abs((new_point_fit(M,x)-y_correct)/y_correct)\u003c=0.1)\r\n\r\n\r\n\r\n\r\n%%\r\nM = [  0.0705596   0.0010882\r\n   0.0880270   0.1284582\r\n   0.1557501   0.1819287\r\n   0.4294053   0.1980035\r\n   0.4354657   0.4193907\r\n   0.5222490   0.6849248\r\n   0.6131108   0.7573705\r\n   0.6277358   0.7864304\r\n   0.6678857   0.8790018]\r\nx = 0.9916796;\r\ny_correct = 0.7335639;\r\nassert(abs((new_point_fit(M,x)-y_correct)/y_correct)\u003c=0.1)\r\n","published":true,"deleted":false,"likes_count":0,"comments_count":12,"created_by":3919,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":28,"test_suite_updated_at":"2013-04-12T15:23:54.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2013-04-10T20:49:41.000Z","updated_at":"2024-11-20T13:11:34.000Z","published_at":"2013-04-10T21:00:17.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven a set of point (x,y) and the coordinate x of a new point, find the y value of new point.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":44508,"title":"Curve fitting (non-linear functions) \u0026 function handles","description":"In this problem you are provided some raw data. You need to find a way of summarising the data with just a few parameters, so that it can be reconstructed. You then need to provide a handle to your own (generic) custom function that will indeed reproduce the raw data when provided with the parameters that you determine.\r\nConsider a non-linear scalar function y = mˣ + c. Suppose x is the vector [3 2 1 4]. The function would operate elementwise on x; for example, if m=2 and c=3 then y = [11 7 5 19]. You are provided with both the vector x and the vector y. Every number will be provided in some form of an integer data type. The scalar parameters m and c are both whole numbers (although they're not provided directly).\r\nSo here you should output two things:\r\nthe handle to a generic function that implements the relevant non-linear function (i.e. of the form y = mˣ + c) taking two inputs, namely 1 a set of parameters and 2 the vector x, and outputting the corresponding vector y (in any data type); and\r\na set of parameter values (m and c) wrapped into a single MATLAB variable (of any data type).\r\nAs the parameters will be used in your own function, the data type will be set by you.\r\nSo, for the above example, you could return a function handle @myFunc that you have defined, along with the variable param that has two fields such that param.base = 2 and param.translation = 3.\r\nOr, if you have defined your function differently, then you could return the function handle @myFn along with a cell array variable prms that has four elements such that prms{1}='positive', prms{2}=uint8(3), prms{3} = 'positive' and prms{4} = uint8(2).\r\nAnd so on.\r\nNote 1: the parameter m can be assumed to have values between -30 and +30 (inclusive); the parameter c can be assumed to have values between -10000 and +10000 (inclusive); the elements in x are positive.\r\nNote 2: if the code runs too slowly, then it will also fail the Test Suite.\r\nNote 3: there might not be only one unique pair of the m \u0026 c parameter values that is correct — the individual values of m \u0026 c are not tested here, only the values of y that they predict are examined.\r\nSee also Problem 44507. Curve fitting (linear functions) \u0026 function handles — easier.","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.44px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: none solid rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 633px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 316.5px; transform-origin: 407px 316.5px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 63px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 31.5px; text-align: left; transform-origin: 384px 31.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eIn this problem you are provided some raw data. You need to find a way of summarising the data with just a few parameters, so that it can be reconstructed. You then need to provide a handle to your own (generic) custom function that will indeed reproduce the raw data when provided with the parameters that you determine.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 84px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 42px; text-align: left; transform-origin: 384px 42px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eConsider a non-linear scalar function\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003ey = mˣ + c\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e. Suppose\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003ex\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e is the vector\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e[3 2 1 4]\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e. The function would operate elementwise on\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003ex\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e; for example, if\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003em=2\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e and\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003ec=3\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e then\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003ey = [11 7 5 19]\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e. You are provided with both the vector\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003ex\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e and the vector\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003ey\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e. Every number will be provided in some form of an\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://au.mathworks.com/help/matlab/matlab_prog/integers.html\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003einteger\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e data type. The scalar parameters\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003em\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e and\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003ec\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e are both whole numbers (although they're not provided directly).\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eSo here you should output two things:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003col style=\"block-size: 81px; font-family: Helvetica, Arial, sans-serif; list-style-type: decimal; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; perspective-origin: 391px 40.5px; transform-origin: 391px 40.5px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"block-size: 61px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 30.5px; text-align: left; transform-origin: 363px 30.5px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003ethe handle to a\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003egeneric\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e function that implements the relevant non-linear function (i.e. of the form\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003ey = mˣ + c\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e) taking two inputs, namely\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003e1\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e a set of parameters and\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003e2\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e the vector\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003ex\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e, and outputting the corresponding vector\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003ey\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e (in any data type); and\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10px; text-align: left; transform-origin: 363px 10px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003ea set of parameter values (m and c) wrapped into a single MATLAB variable (of any data type).\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ol\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eAs the parameters will be used in your own function, the data type will be set by you.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eSo, for the above example, you\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003ecould\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e return a\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://au.mathworks.com/help/matlab/function-handles.html\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003efunction handle\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e@myFunc\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e that you have defined, along with the variable\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003eparam\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e that has two\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://au.mathworks.com/help/matlab/structures.html\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003efields\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e such that\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003eparam.base\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e = 2 and\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003eparam.translation\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e = 3.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 63px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 31.5px; text-align: left; transform-origin: 384px 31.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eOr, if you have defined your function differently, then you\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003ecould\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e return the\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://au.mathworks.com/help/matlab/function-handles.html\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003efunction handle\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e@myFn\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e along with a\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://au.mathworks.com/help/matlab/cell-arrays.html\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003ecell array\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e variable\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003eprms\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e that has four elements such that\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003eprms{1}='positive'\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e,\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003eprms{2}=uint8(3)\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e,\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003eprms{3} = 'positive'\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e and\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003eprms{4} = uint8(2)\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eAnd so on.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eNote\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; font-weight: 700; \"\u003e1\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e: the parameter\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-style: italic; \"\u003em\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e can be assumed to have values between -30 and +30 (inclusive); the parameter\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-style: italic; \"\u003ec\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e can be assumed to have values between -10000 and +10000 (inclusive); the elements in\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; font-style: italic; \"\u003ex\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e are positive.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eNote\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; font-weight: 700; \"\u003e2\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e: if the code runs too slowly, then it will also fail the Test Suite.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eNote\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; font-weight: 700; \"\u003e3\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"font-style: italic; \"\u003e: there might not be only one unique pair of the m \u0026amp; c parameter values that is correct — the individual values of m \u0026amp; c are not tested here, only the values of y that they predict are examined.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cul style=\"block-size: 20px; font-family: Helvetica, Arial, sans-serif; list-style-type: square; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; perspective-origin: 391px 10px; transform-origin: 391px 10px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363px 10px; text-align: left; transform-origin: 363px 10px; white-space: pre-wrap; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003eSee also\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003ca target='_blank' href = \"https://www.mathworks.com/matlabcentral/cody/problems/44507\"\u003e\u003cspan style=\"\"\u003e\u003cspan style=\"\"\u003eProblem 44507. Curve fitting (linear functions) \u0026amp; function handles\u003c/span\u003e\u003c/span\u003e\u003c/a\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; \"\u003e\u003cspan style=\"\"\u003e — easier.\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"%{\r\n    Some comments about this code....\r\n%}\r\nfunction [afunctionhandle asetofparameters] = generateFit(x, y)    % \u003c---This function is called first by the Test Suite\r\n    % Here you are going to figure out the values of the parameters\r\n    \r\n    afunctionhandle\r\n    asetofparameters\r\n    \r\nfunction nameofyouroutputvectorvariable = nameofyourgenericnonlinearfunction(nameofyourparametersetvariable, nameofyourxvectorvariable)\r\n    % Here you are providing code representing y = mˣ + c.  ","test_suite":"%% Hard-coded m and c (1).\r\nfor i = 1 : 5\r\n    x = uint64(randi(10):60-randi(40));\r\n    m = uint64(2);\r\n    c = uint64(3);\r\n    y_correct = m.^x + c;\r\n    [fh, pars] = generateFit(x, y_correct);\r\n    y = fh(pars, x);\r\n    assert( isequal(y,y_correct) )\r\nend;\r\n\r\n%% Hard-coded m and c (2).\r\nfor i = 1 : 5\r\n    x = uint64(randi(10):40-randi(10));\r\n    m = uint64(3);\r\n    c = uint64(2);\r\n    y_correct = m.^x + c;\r\n    [fh, pars] = generateFit(x, y_correct);\r\n    y = fh(pars, x);\r\n    assert( isequal(y,y_correct) )\r\nend;\r\n\r\n%% Dynamic m and c.\r\nfor i = 1 : 5\r\n    x = int64( randi(5):25-randi(5) );\r\n    m = int64( randi(10) - 5 );\r\n    c = int64( 10000 - randi(20000) );\r\n    y_correct = m.^x + c;\r\n    [fh, pars] = generateFit(x, y_correct);\r\n    y = fh(pars, x);\r\n    assert( isequal(y,y_correct) )\r\nend;\r\n\r\n%% Variable spacing in x vector, and values in reverse sequence.\r\nfor i = 1 : 100      % EDITED 2021-07-19.  Increased iterations from 5 to 100.\r\n    x = int64( +25-randi(5) : -randi(5) : randi(5) );\r\n    m = int64( randi(10) - 5 );\r\n    c = int64( 10000 - randi(20000) );\r\n    y_correct = m.^x + c;\r\n    try      % EDITED 2021-07-19.  Inserted try–catch structure to provide more feedback on failures.\r\n        [fh, pars] = generateFit(x, y_correct);\r\n        y = fh(pars, x);\r\n        assert( isequal(y,y_correct) )\r\n    catch solnErr\r\n        disp(['Error identifier:  ' solnErr.identifier])\r\n        fprintf('m:\\t%d\\r\\n', m)\r\n        fprintf('c:\\t%d\\r\\n', c)\r\n        fprintf('user parameters:\\r\\n')\r\n        pars\r\n        rethrow(solnErr)\r\n    end;\r\nend;\r\n\r\n%% Variable spacing in x vector, and values out of sequence.\r\nfor i = 1 : 100      % EDITED 2021-07-19.  Increased iterations from 5 to 100.\r\n    x = int64( randi(5) : randi(5) : 25-randi(5) );\r\n    els = randperm( length(x) );\r\n    x = x(els);\r\n    m = int64( randi(10)-5 );\r\n    c = int64( 10000 - randi(20000) );\r\n    y_correct = m.^x + c;\r\n    try      % EDITED 2021-07-19.  Inserted try–catch structure to provide more feedback on failures.\r\n        [fh, pars] = generateFit(x, y_correct);\r\n        y = fh(pars, x);\r\n        assert( isequal(y,y_correct) )\r\n    catch solnErr\r\n        disp(['Error identifier:  ' solnErr.identifier])\r\n        fprintf('m:\\t%d\\r\\n', m)\r\n        fprintf('c:\\t%d\\r\\n', c)\r\n        fprintf('user parameters:\\r\\n')\r\n        pars\r\n        rethrow(solnErr)\r\n    end;\r\nend;\r\n\r\n%% Duplicate values in x.\r\nfor i = 1 : 100      % EDITED 2021-07-19.  Increased iterations from 5 to 100.\r\n    x = int64( randi(5) : randi(5) : 25-randi(5) );\r\n    x = repmat(x, [1,50]);\r\n    els = randperm( length(x) );\r\n    x = x(els);\r\n    m = int64( randi(10)-5 );\r\n    c = int64( 10000 - randi(20000) );\r\n    y_correct = m.^x + c;\r\n    try      % EDITED 2021-07-19.  Inserted try–catch structure to provide more feedback on failures.\r\n        [fh, pars] = generateFit(x, y_correct);\r\n        y = fh(pars, x);\r\n        assert( isequal(y,y_correct) )\r\n    catch solnErr\r\n        disp(['Error identifier:  ' solnErr.identifier])\r\n        fprintf('m:\\t%d\\r\\n', m)\r\n        fprintf('c:\\t%d\\r\\n', c)\r\n        fprintf('user parameters:\\r\\n')\r\n        pars\r\n        rethrow(solnErr)\r\n    end;\r\nend;\r\n\r\n%% Different inputs.\r\nfor i = 1 : 5\r\n    x = int64( 1+randi(4) : 2*randi(2)-1 : 25-randi(4) );    % Must be odd step to ensure both odd and even values of x here.\r\n    els = randperm( length(x) );\r\n    x = x(els);\r\n    m = int64( randi(10)-5 );\r\n    c = int64( 10000 - randi(20000) );\r\n    y_correct = m.^x + c;\r\n    [fh, pars] = generateFit(x, y_correct);\r\n    y = fh(pars, x);\r\n    assert( isequal(y,y_correct) , 'Failed test 7a' )\r\n    idx = [1+randi(2) : length(x)-randi(2)];\r\n    z = x(idx);\r\n    y = fh(pars, z);\r\n    assert( isequal(y, y_correct(idx)) , 'Failed test 7b' )\r\n    z = x-1;\r\n    y = fh(pars, z);\r\n    assert( isequal(y, m.^z + c) , 'Failed test 7c' )\r\n    z = x(idx)+1;\r\n    y = fh(pars, z);\r\n    assert( isequal(y, m.^z + c) , 'Failed test 7d' )\r\nend;\r\n\r\n%% Check interchangeability of function handles.  \r\nfor i = 1 : 5\r\n    % Hard-coded m and c (1).\r\n    x1 = int64(randi(10):60-randi(40));\r\n    m = int64(2);\r\n    c = int64(3);\r\n    y1_correct = m.^x1 + c;\r\n    [fh1, pars1] = generateFit(x1, y1_correct);\r\n\r\n    % Hard-coded m and c (2).\r\n    x2 = int64(randi(10):60-randi(40));\r\n    m = int64(3);\r\n    c = int64(2);\r\n    y2_correct = m.^x2 + c;\r\n    [fh2, pars2] = generateFit(x2, y2_correct);\r\n\r\n    % According to the Problem Statament, fh1 and fh2 should be interchangeable.  \r\n    y1 = fh2(pars1, x1);\r\n    assert( isequal(y1,y1_correct) )\r\n    y2 = fh1(pars2, x2);\r\n    assert( isequal(y2,y2_correct) )\r\nend;\r\n\r\n%% Large values of m.\r\nfor i = 1 : 5\r\n    x = int64( randi(3):13-randi(3) );\r\n    m = int64( randi(60) - 30 );\r\n    c = int64( 10000 - randi(20000) );\r\n    y_correct = m.^x + c;\r\n    [fh, pars] = generateFit(x, y_correct);\r\n    y = fh(pars, x);\r\n    assert( isequal(y,y_correct) )\r\nend;\r\n\r\n\r\n%% Check timing\r\ngenerateFit( uint32([1:10]), uint32(7.^[1:10] - 7) );\r\ntic\r\nfor i = 1 : 10\r\n    x = uint64(randi(10):25-randi(10));\r\n    x = repmat(x, [1,100]);\r\n    m = uint64( randi(5) );\r\n    c = uint64( randi(1000) );\r\n    y_correct = m.^x + c;\r\n    for j = 1 : 200\r\n        [fh, pars] = generateFit(x, y_correct);\r\n        y = fh(pars, x);\r\n    end;\r\n    assert( isequal(y,y_correct) )\r\nend;\r\nt = toc\r\nassert( t \u003c 2 )    % Seconds.\r\n\r\n%% Check parameter variable\r\n% Finally, check that the user is sending a small number of parameters to their\r\n% custom function (to be called via the function handle), and not simply sending\r\n% the entire vector y.  \r\nx = uint64(randi(10):60-randi(40));\r\nm = uint64(2);\r\nc = uint64(3);\r\ny_correct = m.^x + c;\r\n[fh, pars] = generateFit(x, y_correct);\r\ny = fh(pars, x);\r\nassert( isequal(y,y_correct) )\r\npw = whos('pars')\r\nassert( pw.bytes \u003c 100 , 'Parameter variable is too big.')\r\n","published":true,"deleted":false,"likes_count":1,"comments_count":4,"created_by":64439,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":2,"test_suite_updated_at":"2021-07-19T02:37:07.000Z","rescore_all_solutions":true,"group_id":1,"created_at":"2018-01-30T04:21:49.000Z","updated_at":"2021-07-19T02:37:07.000Z","published_at":"2018-01-30T13:00:26.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIn this problem you are provided some raw data. You need to find a way of summarising the data with just a few parameters, so that it can be reconstructed. You then need to provide a handle to your own (generic) custom function that will indeed reproduce the raw data when provided with the parameters that you determine.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eConsider a non-linear scalar function\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ey = mˣ + c\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e. Suppose\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ex\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e is the vector\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e[3 2 1 4]\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e. The function would operate elementwise on\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ex\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e; for example, if\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003em=2\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e and\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ec=3\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e then\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ey = [11 7 5 19]\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e. You are provided with both the vector\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ex\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e and the vector\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ey\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e. Every number will be provided in some form of an\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://au.mathworks.com/help/matlab/matlab_prog/integers.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003einteger\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e data type. The scalar parameters\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003em\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e and\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ec\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e are both whole numbers (although they're not provided directly).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eSo here you should output two things:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"2\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ethe handle to a\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003egeneric\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e function that implements the relevant non-linear function (i.e. of the form\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ey = mˣ + c\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e) taking two inputs, namely\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e1\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e a set of parameters and\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e2\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e the vector\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ex\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e, and outputting the corresponding vector\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ey\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e (in any data type); and\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"2\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ea set of parameter values (m and c) wrapped into a single MATLAB variable (of any data type).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAs the parameters will be used in your own function, the data type will be set by you.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eSo, for the above example, you\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ecould\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e return a\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://au.mathworks.com/help/matlab/function-handles.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003efunction handle\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e@myFunc\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e that you have defined, along with the variable\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eparam\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e that has two\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://au.mathworks.com/help/matlab/structures.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003efields\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e such that\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eparam.base\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e = 2 and\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eparam.translation\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e = 3.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eOr, if you have defined your function differently, then you\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ecould\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e return the\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://au.mathworks.com/help/matlab/function-handles.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003efunction handle\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e@myFn\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e along with a\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://au.mathworks.com/help/matlab/cell-arrays.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003ecell array\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e variable\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eprms\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e that has four elements such that\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eprms{1}='positive'\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e,\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eprms{2}=uint8(3)\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e,\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eprms{3} = 'positive'\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e and\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eprms{4} = uint8(2)\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAnd so on.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eNote\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e1\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e: the parameter\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003em\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e can be assumed to have values between -30 and +30 (inclusive); the parameter\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ec\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e can be assumed to have values between -10000 and +10000 (inclusive); the elements in\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ex\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e are positive.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eNote\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e2\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e: if the code runs too slowly, then it will also fail the Test Suite.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eNote\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e3\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e: there might not be only one unique pair of the m \u0026amp; c parameter values that is correct — the individual values of m \u0026amp; c are not tested here, only the values of y that they predict are examined.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eSee also\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/44507\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eProblem 44507. Curve fitting (linear functions) \u0026amp; function handles\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e — easier.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":49743,"title":"Determine aquifer properties: unsteady pump test in a confined aquifer","description":null,"description_html":"\u003cdiv style = \"text-align: start; line-height: 20.4333px; min-height: 0px; white-space: normal; color: rgb(0, 0, 0); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: rgb(0, 0, 0); white-space: normal; \"\u003e\u003cdiv style=\"block-size: 714.15px; display: block; min-width: 0px; padding-block-start: 0px; padding-top: 0px; perspective-origin: 407px 357.075px; transform-origin: 407px 357.075px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 63px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 31.5px; text-align: left; transform-origin: 384px 31.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 382.358px 7.79167px; transform-origin: 382.358px 7.79167px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eAn important task in characterizing the flow of groundwater is to determine the properties of the aquifer, or the underground water-bearing formation. One approach is to disturb the aquifer, observe its response, and fit a theoretical formula to the observations. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 106.633px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 53.3167px; text-align: left; transform-origin: 384px 53.3167px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 297.567px 7.79167px; transform-origin: 297.567px 7.79167px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eFor example, suppose a confined aquifer initially has no flow. In that case, the piezometric head \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"font-family: \u0026quot;STIXGeneral\u0026quot;, \u0026quot;STIXGeneral-webfont\u0026quot;, serif; font-style: italic; font-weight: 400; color: rgb(0, 0, 0);\"\u003eh\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 67.675px 7.79167px; transform-origin: 67.675px 7.79167px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e, or the level to which water would rise in an observation well, would be a uniform value \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"vertical-align:-6px\"\u003e\u003cimg src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB8AAAAoCAYAAAAG0SEsAAABYElEQVRYhe2WYRHDIAyFn4c5wMAMoKAK6qAOcFAL1TAJ84AFNNTC9oPkyBhL27Xwi++utztYeSXJCwCdTidhAUwAFvptJjoDWAG86BlbiTNOiJvW4k8S9q2Fb0i7dq3FByFuW4vPJLwiRqEpnsQf2fiAmIZq1jNIIZ/E2FOMvxCjczmjELjTE5AKj6NSxQULLR4QdxyQik66YKkhHsTiHp/dTbrg8rzfxeIe37ub8ZmSHEMf5fCHRSexeCjMe2XOIVrT0kd4fLtF5SHEh2xOyzenQ6aCXbPbFTLkOVrX4zrJDyCPGI3Ng8lCLybZ9RiDVCdr4R12zmZxbh2hnG8OOV8yuC+UouWw05Za85D5HunhYnLKe9pccfHSESpTkvf80+KG/ujwuzhGlP17WvwM7AJN/JDfj8B+LjWe3dV+Bs3nv1rxZWgdrsrpl8N3fYvoHo94AWl2DZOuqRrqTqezyRvS05ZMfyOVtAAAAABJRU5ErkJggg==\" alt=\"h0\" style=\"width: 15.5px; height: 20px;\" width=\"15.5\" height=\"20\"\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 124.467px 7.79167px; transform-origin: 124.467px 7.79167px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e. A well turned on and pumped at a rate \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"vertical-align:-6px\"\u003e\u003cimg src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACYAAAAoCAYAAACSN4jeAAABxklEQVRYhe2XUZGEMBBEnwccYAADKFgFOMABDtbCakDCesACGrDAfSRTGbIJJBzsVV2lq/IDCenp9EwGKCgo+D+ogQcwqNH8JaEOmIAVeCtSb/tsxhD+GhpFaMIo5qOz71eg/wapDljshuPBXFFu4eaj1SrMQJUx/yiI02hwSq1Am7CmVfMXjgPJRoVRSDZ5Ja7TxFKDycLgbRAyewqxSzO0YnuEOV7xA7o0AXrORz16ay/1mKT8GQNrpacrScE24pxjbLy1w5WkfvPxF1ulQwnT4K6x1IQCzmeVnzDPwPsRV6RbOz/56vIVSyWmszHkyyefWSq3RHJy5RKrcWotfBbVGnelaVRkJolO+RSPSdcR6yqk/IQSSW6XpHqnfXYUjRh+wRzN3hzfd+BKU2ztB8QTMRVq9dGJ/Yhl3h6x0LsoerZ9mKS5KDBHSN9ODIxBJXukle7JuwNvISY9WUqTqPHEFVCxxR6xrFb8gTvKCXec3Q7J2s7V/ZsoHurpsrIStuaPjdlu5v8p+coc1bElhVBlNxgxirV2DGzrVWhMxDvWvcqfXCqOiLcYT4hSD479JwHLr594N9v0d0HU78nsLgoKCgoC+AFiNNyLnb1SQwAAAABJRU5ErkJggg==\" alt=\"Q0\" style=\"width: 19px; height: 20px;\" width=\"19\" height=\"20\"\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 38.9083px 7.79167px; transform-origin: 38.9083px 7.79167px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e will create a cone of depression; that is, it will draw down the piezometric head to a level \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"vertical-align:-5px\"\u003e\u003cimg src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADoAAAAlCAYAAAATO/pmAAACQ0lEQVRoge2Z642DMAyAvx26AQuwQCdgAjZgAzboCp2hI7ADKzADK/R+JG58iEfimtP94JOqk2jjVxzb4eDi4uIicXeQUQE3Bzmn8QRaBzk1MMS/rtyBjmBoZ5Th5aRQARNOzt6BBzAD7/ixGPsAXh4GLagJzrqlcU9ytCpc2xACddaZcg3iQHByNKydCIE6ixshkI2HINnNUoNbzt1N4UkI6Fc0JEdLW8MUjTibGpt9v3hEIaU7I8o9K+0eM18GdSQYvDzwDSGVt9qNFLCS4lVHuR0pqNWBHmHgi/StSGnbqWeDev4m7Pqa4nemnicpoO+4FkI2aD17BUcCa6oHWlFN6ltSlMS4tWo8bTzfQxe9Nsp4kVcj+ozfbPKMiyfSJCKCdDVeOxt6Z3LQ2SNOytTTcXzWpWia2sxEcmRcKNPVeO38lDoq2TPHdaVF7I6tBX6qpqTmctce/E7rJaWOSvbM2AYTs6MdyZG1ajbufAfljup52pJ+4mhxO9NFYKn46HxCSsEcltljwVyM9hTnTEsDwdkc9KXBOmBY+vYnDbYKjZ6WhKUC+U1OX5NjkBuYNV6W9UfXMjFM0nbtQi67fpRKOccgB+m5RewNAtqwNn62FMysT00aPZRYh3LTXH10LdNpvTYDa3KuT7qtWK9zPYa0lSG6Z/tgt/H7ox2QaWevXXSkkc/K2Zf7LHrsLSOHDodLtxcj9reHe1SElHV/7WnlhuOrScVy/v4XyD3Wy1nv98Su3PApGg0+/9q4uLi4+Ht+AFQA2/P927ZEAAAAAElFTkSuQmCC\" alt=\"h(r)\" style=\"width: 29px; height: 18.5px;\" width=\"29\" height=\"18.5\"\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 24.8917px 7.79167px; transform-origin: 24.8917px 7.79167px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e, where \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"font-family: \u0026quot;STIXGeneral\u0026quot;, \u0026quot;STIXGeneral-webfont\u0026quot;, serif; font-style: italic; font-weight: 400; color: rgb(0, 0, 0);\"\u003er\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 95.2917px 7.79167px; transform-origin: 95.2917px 7.79167px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e is the radial distance from the well. Applying conservation of mass and Darcy’s law to this situation leads to a diffusion equation whose solution for the drawdown \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"vertical-align:-6px\"\u003e\u003cimg src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIEAAAAoCAYAAADZs5l2AAAChklEQVR4nO2Z67GDIBCFTw92kAZswApSgR3YgR2khdRgCfZgC6nBFu79gTtsCD5AEZT9Zpy56oVwcGEfAIIgCIIgCIIgCLlQAKgAtAC66e+7kpPWzdQA3gD+2PWIOqJw5KTVix5qUj6xB3ICOWl1glbGK/ZATiAnrZt5Qk/M3X1kTlqdeEFNyggVON2ZnLQ6MUBNTB97ICcQTCulHC3UdlMAaHANSyugt8fGeF5Da7oDQbQW0Jb1gjKGjv3QViPgRrTn8kl3ajbeko3ng+9U6g6GEERrOzUajOeD5dmWfvZepdnxBihvHqf7GmpSaEe7UyQdRCvPN/mqb+Dmc47aCXzcD62CN9RkcC08kq49+k6NIFop0jQbPnCN9OMBPf4WalL4bsL1+ewySxxh+C5zHEwr73h0bZwADfT4B/yuAIp3Rtgp4R+PHOECm59e59mrdbOYAdeqRfMg9m28K1beddDbaQU1eS4f5YidwGXR+WrdDMUGvp3Eyg5GaOs32y75SNo6+UegyDvVLMJX62YK9iM+J1MxsoOKtbNFw3OVNXKB5uELrSaXrOgsfLUuYvtn/iFdV0OM7ICP12Y85CO76b6ALoLx5xyKvlOLjXy1zkIrwYxMubWlNgk2lo5TuY+sp/seSiPl2rYV1bM2KeGrdRb62OZKIJ+Y4nZoslYY4T7yAfXhKejrF9otvYvFHq2z8NIjlYprKBdhFo1SZe041YxR+KRczQj2aJ2lgt7un/g+OLoKPAaxQb7flnFczQj2aBVmoEh6yQhc6gXCBSF3aKuHpJodCAezVifwKrsK12OpYphaeigEgnJpOispoXaAlAJC4SQo8m4gkbUgCIIgCIIgCIKQB/+ZU42DSga/5QAAAABJRU5ErkJggg==\" alt=\"s = h0 - h\" style=\"width: 64.5px; height: 20px;\" width=\"64.5\" height=\"20\"\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 79.3417px 7.79167px; transform-origin: 79.3417px 7.79167px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e as a function of distance \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"font-family: \u0026quot;STIXGeneral\u0026quot;, \u0026quot;STIXGeneral-webfont\u0026quot;, serif; font-style: italic; font-weight: 400; color: rgb(0, 0, 0);\"\u003er\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 30.725px 7.79167px; transform-origin: 30.725px 7.79167px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e and time \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"font-family: \u0026quot;STIXGeneral\u0026quot;, \u0026quot;STIXGeneral-webfont\u0026quot;, serif; font-style: italic; font-weight: 400; color: rgb(0, 0, 0);\"\u003et\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 7px 7.79167px; transform-origin: 7px 7.79167px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e is\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 44px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 22px; text-align: left; transform-origin: 384px 22px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"vertical-align:-17px\"\u003e\u003cimg src=\"data:image/png;base64,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\" alt=\"s = (Q0/(4 pi T)) integral(exp(-x)/x, u, infinity)\" style=\"width: 117px; height: 44px;\" width=\"117\" height=\"44\"\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 10.5px; text-align: left; transform-origin: 384px 10.5px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 21.0083px 7.79167px; transform-origin: 21.0083px 7.79167px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003ewhere \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"font-family: \u0026quot;STIXGeneral\u0026quot;, \u0026quot;STIXGeneral-webfont\u0026quot;, serif; font-style: italic; font-weight: 400; color: rgb(0, 0, 0);\"\u003eT\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 65.9833px 7.79167px; transform-origin: 65.9833px 7.79167px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e is the transmissivity, \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"font-family: \u0026quot;STIXGeneral\u0026quot;, \u0026quot;STIXGeneral-webfont\u0026quot;, serif; font-style: italic; font-weight: 400; color: rgb(0, 0, 0);\"\u003eS\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 67.15px 7.79167px; transform-origin: 67.15px 7.79167px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e is the storativity, and \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 36.05px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 18.025px; text-align: left; transform-origin: 384px 18.025px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"vertical-align:-15px\"\u003e\u003cimg src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGMAAABICAYAAADiUEtgAAAEXklEQVR4nO2cwZHiMBBF/2Ez8G2PJOAEHAERkAEZkIFT4LZ3QiAH5rABEAMpzB7EX30LSZbNGDyjflWq2rFdhlVL3b9bEoBhGIZhGGtiA6AD0L77i9RMC+AK4FPaGWaUl7MBcAOwvf/dArjAGeQCoHnT96qSHsA+uNbAz5Du5d9o5TRwncKmdHhu9B4S189wxtgm7ldHB98pt/u/z3D+vZd7S8B3bxZ6/7diB+8qQjfSwhmHgXYJbnAxo3oa+M4+JZ6hsfoFPr+DxYv/bOFnRaqzGWSX8OnnzOdWxwHeGMfMc0v49D3Ss7FKNF7ckO7wlBKaSwcnDgxBY8azyVeLYSbNkkf4PiZ74fUGpqiwx7A8cUSZQSiHmUVrXOkxLHcQqrNYp58S16vjiKFBTiifIdrxzf1dWn+ibOUsvMLnMZrPWPwQQoOUzhAa4wI3y9j5O7iO7uS50AjaTN4GhAYpCdx0U0e4kW8Fvy+E5Qm2XHlbC31XPGbwxpM0GPr8XFIWSmNjBmfk3Ylm5rm6kbo1mxUzoGsZ8+0lxmCOYrNiJizOjS11jpVJWpS5MiNDSRVW3VSqQKh1LVvDnol2YkzbN/ByNZeI8Zm31Zg6uJEVGy1b+ARmzWk9pSsV0xF+mXUv13OGUEn7UhfVwI0mLajFlMMJ04PZ5v7uZ9uU7FUz6xa+lM2BdMD4YGJd6m3bbLQGE37ZDcYDXgwG02dbdbJSp3eIVj53E975VTOjugCaG/masa45XvwI1J2EwVtLArZ69QJUDoaZq86KKfHCmAnjRbh3aI+hypq6g+IdaurbE6vvcwlRi2VTa/mmpiaiHcYRyCy1w3AnNe+VBvFXq6k/AP6uvGVhvNBk7gg/S3TWNFj3eYMPfM1MXLL9zv0HmFlf4UbyCb5UoLNmB2ektbuMXytvWWiMmGJqg3u2w2FhGrjRvkc8FuxQoaIxjOpglTo30+kN5jY7pVQIE9ycEGGM5CkndvIpuNffr/cYVirMpReg1eeUMaggY2IltccW8FuAbKNbAaEyTBmjR3rHiI7+2G7EA5Y7jvZj4KjVgmjKGBfEk1pdYPtMPEN3FnunxZE7R/iNbSVuKkbJ7sIOj+kBa3u2DgQ3IvXMxNzioxZMS5LfBj7g22lX+J+Q0KXiucbQeJFbemYSrUsPVGR7VBzcz3hcEJtjjDBe5FxOh0cZzMLrlP0DP4oD3GgOR+IcY6gkLl16pgyuXupSxsYUzxxjhKO8BK4DVS11VcbGmGOMqUvP6tbWvuSwKJSxKaZ2UpgslrgclcFrXYhbHO4uZ80o1lSelmx40HhR6nIog6s+16GdPaXlZomeAUy5vhDddF0tlJW5Fmr/sQ0ParSSaqy6tWqlbClTYobuASh1OerWmI9UGzfGmGIMLZmXrv/rBg/cP6fUvVXHFGOUHlFWKIN7+F9RMBKUGGODx19TGDvOHL6fBcKqs+8xxoJ2yfp3ji0qr0MZhmEYhmEYhmEYAP4BaLBwoebcWQsAAAAASUVORK5CYII=\" alt=\"u = Sr^2/(4Tt)\" style=\"width: 49.5px; height: 36px;\" width=\"49.5\" height=\"36\"\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 21px; text-align: left; transform-origin: 384px 21px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 349.917px 7.79167px; transform-origin: 349.917px 7.79167px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eWrite a function that achieves the objective of a pumping test: to determine the transmissivity and storativity from measurements of drawdown in time. \u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 347.467px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; perspective-origin: 384px 173.733px; text-align: left; transform-origin: 384px 173.733px; white-space: pre-wrap; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; margin-right: 10px; \"\u003e\u003cimg class=\"imageNode\" style=\"vertical-align: baseline;width: 497px;height: 342px\" src=\"data:image/png;base64,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\" data-image-state=\"image-loaded\" width=\"497\" height=\"342\"\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function [T,S] = confinedPumpTest(t,s,Q0,r)\r\n  % t = time, s = drawdown, Q0 = pumping rate, r = distance from well\r\n  T = f1(t,s,Q0,r);\r\n  S = f2(t,s,Q0,r);\r\nend","test_suite":"%%\r\nQ0 = 0.15;                                %  Pumping rate (m3/s)\r\nr  = 100;                                 %  Distance from well (m)\r\nt  = [100 1000 10000 1e5 2e5];            %  Time (s)\r\ns  = [0.0402 1.236 3.664 6.276 7.05];     %  Drawdown (m)\r\n[T,S] = confinedPumpTest(t,s,Q0,r);\r\nT_correct = 1.042e-2;                     %  Transmissivity (m2/s)\r\nS_correct = 9.864e-4;                     %  Storativity\r\nassert(abs(T-T_correct)/T_correct \u003c 1e-3 \u0026\u0026 abs(S-S_correct)/S_correct \u003c 1e-3)\r\n\r\n%%\r\nQ0 = 0.30;                                %  Pumping rate (m3/s)\r\nr  = 100;                                 %  Distance from well (m)\r\nt  = [100 1000 10000 1e5 2e5];            %  Time (s)\r\ns  = [0.0804 2.472 7.328 12.552 14.1];    %  Drawdown (m)\r\n[T,S] = confinedPumpTest(t,s,Q0,r);\r\nT_correct = 1.042e-2;                     %  Transmissivity (m2/s)\r\nS_correct = 9.864e-4;                     %  Storativity\r\nassert(abs(T-T_correct)/T_correct \u003c 1e-3 \u0026\u0026 abs(S-S_correct)/S_correct \u003c 1e-3)\r\n\r\n%%\r\nQ0 = 0.1;                                      %  Pumping rate (m3/s)\r\nr  = 40;                                       %  Distance from well (m)\r\nt  = [300 2000 8000 12000 24000 40000];        %  Time (s)\r\ns  = [0.494 1.749 2.830 3.153 3.709 4.120];    %  Drawdown (m)\r\n[T,S] = confinedPumpTest(t,s,Q0,r);\r\nT_correct = 9.838e-3;                          %  Transmissivity (m2/s)\r\nS_correct = 3.4e-3;                            %  Storativity\r\nassert(abs(T-T_correct)/T_correct \u003c 1e-3 \u0026\u0026 abs(S-S_correct)/S_correct \u003c 1e-3)\r\n\r\n%%\r\nQ0 = 0.1;                                      %  Pumping rate (m3/s)\r\nr  = 65;                                       %  Distance from well (m)\r\nt  = [300 2000 8000 12000 24000 40000];        %  Time (s)\r\ns  = [0.125 1.050 2.067 2.383 2.931 3.339];    %  Drawdown (m)\r\n[T,S] = confinedPumpTest(t,s,Q0,r);\r\nT_correct = 9.838e-3;                          %  Transmissivity (m2/s)\r\nS_correct = 3.4e-3;                            %  Storativity\r\nassert(abs(T-T_correct)/T_correct \u003c 2e-3 \u0026\u0026 abs(S-S_correct)/S_correct \u003c 1e-3)\r\n\r\n%%\r\nQ0 = 0.05;                                     %  Pumping rate (m3/s)\r\nr  = 5+10*rand;                                %  Distance from well (m)\r\nt  = [4e5 9e5 14e5 19e5 24e5];                 %  Time (s)\r\ns  = [0.859 0.918 0.951 0.973 0.991];          %  Drawdown (m)\r\n[T,S] = confinedPumpTest(t,s,Q0,r);\r\nlogfit = polyfit(log(t),s,1);                  \r\nTapprox = Q0/(4*pi*logfit(1));                       \r\nSapprox = 2.25*Tapprox*exp(-logfit(2)/logfit(1))/r^2;      \r\nassert(abs(T-Tapprox)/Tapprox \u003c 1e-3 \u0026\u0026 abs(S-Sapprox)/Sapprox \u003c 2e-3)","published":true,"deleted":false,"likes_count":1,"comments_count":0,"created_by":46909,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":4,"test_suite_updated_at":null,"rescore_all_solutions":false,"group_id":1,"created_at":"2021-01-04T00:26:53.000Z","updated_at":"2026-01-09T18:01:40.000Z","published_at":"2021-01-04T05:23:32.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eAn important task in characterizing the flow of groundwater is to determine the properties of the aquifer, or the underground water-bearing formation. One approach is to disturb the aquifer, observe its response, and fit a theoretical formula to the observations. \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eFor example, suppose a confined aquifer initially has no flow. In that case, the piezometric head \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"h\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eh\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e, or the level to which water would rise in an observation well, would be a uniform value \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"h0\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eh_0\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e. A well turned on and pumped at a rate \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"Q0\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eQ_0\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e will create a cone of depression; that is, it will draw down the piezometric head to a level \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"h(r)\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eh(r)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e, where \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"r\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003er\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e is the radial distance from the well. Applying conservation of mass and Darcy’s law to this situation leads to a diffusion equation whose solution for the drawdown \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"s = h0 - h\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003es = h_0-h\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e as a function of distance \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"r\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003er\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e and time \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"t\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003et\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e is\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"true\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"s = (Q0/(4 pi T)) integral(exp(-x)/x, u, infinity)\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003es = {Q_0 \\\\over 4 \\\\pi T} \\\\int_u^\\\\infty {e^{-x} \\\\over x} dx\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ewhere \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"T\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eT\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e is the transmissivity, \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"false\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"S\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eS\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003cw:r\u003e\u003cw:t\u003e is the storativity, and \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"equation\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"displayStyle\\\" w:val=\\\"true\\\"/\u003e\u003cw:attr w:name=\\\"altTextString\\\" w:val=\\\"u = Sr^2/(4Tt)\\\"/\u003e\u003c/w:customXmlPr\u003e\u003cw:r\u003e\u003cw:t\u003eu = {S r^2 \\\\over 4 T t}\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eWrite a function that achieves the objective of a pumping test: to determine the transmissivity and storativity from measurements of drawdown in time. \u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"342\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"497\\\"/\u003e\u003cw:attr w:name=\\\"verticalAlign\\\" w:val=\\\"baseline\\\"/\u003e\u003cw:attr w:name=\\\"altText\\\" w:val=\\\"\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image1.png\",\"relationshipId\":\"rId1\"}]},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,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\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"},{"id":1419,"title":"Find the function 2","description":"Given a set of point (x,y) and the coordinate x of a new point, find the y value of new point.\r\nTest Suite is based on only one odd function.","description_html":"\u003cp\u003eGiven a set of point (x,y) and the coordinate x of a new point, find the y value of new point.\r\nTest Suite is based on only one odd function.\u003c/p\u003e","function_template":"function y = new_point_fit2(M,x)\r\n  y = x;\r\nend","test_suite":"%%\r\nM = [-2.6000   -0.0383\r\n   -1.7000   -0.1812\r\n   -1.6000   -0.2018\r\n   -1.5000   -0.2226\r\n   -1.3000   -0.2626\r\n   -0.9000   -0.3185\r\n    0.8000    0.3223\r\n    1.0000    0.3096\r\n    1.0000    0.3096\r\n    1.1000    0.2967\r\n    1.1000    0.2967\r\n    1.2000    0.2807\r\n    1.7000    0.1812\r\n    2.1000    0.1057\r\n    2.8000    0.0204]\r\nx = -3.0000;\r\ny_correct = -0.0070;\r\nassert(abs((new_point_fit2(M,x)-y_correct)/y_correct)\u003c=0.05)\r\n\r\n\r\n%%\r\nM = [-3.0000   -0.0070\r\n   -2.8000   -0.0204\r\n   -2.0000   -0.1231\r\n   -1.1000   -0.2967\r\n   -0.7000   -0.3199\r\n   -0.5000   -0.2908\r\n   -0.2000   -0.1627\r\n   -0.2000   -0.1627\r\n   -0.2000   -0.1627\r\n   -0.2000   -0.1627\r\n    0.6000    0.3099\r\n    1.4000    0.2430\r\n    1.6000    0.2018\r\n    1.7000    0.1812\r\n    2.5000    0.0491]\r\nx = -2.1000;\r\ny_correct = -0.1057;\r\nassert(abs((new_point_fit2(M,x)-y_correct)/y_correct)\u003c=0.05)\r\n\r\n\r\n%%\r\nM = [-2.5000   -0.0491\r\n   -1.9000   -0.1415\r\n   -1.9000   -0.1415\r\n   -1.6000   -0.2018\r\n   -1.4000   -0.2430\r\n   -1.3000   -0.2626\r\n   -1.0000   -0.3096\r\n   -0.5000   -0.2908\r\n    0.3000    0.2189\r\n    0.5000    0.2908\r\n    0.7000    0.3199\r\n    1.1000    0.2967\r\n    1.5000    0.2226\r\n    1.6000    0.2018\r\n    2.5000    0.0491]\r\nx = 0.9000;\r\ny_correct = 0.3185;\r\nassert(abs((new_point_fit2(M,x)-y_correct)/y_correct)\u003c=0.05)\r\n\r\n\r\n%%\r\nM = [-2.3000   -0.0748\r\n   -1.8000   -0.1610\r\n   -1.6000   -0.2018\r\n   -0.9000   -0.3185\r\n   -0.3000   -0.2189\r\n   -0.3000   -0.2189\r\n    0.7000    0.3199\r\n    0.8000    0.3223\r\n    0.9000    0.3185\r\n    1.0000    0.3096\r\n    1.0000    0.3096\r\n    1.1000    0.2967\r\n    1.3000    0.2626\r\n    1.6000    0.2018\r\n    2.7000    0.0287]\r\nx = -0.5000;\r\ny_correct = -0.2908;\r\nassert(abs((new_point_fit2(M,x)-y_correct)/y_correct)\u003c=0.05)\r\n\r\n\r\n%%\r\nM = [-2.3000   -0.0748\r\n   -1.5000   -0.2226\r\n   -1.4000   -0.2430\r\n   -1.1000   -0.2967\r\n   -0.1000   -0.0903\r\n    0.2000    0.1627\r\n    0.3000    0.2189\r\n    0.5000    0.2908\r\n    0.7000    0.3199\r\n    0.8000    0.3223\r\n    0.9000    0.3185\r\n    2.0000    0.1231\r\n    2.1000    0.1057\r\n    2.3000    0.0748\r\n    2.7000    0.0287]\r\nx = 0.9000;\r\ny_correct = 0.3185;\r\nassert(abs((new_point_fit2(M,x)-y_correct)/y_correct)\u003c=0.05)\r\n\r\n\r\n\r\n%%\r\nfiletext = fileread('new_point_fit2.m');\r\nassert(isempty(strfind(filetext, 'switch')))\r\nassert(isempty(strfind(filetext, 'while')))\r\nassert(isempty(strfind(filetext, 'case')))\r\nassert(isempty(strfind(filetext, 'if')))","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":3919,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":18,"test_suite_updated_at":"2013-04-12T16:00:57.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2013-04-12T15:57:57.000Z","updated_at":"2026-02-09T13:08:03.000Z","published_at":"2013-04-12T16:00:57.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven a set of point (x,y) and the coordinate x of a new point, find the y value of new point. Test Suite is based on only one odd function.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"},{"id":44655,"title":"Computational power of Cody servers","description":"It has been \u003chttps://en.wikipedia.org/wiki/Moore%27s_law#History predicted\u003e that the performance of integrated circuits would _double_ every 18 months.  That suggests the time to perform a given computation should _halve_ roughly every 18 months.  \r\n\r\nWhat about on Cody?  Observational data is available from the final test case of \u003chttps://www.mathworks.com/matlabcentral/cody/problems/963-we-love-vectorized-solutions-problem-1-remove-the-row-average Problem 963\u003e to help us quantify the improvement in performance!  And thereby even make predictions for future computations.\r\n\r\n Solution    Date\t   Runtime [s]\r\n ...\r\n 144393\t     04-Oct-12\t   4.230\r\n ...\r\n 654812\t     17-Apr-15\t   3.099\r\n ...\r\n 1272817     20-Sep-17\t   2.0402\r\n ...\r\n\r\nThe complete data set will be provided to you as input.  You should assume the general trend can be described by the following law:\r\n\r\n runtime = r0 - δ [1 - exp(-t/k)]\r\n runtime = r∞ + δ exp(-t/k)\r\n\r\nwhere |r0| is the runtime at the start of the period in seconds, |r∞| is the predicted runtime (in seconds) that will be approached far in the future, |δ = r0 - r∞|, and |t| is the time in nominal years since the start of the period, and |k| is a kinetic parameter (in nominal years).  \r\n\r\nThe start of the period is defined by the earliest date in the series.  Compute the number of days exactly, and assume that a nominal year comprises 365.24 days.\r\n\r\nYour task is to \u003chttps://au.mathworks.com/help/matlab/math/example-curve-fitting-via-optimization.html fit the curve\u003e and thereby predict the runtime for various future dates.  Your output should be rounded to four decimal places.  \r\n\r\nMETHOD:  You _must_ use \u003chttps://au.mathworks.com/help/matlab/ref/fminsearch.html |fminsearch|\u003e to perform the non-linear regression, and you _must_ set the options using \u003chttps://au.mathworks.com/help/matlab/ref/optimset.html |optimset|\u003e to ensure sufficient accuracy.  The 'best' fit is defined — _for this problem, as in the common convention_ — as that which minimises the sum of the squares of the residuals.  \r\n\r\nEXAMPLE:\r\n\r\n % Input\r\n futureDate = '21-Nov-2023';\r\n data.solutionNumber = [1036949, ..., 1272817];\r\n data.date = ['29-Oct-2016'; ...; '20-Sep-2017'];\r\n data.runtime = [1.2630, ..., 2.0402];\r\n % Output\r\n predictedRuntime = 0.3619;  % seconds\r\n\r\n","description_html":"\u003cp\u003eIt has been \u003ca href = \"https://en.wikipedia.org/wiki/Moore%27s_law#History\"\u003epredicted\u003c/a\u003e that the performance of integrated circuits would \u003ci\u003edouble\u003c/i\u003e every 18 months.  That suggests the time to perform a given computation should \u003ci\u003ehalve\u003c/i\u003e roughly every 18 months.\u003c/p\u003e\u003cp\u003eWhat about on Cody?  Observational data is available from the final test case of \u003ca href = \"https://www.mathworks.com/matlabcentral/cody/problems/963-we-love-vectorized-solutions-problem-1-remove-the-row-average\"\u003eProblem 963\u003c/a\u003e to help us quantify the improvement in performance!  And thereby even make predictions for future computations.\u003c/p\u003e\u003cpre\u003e Solution    Date\t   Runtime [s]\r\n ...\r\n 144393\t     04-Oct-12\t   4.230\r\n ...\r\n 654812\t     17-Apr-15\t   3.099\r\n ...\r\n 1272817     20-Sep-17\t   2.0402\r\n ...\u003c/pre\u003e\u003cp\u003eThe complete data set will be provided to you as input.  You should assume the general trend can be described by the following law:\u003c/p\u003e\u003cpre\u003e runtime = r0 - δ [1 - exp(-t/k)]\r\n runtime = r∞ + δ exp(-t/k)\u003c/pre\u003e\u003cp\u003ewhere \u003ctt\u003er0\u003c/tt\u003e is the runtime at the start of the period in seconds, \u003ctt\u003er∞\u003c/tt\u003e is the predicted runtime (in seconds) that will be approached far in the future, \u003ctt\u003eδ = r0 - r∞\u003c/tt\u003e, and \u003ctt\u003et\u003c/tt\u003e is the time in nominal years since the start of the period, and \u003ctt\u003ek\u003c/tt\u003e is a kinetic parameter (in nominal years).\u003c/p\u003e\u003cp\u003eThe start of the period is defined by the earliest date in the series.  Compute the number of days exactly, and assume that a nominal year comprises 365.24 days.\u003c/p\u003e\u003cp\u003eYour task is to \u003ca href = \"https://au.mathworks.com/help/matlab/math/example-curve-fitting-via-optimization.html\"\u003efit the curve\u003c/a\u003e and thereby predict the runtime for various future dates.  Your output should be rounded to four decimal places.\u003c/p\u003e\u003cp\u003eMETHOD:  You \u003ci\u003emust\u003c/i\u003e use \u003ca href = \"https://au.mathworks.com/help/matlab/ref/fminsearch.html\"\u003e\u003ctt\u003efminsearch\u003c/tt\u003e\u003c/a\u003e to perform the non-linear regression, and you \u003ci\u003emust\u003c/i\u003e set the options using \u003ca href = \"https://au.mathworks.com/help/matlab/ref/optimset.html\"\u003e\u003ctt\u003eoptimset\u003c/tt\u003e\u003c/a\u003e to ensure sufficient accuracy.  The 'best' fit is defined — \u003ci\u003efor this problem, as in the common convention\u003c/i\u003e — as that which minimises the sum of the squares of the residuals.\u003c/p\u003e\u003cp\u003eEXAMPLE:\u003c/p\u003e\u003cpre\u003e % Input\r\n futureDate = '21-Nov-2023';\r\n data.solutionNumber = [1036949, ..., 1272817];\r\n data.date = ['29-Oct-2016'; ...; '20-Sep-2017'];\r\n data.runtime = [1.2630, ..., 2.0402];\r\n % Output\r\n predictedRuntime = 0.3619;  % seconds\u003c/pre\u003e","function_template":"function predictedRuntime = predictor(futureDate, data)\r\n    % Preliminaries:\r\n    ...\r\n    \r\n    \r\n    % Use fminsearch to find the parameters that minimize the objective function.\r\n    myObjectiveFun = ...\r\n    myOptions = ...\r\n    ... = fminsearch\r\n\r\n    % Report your prediction of the runtime at the specified future date.\r\n    predictedRuntime = ...\r\nend\r\n\r\n% Function that accepts a trial set of parameters and the observed data, \r\n% and returns the sum of squared errors for the model . \r\n% https://au.mathworks.com/help/matlab/math/example-curve-fitting-via-optimization.html\r\nfunction SSE = sseVal(...)\r\n    % runtime = r0 - δ [1 - exp(-t/k)]\r\n    % runtime = r∞ + δ exp(-t/k)\r\n    \r\n    ...\r\n    \r\n    SSE = ...\r\nend\r\n","test_suite":"data.solutionNumber = [1036949\t1048171\t1051202\t1078061\t1078699\t1081561\t886761\t1165117\t1202850\t1211446\t1241478\t1241530\t1329044\t1323931\t1382633\t1345204\t1281524\t1272814\t1272815\t1272823\t1272845\t1287012\t1287386\t1262442\t1262445\t1251993\t1252843\t1407137\t1412687\t1448359\t1448368\t1410187\t1465616\t1472214\t1472225\t1490596\t1490602\t1541085\t1541132\t860114\t143879\t144156\t144393\t202249\t210894\t539555\t182974\t276887\t1133109\t654812\t1272817];\r\ndata.date = ['29-Oct-2016';\t'08-Nov-2016';\t'12-Nov-2016';\t'09-Dec-2016';\t'10-Dec-2016';\t'14-Dec-2016';\t'06-May-2016';\t'18-Apr-2017';\t'02-Jun-2017';\t'13-Jun-2017';\t'28-Jul-2017';\t'28-Jul-2017';\t'06-Nov-2017';\t'01-Nov-2017';\t'16-Dec-2017';\t'15-Nov-2017';\t'05-Oct-2017';\t'20-Sep-2017';\t'20-Sep-2017';\t'20-Sep-2017';\t'20-Sep-2017';\t'15-Oct-2017';\t'15-Oct-2017';\t'05-Sep-2017';\t'05-Sep-2017';\t'16-Aug-2017';\t'17-Aug-2017';\t'06-Jan-2018';\t'10-Jan-2018';\t'24-Feb-2018';\t'24-Feb-2018';\t'08-Jan-2018';\t'18-Mar-2018';\t'27-Mar-2018';\t'27-Mar-2018';\t'13-Apr-2018';\t'13-Apr-2018';\t'26-May-2018';\t'26-May-2018';\t'31-Mar-2016';\t'02-Oct-2012';\t'03-Oct-2012';\t'04-Oct-2012';\t'08-Feb-2013';\t'01-Mar-2013';\t'03-Dec-2014';\t'29-Dec-2012';\t'09-Jul-2013';\t'03-Mar-2017';\t'17-Apr-2015';\t'20-Sep-2017'];\r\ndata.runtime = [1.2630\t0.624\t1.3326\t1.2939\t0.5995\t1.1307\t1.3505\t1.2613\t1.2737\t1.3081\t1.2774\t1.252\t1.2179\t1.4431\t1.2637\t1.1614\t1.2542\t1.9135\t1.2996\t1.2595\t1.2664\t1.1858\t1.1501\t1.2516\t1.2786\t1.9461\t1.2492\t1.3654\t1.3263\t1.1484\t1.1728\t1.6177\t1.0538\t1.0571\t1.0454\t1.3873\t1.0600\t1.1154\t1.0635\t1.4359\t4.498\t4.198\t4.230\t5.264\t4.022\t3.153\t4.740\t4.112\t2.3409\t3.099\t2.0402];\r\n\r\n%% Anti-hacking provision\r\n% ADDED 2019-06-29.  \r\n% Ensure only builtin functions will be called.  \r\n! rm -v fileread.m\r\n! rm -v assert.m\r\n\r\n%% Required methodology\r\nassessFunctionPresence({'fminsearch', 'optimset'}, 'FileName','predictor.m', 'Feedback','You must use the specified methodology')\r\n\r\n%% Anti-hardcoding test\r\n% Adapted from a comment at https://www.mathworks.com/matlabcentral/cody/problems/44343 .\r\nassert(~any(cellfun(@(x)ismember(max([0,str2num(x)]),[2012,2019:2023,3000]),regexp(fileread('predictor.m'),'[\\d\\.\\+\\-\\*\\/\\(\\) \\[\\]\\,\\;]+','match'))), 'Please don''t hard-code your ''solution''.') \r\nassert(~any(cellfun(@(x)ismember(max([0,str2num(x)]),[2012,2019:2023,3000]),regexp(fileread('predictor.m'),'\\d+','match'))), 'Please do not hard-code your ''solution''.') \r\n\r\n%% January 2019\r\nfutureDate = '22-Jan-2019';\r\npredictedRuntime_correct = round(0.935043294718475, 4);\r\nassert(isequal(predictor(futureDate, data), predictedRuntime_correct))\r\n\r\nfutureDate = '23-Jan-2019';\r\npredictedRuntime_correct = round(0.934448955935569, 4);\r\nassert(isequal(predictor(futureDate, data), predictedRuntime_correct))\r\n\r\nfutureDate = '24-Jan-2019';\r\npredictedRuntime_correct = round(0.933855075296061, 4);\r\nassert(isequal(predictor(futureDate, data), predictedRuntime_correct))\r\n\r\n%% January 2020\r\nfutureDate = '09-Jan-2020';\r\npredictedRuntime_correct = round(0.751755426901932, 4);\r\nassert(isequal(predictor(futureDate, data), predictedRuntime_correct))\r\n\r\nfutureDate = '13-Jan-2020';\r\npredictedRuntime_correct = round(0.749945312632780, 4);\r\nassert(isequal(predictor(futureDate, data), predictedRuntime_correct))\r\n\r\n%% January 2021\r\nfutureDate = '06-Jan-2021';\r\npredictedRuntime_correct = round(0.608254613313523, 4);\r\nassert(isequal(predictor(futureDate, data), predictedRuntime_correct))\r\n\r\nfutureDate = '11-Jan-2021';\r\npredictedRuntime_correct = round(0.606545074994730, 4);\r\nassert(isequal(predictor(futureDate, data), predictedRuntime_correct))\r\n\r\n%% February 2022\r\nfutureDate = '06-Feb-2022';\r\npredictedRuntime_correct = round(0.491354117473879, 4);\r\nassert(isequal(predictor(futureDate, data), predictedRuntime_correct))\r\n\r\nfutureDate = '10-Feb-2022';\r\npredictedRuntime_correct = round(0.490345992043568, 4);\r\nassert(isequal(predictor(futureDate, data), predictedRuntime_correct))\r\n\r\n%% November 2023\r\nfutureDate = '06-Nov-2023';\r\npredictedRuntime_correct = round(0.364155581026111, 4);\r\nassert(isequal(predictor(futureDate, data), predictedRuntime_correct))\r\n\r\nfutureDate = '21-Nov-2023';\r\npredictedRuntime_correct = round(0.361853937995679, 4);\r\nassert(isequal(predictor(futureDate, data), predictedRuntime_correct))\r\n\r\nfutureDate = '25-Nov-2023';\r\npredictedRuntime_correct = round(0.361244649648014, 4);\r\nassert(isequal(predictor(futureDate, data), predictedRuntime_correct))\r\n\r\nfutureDate = '27-Nov-2023';\r\npredictedRuntime_correct = round(0.360940709522436, 4);\r\nassert(isequal(predictor(futureDate, data), predictedRuntime_correct))\r\n\r\n%% Let's all meet up in the year 3000\r\nfutureDate = '01-Jan-3000';\r\npredictedRuntime_correct = round(0.164021404839, 4);\r\nassert(isequal(predictor(futureDate, data), predictedRuntime_correct))\r\n\r\n%% Enforce antihacking\r\n% Assure no 'workarounds' that avoid appropriate use of optimset.\r\n% (Added 29 May 2018.)\r\nfutureDate = {'19-Dec-2019';\t'04-Oct-2020';\t'06-Nov-2020';\t'20-Nov-2020';\t'07-Dec-2020';\t'09-Dec-2020';\t'11-Dec-2020';\t'25-Feb-2021';\t'04-Mar-2021';\t'18-Apr-2021';\t'19-May-2021';\t'23-Jul-2021'};\r\npRuntime_c_unrounded = {0.761350673860113\t0.641651747331991\t0.629650497697623\t0.624650604424140\t0.618651428148657\t0.617950799242008\t0.617251250072375\t0.591452258418511\t0.589151203003048\t0.574651625923890\t0.564951737257372\t0.545350739105932};\r\nfor j = 1 : length(futureDate)\r\n    assert(isequal(predictor(futureDate{j}, data), round(pRuntime_c_unrounded{j}, 4)))\r\nend;\r\n","published":true,"deleted":false,"likes_count":0,"comments_count":0,"created_by":64439,"edited_by":null,"edited_at":null,"deleted_by":null,"deleted_at":null,"solvers_count":2,"test_suite_updated_at":"2019-06-29T12:58:19.000Z","rescore_all_solutions":true,"group_id":1,"created_at":"2018-05-27T08:32:09.000Z","updated_at":"2019-06-29T12:58:19.000Z","published_at":"2018-05-27T12:35:16.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"targetMode\":\"\",\"relationshipId\":\"rId1\",\"target\":\"/matlab/document.xml\"},{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/output\",\"targetMode\":\"\",\"relationshipId\":\"rId2\",\"target\":\"/matlab/output.xml\"}],\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"relationship\":[],\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\\n\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIt has been\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://en.wikipedia.org/wiki/Moore%27s_law#History\\\"\u003e\u003cw:r\u003e\u003cw:t\u003epredicted\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e that the performance of integrated circuits would\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003edouble\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e every 18 months. That suggests the time to perform a given computation should\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ehalve\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e roughly every 18 months.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eWhat about on Cody? Observational data is available from the final test case of\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://www.mathworks.com/matlabcentral/cody/problems/963-we-love-vectorized-solutions-problem-1-remove-the-row-average\\\"\u003e\u003cw:r\u003e\u003cw:t\u003eProblem 963\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e to help us quantify the improvement in performance! And thereby even make predictions for future computations.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[ Solution    Date     Runtime [s]\\n ...\\n 144393       04-Oct-12     4.230\\n ...\\n 654812       17-Apr-15     3.099\\n ...\\n 1272817     20-Sep-17     2.0402\\n ...]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe complete data set will be provided to you as input. You should assume the general trend can be described by the following law:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[ runtime = r0 - δ [1 - exp(-t/k)]\\n runtime = r∞ + δ exp(-t/k)]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003ewhere\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003er0\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e is the runtime at the start of the period in seconds,\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003er∞\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e is the predicted runtime (in seconds) that will be approached far in the future,\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eδ = r0 - r∞\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e, and\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003et\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e is the time in nominal years since the start of the period, and\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003ek\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e is a kinetic parameter (in nominal years).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe start of the period is defined by the earliest date in the series. Compute the number of days exactly, and assume that a nominal year comprises 365.24 days.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eYour task is to\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://au.mathworks.com/help/matlab/math/example-curve-fitting-via-optimization.html\\\"\u003e\u003cw:r\u003e\u003cw:t\u003efit the curve\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e and thereby predict the runtime for various future dates. Your output should be rounded to four decimal places.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eMETHOD: You\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003emust\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e use\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://au.mathworks.com/help/matlab/ref/fminsearch.html\\\"\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003efminsearch\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e to perform the non-linear regression, and you\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003emust\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e set the options using\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:hyperlink w:docLocation=\\\"https://au.mathworks.com/help/matlab/ref/optimset.html\\\"\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eoptimset\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:hyperlink\u003e\u003cw:r\u003e\u003cw:t\u003e to ensure sufficient accuracy. The 'best' fit is defined —\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003efor this problem, as in the common convention\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e — as that which minimises the sum of the squares of the residuals.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eEXAMPLE:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"code\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003e\u003c![CDATA[ % Input\\n futureDate = '21-Nov-2023';\\n data.solutionNumber = [1036949, ..., 1272817];\\n data.date = ['29-Oct-2016'; ...; '20-Sep-2017'];\\n data.runtime = [1.2630, ..., 2.0402];\\n % Output\\n predictedRuntime = 0.3619;  % seconds]]\u003e\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\"},{\"partUri\":\"/matlab/output.xml\",\"contentType\":\"text/xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\" standalone=\\\"no\\\" ?\u003e\u003cembeddedOutputs\u003e\u003cmetaData\u003e\u003cevaluationState\u003emanual\u003c/evaluationState\u003e\u003clayoutState\u003ecode\u003c/layoutState\u003e\u003coutputStatus\u003eready\u003c/outputStatus\u003e\u003c/metaData\u003e\u003coutputArray type=\\\"array\\\"/\u003e\u003cregionArray type=\\\"array\\\"/\u003e\u003c/embeddedOutputs\u003e\"}]}"}],"term":"tag:\"curve fitting\"","current_player_id":null,"fields":[{"name":"page","type":"integer","callback":null,"default":1,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"per_page","type":"integer","callback":null,"default":50,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"sort","type":"string","callback":null,"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"body","type":"text","callback":null,"default":"*:*","directive":null,"facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":false},{"name":"group","type":"string","callback":null,"default":null,"directive":"group","facet":true,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"difficulty_rating_bin","type":"string","callback":null,"default":null,"directive":"difficulty_rating_bin","facet":true,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"id","type":"integer","callback":null,"default":null,"directive":"id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"tag","type":"string","callback":null,"default":null,"directive":"tag","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"product","type":"string","callback":null,"default":null,"directive":"product","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"created_at","type":"timeframe","callback":{},"default":null,"directive":"created_at","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"profile_id","type":"integer","callback":null,"default":null,"directive":"author_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"created_by","type":"string","callback":null,"default":null,"directive":"author","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"player_id","type":"integer","callback":null,"default":null,"directive":"solver_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"player","type":"string","callback":null,"default":null,"directive":"solver","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"solvers_count","type":"integer","callback":null,"default":null,"directive":"solvers_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"comments_count","type":"integer","callback":null,"default":null,"directive":"comments_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"likes_count","type":"integer","callback":null,"default":null,"directive":"likes_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"leader_id","type":"integer","callback":null,"default":null,"directive":"leader_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"leading_solution","type":"integer","callback":null,"default":null,"directive":"leading_solution","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true}],"filters":[{"name":"asset_type","type":"string","callback":null,"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":"\"cody:problem\"","prepend":true},{"name":"profile_id","type":"integer","callback":{},"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":"author_id","static":null,"prepend":true}],"query":{"params":{"per_page":50,"term":"tag:\"curve fitting\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"curve fitting\"","","\"","curve fitting","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007f6cb1e0c098\u003e":null,"#\u003cMathWorks::Search::Field:0x00007f6cb1e0bff8\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007f6cb1e0b738\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007f6cb1e0c318\u003e":1,"#\u003cMathWorks::Search::Field:0x00007f6cb1e0c278\u003e":50,"#\u003cMathWorks::Search::Field:0x00007f6cb1e0c1d8\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007f6cb1e0c138\u003e":"tag:\"curve fitting\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007f6cb1e0c138\u003e":"tag:\"curve fitting\""},"queried_facets":{}},"query_backend":{"connection":{"configuration":{"index_url":"http://index-op-v2/solr/","query_url":"http://search-op-v2/solr/","direct_access_index_urls":["http://index-op-v2/solr/"],"direct_access_query_urls":["http://search-op-v2/solr/"],"timeout":10,"vhost":"search","exchange":"search.topic","heartbeat":30,"pre_index_mode":false,"host":"rabbitmq-eks","port":5672,"username":"cody-search","password":"78X075ddcV44","virtual_host":"search","indexer":"amqp","http_logging":"true","core":"cody"},"query_connection":{"uri":"http://search-op-v2/solr/cody/","proxy":null,"connection":{"parallel_manager":null,"headers":{"User-Agent":"Faraday v1.0.1"},"params":{},"options":{"params_encoder":"Faraday::FlatParamsEncoder","proxy":null,"bind":null,"timeout":null,"open_timeout":null,"read_timeout":null,"write_timeout":null,"boundary":null,"oauth":null,"context":null,"on_data":null},"ssl":{"verify":true,"ca_file":null,"ca_path":null,"verify_mode":null,"cert_store":null,"client_cert":null,"client_key":null,"certificate":null,"private_key":null,"verify_depth":null,"version":null,"min_version":null,"max_version":null},"default_parallel_manager":null,"builder":{"adapter":{"name":"Faraday::Adapter::NetHttp","args":[],"block":null},"handlers":[{"name":"Faraday::Response::RaiseError","args":[],"block":null}],"app":{"app":{"ssl_cert_store":{"verify_callback":null,"error":null,"error_string":null,"chain":null,"time":null},"app":{},"connection_options":{},"config_block":null}}},"url_prefix":"http://search-op-v2/solr/cody/","manual_proxy":false,"proxy":null},"update_format":"RSolr::JSON::Generator","update_path":"update","options":{"url":"http://search-op-v2/solr/cody"}}},"query":{"params":{"per_page":50,"term":"tag:\"curve fitting\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"curve fitting\"","","\"","curve fitting","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007f6cb1e0c098\u003e":null,"#\u003cMathWorks::Search::Field:0x00007f6cb1e0bff8\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007f6cb1e0b738\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007f6cb1e0c318\u003e":1,"#\u003cMathWorks::Search::Field:0x00007f6cb1e0c278\u003e":50,"#\u003cMathWorks::Search::Field:0x00007f6cb1e0c1d8\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007f6cb1e0c138\u003e":"tag:\"curve fitting\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007f6cb1e0c138\u003e":"tag:\"curve fitting\""},"queried_facets":{}},"options":{"fields":["id","difficulty_rating"]},"join":" "},"results":[{"id":44507,"difficulty_rating":"easy-medium"},{"id":1330,"difficulty_rating":"easy-medium"},{"id":2259,"difficulty_rating":"easy-medium"},{"id":59152,"difficulty_rating":"easy-medium"},{"id":1416,"difficulty_rating":"medium"},{"id":44508,"difficulty_rating":"medium"},{"id":49743,"difficulty_rating":"medium"},{"id":1419,"difficulty_rating":"medium"},{"id":44655,"difficulty_rating":"unrated"}]}}