Funcion quad2d y función anonymus
Publicado por Ignacio (1 intervención) el 05/11/2012 11:04:16
Hola!,
mi problema es el siguiente, para poder hacer una integración númerica de una función de la que sólo tengo su valor en unos determinados puntos, lo que hago es primero aproximar dicha función por un polinomio y depués integrar ese polinomio. El grado del polinomio además de ser de dos variables es de grado bastante alto, para que la solución sea buena. Me gustaría poder escribir el polinomio de una manera más sencilla, como multiplicación de vectores, pero he leido que no puedo utilizar la multiplicación de vectores, únicamente la multiplicación elemento a elemento.
Para que os hagais una idea, en el caso de que el polinomio fuera de grado 5 y 5(x e y respectivamente). He tenido que escribir:
S=quad2d(@(x,y) ((x.^5).*(y.^5).*pe(1)+(x.^4).*(y.^5).*pe(2)+(x.^3).*(y.^5).*pe(3)+(x.^2).*(y.^5).*pe(4)+(x.^1).*(y.^5).*pe(5)+(x.^0).*(y.^5).*pe(6)+ (x.^5).*(y.^4).*pe(7)+(x.^4).*(y.^4).*pe(8)+(x.^3).*(y.^4).*pe(9)+(x.^2).*(y.^4).*pe(10)+(x.^1).*(y.^4).*pe(11)+(x.^0).*(y.^4).*pe(12)+ (x.^5).*(y.^3).*pe(13)+(x.^4).*(y.^3).*pe(14)+(x.^3).*(y.^3).*pe(15)+(x.^2).*(y.^3).*pe(16)+(x.^1).*(y.^3).*pe(17)+(x.^0).*(y.^3).*pe(18)+(x.^5).*(y.^2).*pe(19)+(x.^4).*(y.^2).*pe(20)+(x.^3).*(y.^2).*pe(21)+(x.^2).*(y.^2).*pe(22)+(x.^1).*(y.^2).*pe(23)+(x.^0).*(y.^2).*pe(24)+ (x.^5).*(y.^1).*pe(25)+(x.^4).*(y.^1).*pe(26)+(x.^3).*(y.^1).*pe(27)+(x.^2).*(y.^1).*pe(28)+(x.^1).*(y.^1).*pe(29)+(x.^0).*(y.^1).*pe(30)+(x.^5).*(y.^0).*pe(31)+(x.^4).*(y.^0).*pe(32)+(x.^3).*(y.^0).*pe(33)+(x.^2).*(y.^0).*pe(34)+(x.^1).*(y.^0).*pe(35)+(x.^0).*(y.^0).*pe(36));
Tendría que hacer polinomios de 20 y 20 o 30 y 30, sin tener que escribirlos así.
Alguna idea?
Saludos y gracias
mi problema es el siguiente, para poder hacer una integración númerica de una función de la que sólo tengo su valor en unos determinados puntos, lo que hago es primero aproximar dicha función por un polinomio y depués integrar ese polinomio. El grado del polinomio además de ser de dos variables es de grado bastante alto, para que la solución sea buena. Me gustaría poder escribir el polinomio de una manera más sencilla, como multiplicación de vectores, pero he leido que no puedo utilizar la multiplicación de vectores, únicamente la multiplicación elemento a elemento.
Para que os hagais una idea, en el caso de que el polinomio fuera de grado 5 y 5(x e y respectivamente). He tenido que escribir:
S=quad2d(@(x,y) ((x.^5).*(y.^5).*pe(1)+(x.^4).*(y.^5).*pe(2)+(x.^3).*(y.^5).*pe(3)+(x.^2).*(y.^5).*pe(4)+(x.^1).*(y.^5).*pe(5)+(x.^0).*(y.^5).*pe(6)+ (x.^5).*(y.^4).*pe(7)+(x.^4).*(y.^4).*pe(8)+(x.^3).*(y.^4).*pe(9)+(x.^2).*(y.^4).*pe(10)+(x.^1).*(y.^4).*pe(11)+(x.^0).*(y.^4).*pe(12)+ (x.^5).*(y.^3).*pe(13)+(x.^4).*(y.^3).*pe(14)+(x.^3).*(y.^3).*pe(15)+(x.^2).*(y.^3).*pe(16)+(x.^1).*(y.^3).*pe(17)+(x.^0).*(y.^3).*pe(18)+(x.^5).*(y.^2).*pe(19)+(x.^4).*(y.^2).*pe(20)+(x.^3).*(y.^2).*pe(21)+(x.^2).*(y.^2).*pe(22)+(x.^1).*(y.^2).*pe(23)+(x.^0).*(y.^2).*pe(24)+ (x.^5).*(y.^1).*pe(25)+(x.^4).*(y.^1).*pe(26)+(x.^3).*(y.^1).*pe(27)+(x.^2).*(y.^1).*pe(28)+(x.^1).*(y.^1).*pe(29)+(x.^0).*(y.^1).*pe(30)+(x.^5).*(y.^0).*pe(31)+(x.^4).*(y.^0).*pe(32)+(x.^3).*(y.^0).*pe(33)+(x.^2).*(y.^0).*pe(34)+(x.^1).*(y.^0).*pe(35)+(x.^0).*(y.^0).*pe(36));
Tendría que hacer polinomios de 20 y 20 o 30 y 30, sin tener que escribirlos así.
Alguna idea?
Saludos y gracias
Valora esta pregunta
0