Thread Closed

MATLAB and M-Files

 
Share Thread Thread Tools
Sep17-07, 09:31 AM   #1
 

MATLAB and M-Files


I have this assignment:
https://vula.uct.ac.za/access/conten...63/ass3_07.pdf

Although, I don't know if you'll be able to access that.
I am busy with task 2 in the file above.
Anyway, I am trying to write an M-File for a function g. g has two input arguments, a function f(x), and a x-value of the function. The file is then meant to use Newton's Method to approximate the gradient at x.

Here is my code:

>>function y = g(f(x), x)
>>y = (f(x+h) - f(x))/h;

I have found the best value for h in a previous bit of code.

In the command window I try to evaluate a functions' gradient at a point thus:

>>g(x^2, 2)

Meaning f(x) = x^2 and x = 2, but I get the error:
??? Error: File: F:\My Documents\MATLAB\Numerical Methods\g.m Line: 1 Column: 17
Unbalanced or misused parentheses or brackets.

The same for
>>g(x.^2, 2)
>>g('x^2', 2)
>>g('x.^2', 2)

But I can not see where I have "Unbalanced or misused parentheses or brackets" in the line:

>>function y = g(f(x), x)

What is my error, and how do I correct it? Thanks.
PhysOrg.com
PhysOrg
science news on PhysOrg.com

>> Bird's playlist could signal mental strengths and weaknesses
>> Minus environment, patterns still emerge: Computational study tracks E. coli cells' regulatory mechanisms
>> Bacterium uses natural 'thermometer' to trigger diarrheal disease, scientists find
Sep17-07, 11:06 AM   #2
CEL
 
Quote by qspeechc View Post
I have this assignment:
https://vula.uct.ac.za/access/conten...63/ass3_07.pdf

Although, I don't know if you'll be able to access that.
I am busy with task 2 in the file above.
Anyway, I am trying to write an M-File for a function g. g has two input arguments, a function f(x), and a x-value of the function. The file is then meant to use Newton's Method to approximate the gradient at x.

Here is my code:

>>function y = g(f(x), x)
>>y = (f(x+h) - f(x))/h;

I have found the best value for h in a previous bit of code.

In the command window I try to evaluate a functions' gradient at a point thus:

>>g(x^2, 2)

Meaning f(x) = x^2 and x = 2, but I get the error:
??? Error: File: F:\My Documents\MATLAB\Numerical Methods\g.m Line: 1 Column: 17
Unbalanced or misused parentheses or brackets.

The same for
>>g(x.^2, 2)
>>g('x^2', 2)
>>g('x.^2', 2)

But I can not see where I have "Unbalanced or misused parentheses or brackets" in the line:

>>function y = g(f(x), x)

What is my error, and how do I correct it? Thanks.
You should make
function y = g(f,x,h)
y = (f(x+h) - f(x))/h;

and a function f:
function y = f(x)
y = x^2;

And call

g(@f,2,h)
Sep17-07, 12:23 PM   #3
 
It works if, when you call g you do it as such:

g(inline('x^2'), 2)

You should make
function y = g(f,x,h)
h is not an input variable, it is calculated according to the computer's computing power (?)

And call

g(@f,2,h)
Sorry, I do not get that.

Anyway, it doesn't really matter because I found a way I understand to make it work. I would like to get rid of having to write "inline" though.
Thank you for your help.
Sep17-07, 12:42 PM   #4
CEL
 

MATLAB and M-Files


Quote by qspeechc View Post
It works if, when you call g you do it as such:

g(inline('x^2'), 2)


h is not an input variable, it is calculated according to the computer's computing power (?)



Sorry, I do not get that.

Anyway, it doesn't really matter because I found a way I understand to make it work. I would like to get rid of having to write "inline" though.
Thank you for your help.
Unless you declare h to be global, there is no means for your function g to know its value, unless you calculate it inside your g function.
The symbol @ is a handle to a function. If you have a function called myfun, you pass it as a parameter for another function using the handle.
for instance:
foo(@myfun, x)
Sep17-07, 01:50 PM   #5
 
Yes, h is calculated inside the function file.
We have not covered the topic of handles. I thinks it's best I stick to inline objects, which we have covered, as I do not fully understand handles yet. Maybe I try again tomorrow.
Thank you very much for your help CEL!
Thread Closed
Thread Tools


Similar Threads for: MATLAB and M-Files
Thread Forum Replies
Matlab: How to apply filters to and ECG signal using matlab? Math & Science Software 2
PF Files Forum Feedback & Announcements 3
Matlab: Saving and Running M-files Math & Science Software 3
HDF files for f90/95 Programming & Comp Sci 1
Matlab Importing Files Math & Science Software 1