Jump to content

# Linear or fractional ?

This topic is 2602 days old. Please don't post here. Open a new topic instead.

## Recommended Posts

Hi all

I need to know if an algebraic equation is linear or fractional.
( fractional equation: an equation containing the unknown in the denominator of one or more terms )

3 * ( x - 1 ) + 5 = 0 // linear
3 / ( x - 1 ) + 5 = 0 // fractional

How do you think to solve this problem with Filemaker?

##### Share on other sites

Assuming that the algebraic equation is being passed as text, you could write a custom function which would evaluate to TRUE if it were fractional, as follows:

Fractional (myEquation)

defined as

Case(patterncount(myEquation;"/") > 0;True;False)

However, I suspect the issue is more difficult than simply looking for the / character as the algebra gets more complicated?

Brian

##### Share on other sites

Thanks, it seems simple but isn't.

This one, for example,

1/2 + x = 0

contains the divisor symbol but isn't a fractional equation ( an equation containing the unknown in the denominator )

##### Share on other sites

If there weren't any parentheses, then I would say that an equation is fractional if - and only if - it contains the pattern "/x".

However,  parsing an equation that may contain parentheses (esp. nested parentheses), using only Filemaker's text functions, is not something I would recommend.

Note also:

`X^-1`
Edited by comment
##### Share on other sites

You could evaluate the equation for 3 values of x, calculate the line between the first 2 with two-point form, and check if the third point is on the same line. Then you'd just have to worry about avoiding values of x that might make the denominator zero — but if that does happen, you get a question mark for evaluating at that value, and you'd know that you have a fraction equation (or just a formula with a zero denominator).

##### Share on other sites

You could evaluate the equation for 3 values of x, calculate the line between the first 2 with two-point form, and check if the third point is on the same line.

This solution is really interesting!

Recognizing if the equation is linear or fractional is in fact only a part of a bigger problem: finding the root (s) of an equation  in one unknown with a planned custom function:

Solve ( equation )

##### Share on other sites

This solution is really interesting!

I agree. However, the graph of:

`y = ( 3 * x  ) / ( 2 * x )`

could not be more linear - though it still meets your condition of containing the unknown in the denominator of one or more terms.

##### Share on other sites

y = ( 3 *) / ( 2 * x )

this could be written:

x = 3*a/2*a = 3/2 ( with a  ≠ 0 )

the unknown ( x ) isn't in the denominator of any terms.

##### Share on other sites

Yes, it could be written that way - but it wasn't. I think you need to define some constraints on the input, otherwise this is just too wide.

##### Share on other sites

Yes, the constraint on the input must be:

whichever equation in one unknown ( x )

so that the CF will solve for x

##### Share on other sites

I am afraid we're not talking about the same thing.

`y = ( 3 * x + a ) / ( 2 * x - a )`

is non-linear for all values of a, except a=0. If it's legitimate to write:

`y = ( 3 * x + 4 ) / ( 2 * x - 4 )`

then:

`y = ( 3 * x + 0 ) / ( 2 * x - 0 )`

is also a legitimate input.

##### Share on other sites

May be I didn't explain well myself or I do not remember well my algebraic studies.

y = ax + b

isn't an equation in one unknown but a function of x: f(x) = ax + b where there is a result for each value of the unknown.

The user must enter the equation in the format: ax + b = 0 or ax = - b or x = -b/a

##### Share on other sites

An example:

Solve ( "6000/(1+x)^(61/360)+7000/(1+x)^(103/360)=12702.2" )

result: x ≈ 0.105

##### Share on other sites

I was referring to Jeremy's suggestion to calculate 3 different points for 3 values of x. You cannot calculate 3 different points using an equation. You must use a function f(x) to calculate 3 y results for 3 values of x.

##### Share on other sites

Ah, ok. Now I understand you.

BTW I'll post my "work in progress" custom function that use a "brute force" algorithm to search the root.

##### Share on other sites

This solution is really interesting!

Recognizing if the equation is linear or fractional is in fact only a part of a bigger problem: finding the root (s) of an equation  in one unknown with a planned custom function:

Solve ( equation )

If root finding is your goal, there are plenty of techniques for that that don't require knowing if the function is linear or "fractional."

##### Share on other sites

Great link.
My algorithm is nearly the same as: Bisection method.

But sometimes ( with fractional equation ) it fails to find two values with different signs.

Don't you want to try to create that CF ?

##### Share on other sites

I did a few years ago just for kicks, but I never had an application for it, so it's relegated to the dustbin. I used a combination of bisection, secant, and false position methods.

##### Share on other sites

Are you not going to publish it on Brian's site?

##### Share on other sites

Are you not going to publish it on Brian's site?

If I come across an application where I need it, I'm sure I'll refactor it to suit my current tastes and post it somewhere. That isn't right now.

##### Share on other sites

This topic is 2602 days old. Please don't post here. Open a new topic instead.

## Create an account or sign in to comment

You need to be a member in order to leave a comment

## Create an account

Sign up for a new account in our community. It's easy!

Register a new account

## Sign in

Already have an account? Sign in here.

Sign In Now
• ### Who Viewed the Topic

×
×
• Create New...

## Important Information

By using this site, you agree to our Terms of Use.