## 10 Reputation

6 years, 211 days

## Elegant solution :)...

Thank you once again for the fast response.

In between posts I got a nonlinear fit to work for my data;

f := x = a*y^b*z^c:

X := <0.1e-1, 0.1e-1, 0.1e-1, 0.113e-2, 0.144e-2, 0.171e-2, 0.21e-2, 0.23e-2, 0.183e-2, 0.233e-2, 0.28e-2, 0.331e-2, 0.409e-2, 0.304e-2, 0.377e-2, 0.459e-2, 0.576e-2, 0.708e-2, 0.424e-2, 0.502e-2, 0.623e-2, 0.763e-2, 0.918e-2, 0.529e-2, 0.63e-2, 0.778e-2, 0.965e-2, 0.116e-1, 0.63e-2, 0.747e-2, 0.899e-2, 0.113e-1, 0.137e-1, 0.724e-2, 0.872e-2, 0.105e-1, 0.13e-1, 0.158e-1, 0.848e-2, 0.1e-1, 0.122e-1, 0.15e-1, 0.182e-1>
Y := <16.529, 13.333, 10.929, 2.66, 2.75, 2.77, 2.69, 2.58, 4.4, 4.67, 4.62, 4.51, 4.48, 7.5, 7.58, 7.64, 7.75, 7.77, 10.1, 10.1, 10.1, 10.2, 10.2, 12.6, 12.7, 12.8, 12.7, 12.8, 14.9, 15, 15, 15, 15, 17.3, 17.5, 17.4, 17.3, 17.3, 20, 19.9, 19.9, 19.9, 20>
Z := <100, 1000, 10000, 1, 10, 100, 1000, 10000, 1, 10, 100, 1000, 10000, 1, 10, 100, 1000, 10000, 1, 10, 100, 1000, 10000, 1, 10, 100, 1000, 10000, 1, 10, 100, 1000, 10000, 1, 10, 100, 1000, 10000, 1, 10, 100, 1000, 10000>

A := Matrix([Y, Z, X], datatype = float);
Statistics:-NonlinearFit(rhs(f), A, [y, z]);

0.408067401852911e-3*y^1.00467751826150*z^0.857885361944718e-1

This gives me a deviation from my actual results of 1.1%

The linear example you provided actually fitted with an average deviation of 0.7%. I hadn't considered using a linear function so THANK YOU VERY MUCH!

I have only been attempting to use maple for a couple of days and trying to input my data correctly was very tricky, would you have any recommendations on information I should read to learn the functionality quicker?

Thanks again!

Steve

## More Data...

Thank for the replies everyone.

I used the same value for x=0.01 to aid in a simpler hand calculation, but I have more data points for x,y and z.

The problem I have in finding exact unknowns is that the data I am using has no perfect fit, so choosing three different data points will give me three different contants.

I have the following data set for x, y and z and have plotted it on a 3d point plot;

xlist := [0.1e-1, 0.1e-1, 0.1e-1, 0.113e-2, 0.144e-2, 0.171e-2, 0.21e-2, 0.23e-2, 0.183e-2, 0.233e-2, 0.28e-2, 0.331e-2, 0.409e-2, 0.304e-2, 0.377e-2, 0.459e-2, 0.576e-2, 0.708e-2, 0.424e-2, 0.502e-2, 0.623e-2, 0.763e-2, 0.918e-2, 0.529e-2, 0.63e-2, 0.778e-2, 0.965e-2, 0.116e-1, 0.63e-2, 0.747e-2, 0.899e-2, 0.113e-1, 0.137e-1, 0.724e-2, 0.872e-2, 0.105e-1, 0.13e-1, 0.158e-1, 0.848e-2, 0.1e-1, 0.122e-1, 0.15e-1, 0.182e-1]

ylist := [16.529, 13.333, 10.929, 2.66, 2.75, 2.77, 2.69, 2.58, 4.4, 4.67, 4.62, 4.51, 4.48, 7.5, 7.58, 7.64, 7.75, 7.77, 10.1, 10.1, 10.1, 10.2, 10.2, 12.6, 12.7, 12.8, 12.7, 12.8, 14.9, 15, 15, 15, 15, 17.3, 17.5, 17.4, 17.3, 17.3, 20, 19.9, 19.9, 19.9, 20]

zlist := [100, 1000, 10000, 1, 10, 100, 1000, 10000, 1, 10, 100, 1000, 10000, 1, 10, 100, 1000, 10000, 1, 10, 100, 1000, 10000, 1, 10, 100, 1000, 10000, 1, 10, 100, 1000, 10000, 1, 10, 100, 1000, 10000, 1, 10, 100, 1000, 10000]

What I really need is a function in the form f := x = a*y^b*z^c that best fits that data, I just cant get the x, y and z lists to go in to a nonlinearfit.

Cheers

Steve

## Replacing with know data...

Thanks for the fast response!

The data I used for my hand calcs is as follows;

X values 0.01, 0.01, 0.01 (strain values)

Y Values 16.526,13.333,10.929 (stress values)

Z Values 100,1000,10000 (time values)

How would I input these values in place of your Vectors?

I have tried;

x:=0.01,0.01,0.01;

Which gives me x[1] = 0.01 etc, but I cant seem to get the data to be input to the nonlinear fit

Do I need to place my x, y and z values into a matrix form?

Cheers

Steve

 Page 1 of 1
﻿