1. Limited time only! Sign up for a free 30min personal tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Solve a simple problem in MATLAB

  1. Oct 30, 2014 #1
    1. The problem statement, all variables and given/known data
    H
    ow to create a function to determine the area of a polynomial that has N vertexes in MATLAB?

    2. Relevant equations
    p = input('Introduce the number of vertexes of the polynomial:')
    n=p-2;

    The polynomial can be devided by N-2 triangles and the area of each triangle is given by A=(1/2)*det(B) where B=[x1 x2 x3 .... xn; y1 y2 y3 .... yn; 1 1 1 1 1 ...... 1(last row is filled with n ones)]

    3. The attempt at a solution
    p = input('Introduce the number of vertexes of the polynomial:')
    n=p-2;
    if n<3:
    fprintf('error')
    else
    (...) - I tried 'if cicles' and sums but I don't know know how to ask for all x and y of the polynomial vertexes (because the size of the matrix varies with the number of vertexes of the polynomial).

    Would apreciate any kind of help :D
     
  2. jcsd
  3. Oct 30, 2014 #2
    You have to ask all the coordinates of the vertexes
     
  4. Oct 30, 2014 #3
    Already solved it:

    function p = area_polinomio(N)
    i=1;
    area = 0;
    A = [0,0,0;0,0,0;0,0,0];
    if N < 3
    warning('pontos insuficientes')
    return
    else
    a = [input('introduza a abcissa do primeiro ponto: '); input('\n introduza a ordenada do primeiro ponto: '); 1];
    for i = 1 : N-1
    b = [input('\n introduza a abcissa do ponto seguinte: '); input('\n introduza a ordenada do ponto seguinte: '); 1];
    if i == 1
    A = [a, b];
    end
    if i == 2
    A = [A, b];
    area = area + (1/2)*det(A);
    end
    if i > 2
    A = A(:,[1:1,3,3:2,2,4:end]);
    A = A(1:3,1:2);
    A = [A, b];
    area = area + (1/2)*det(A);
    end

    i = i+1;
    end
    end
    %A

    Thanks.
     
  5. Oct 31, 2014 #4

    Mark44

    Staff: Mentor

    The word you're searching for is polygon, a two-dimensional figure with three or more straight sides that intersect at the vertices of the polygon. Triangles, rectangles, and hexagons are examples of polygons.

    A polynomial is an expression made up of sums of integer powers of the variable. For example, f(x) = 2x + 3, g(x) = x2 - 3x + 2, and h(x) = x4 - 1 are polynomial functions of degree 1, 2, and 4 respectively.
     
  6. Oct 31, 2014 #5
    LOOOL. That made me laugh xD
    A silly misake made by me. Acually when I was solving this I named the function area_polynomial and not area_polygon until it was time to run it, then I changed the name. Was completely focused on the exercise xD
     
  7. Oct 31, 2014 #6

    Mark44

    Staff: Mentor

    Are you from Portugal or Brazil? I'm just curious...
     
  8. Oct 31, 2014 #7
    Portugal :)
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook

Have something to add?
Draft saved Draft deleted



Similar Discussions: Solve a simple problem in MATLAB
  1. Problem in matlab (Replies: 1)

Loading...