How to set a function for error propagation

Hey, this is kinda my first try with
function
My aim is to code an automatic sequence for error propagation. E.g.
function [DeltaY] = equation(x)
With DeltaY being the solution and x an equation like x = a*b
As I said I have very little experience with functions, hence:
function [DeltaY] = equation(x)
DeltaY = sqrt((diff x,a)^2 * da^2 + (diff x,b)^2 * db^2)
end
does not work if I typ
equation(x)
Strikes me as I need to define a b da db seperately like
syms a b da db
x = a*b
But where to put it?

 Akzeptierte Antwort

SAA
SAA am 21 Jul. 2020

0 Stimmen

Yes you need to deinfe a b da and db either in the function or in your script before you call the function and also let them be inputs to your function
like this:
function [DeltaY] = equation(x,a,b,da,db)
DeltaY = sqrt((diff x,a)^2 * da^2 + (diff x,b)^2 * db^2)
end

1 Kommentar

Niklas Kurz
Niklas Kurz am 24 Jul. 2020
Bearbeitet: Niklas Kurz am 24 Jul. 2020
One question is bothering me concering my code:
function [DeltaY] = equation(a, b, da, db)
DeltaY = sqrt(diff(((a+b)/(b-a)),a)^2 * da^2 + diff(((a+b)/(b-a)),b)^2 * db^2);
end
It works quite well, but as long as I define a,b,da,db Matlab won't derive anymore. For example
equation(1, 2, 0.1, 0.1)
gives:
ans = []
How to tell Matlab to set in values after it derived? Is this only possible with
subs()

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Produkte

Gefragt:

am 21 Jul. 2020

Bearbeitet:

am 24 Jul. 2020

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by