I got the problem with polyshape, please help me

11 visualizzazioni (ultimi 30 giorni)
Demand: sketch the domain D be the region bounded by
My code:
x1 = 0:1:30;
y1 = 2-x1;
y2 = sqrt(x1).*(12-x1)./2;
xcut = fzero(@(x)sqrt(x).*(12-x)./2 - 2+x, 0.5);
x = [x1(x1<=xcut), x1(end)];
y = [sqrt(x1).*(12-x1)./2 (x1<=xcut), 2-x1(end)];
M = polyshape(x,y);
plot(x1,y1,x1,y2,x,y)
hold on
plot(M)
hold off
xlim([0,30])
ylim([0,30])
Error:
Error using polyshape/getXY
x- and y-coordinates must be vectors of the same size with at least 3 elements.
Error in polyshape/checkInput (line 842)
[X, Y, xy2input, next_arg] = polyshape.getXY(varargin{:});
Error in polyshape (line 169)
[X, Y, tc, simpl, collinear] = polyshape.checkInput(param, varargin{:});
Error in bai4 (line 7)
M = polyshape(x,y);
  4 Commenti
Thai Anh
Thai Anh il 4 Dic 2022
oh I'm sorry.
The demand is sketch the domain D be the region bounded by

Accedi per commentare.

Risposta accettata

Stephan
Stephan il 4 Dic 2022
You have to take both points into account to find a closed region:
xcut1 = fzero(@(x)sqrt(x).*(12-x)./2 - 2+x, 0.5);
xcut2 = fzero(@(x)sqrt(x).*(12-x)./2 - 2+x, 20);
I had the code ready here - but homework is homework... I leave the rest to you. It should be easy now...
  12 Commenti
Thai Anh
Thai Anh il 5 Dic 2022
x1 = 0:1:30;
y1 = 2-x1;
y2 = sqrt(x1).*(12-x1)./2;
xcut1 = fzero(@(x)sqrt(x).*(12-x)./2 - 2+x, 0.5);
xcut2 = fzero(@(x)sqrt(x).*(12-x)./2 - 2+x, 20);
a=[x1(xcut1<=x1),x1(x1<=xcut2)];
b=[2-x1 (x1>=xcut1), 2-x1 (x1<=xcut2)] ;
M = polyshape(a,b);
plot(M)
hold on;
grid on;
xlim([0,30])
ylim([0,30])
..... I tried but I cannot mark the curve region
Stephan
Stephan il 5 Dic 2022
Modificato: Stephan il 5 Dic 2022
Sorry, last try - i can not make it more clear without doing your homework:
x = -10:1:10;
y1 = -x.^2 + 100;
y2 = 0.*x + 50;
xcut1 = fzero(@(x)-x.^2 + 100 - 50,-7);
xcut2 = fzero(@(x)-x.^2 + 100 - 50,7);
x_linear = [xcut1 xcut2];
y_linear = [50 50];
x_quad = linspace(xcut1, xcut2, 25);
y_quad = -x_quad.^2 + 100;
M = polyshape([x_linear, x_quad], [y_linear, y_quad],'simplify', false);
plot(x,y1,x,y2)
hold on
plot(M)

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Numerical Integration and Differential Equations in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by