Informe del experimento matemático Matlab de la Universidad de Correos y Telecomunicaciones de Nanjing

prefacio

Los experimentos matemáticos son realmente molestos...

Siguiendo el espíritu de " las olas traseras del río Yangtze golpean a las olas delanteras, y las olas delanteras son golpeadas hasta la muerte en la playa ".

Por la presente registro el proceso de resolución de problemas del informe del experimento matemático que escribí yo mismo en forma de blog, para mí mismo en el futuro.

¡Solo como referencia, no necesariamente correcto!

Por favor , ven a este blog después de pensar por ti mismo. Después de todo, en el futuro, la investigación matemática realmente usará matlab (aunque supongo que olvidé cómo operarlo en ese momento, por eso escribí este blog)

¡Hay una cierta diferencia entre el uso de funciones de la versión antigua y la nueva! La diferencia específica puede ser Baidu, o usar directamente la misma versión que la mía.

  • La versión utilizada para este blog esmatlab R2022a

practicar uno

Nota: m tiene requisitos especiales , consulte su informe experimental para obtener más detalles.

1.1

IMG_20220408_105804

>> syms x
>> limit((sqrt(1+m*x^2)-cos(m*x))/x^2,x,0)

Tenga en cuenta que el rango es diferente, el primero es 0, el segundo está cerca de ∞

syms x
limit((sqrt(1+m*x^2)-cos(m*x))/x,x,inf)

1.2

IMG_20220408_105843

La e aquí debería exp(1)usarse para indicar

imagen-20220408111613808

1.3

IMG_20220408_110021

>> syms x
>> f=exp(1)^(-m*x^2)
>> int(f,x,0,inf)

1.4

imagen-20220408111132874

>> syms x
>> f=(m/1000)+x
>> f1=power(f,1/3)
>> taylor(f1,x,0,'Order',5)
>> pretty(ans)

1.5

imagen-20220408111501248

imagen-20220408112657933

1.6

imagen-20220408111933112

imagen-20220408112608184

1.7

IMG_20220408_105940

archivo M

function f=func1(x)
f=x.*2.*(x>=0&x<=1/2)+(2*(1-x)).*(x>=1/2&x<=1);
end

comandos de dibujo

 >> x=linspace(0,1);
 >> y=func1(x);
 >> plot(x,y);

La pregunta (2) no es obligatoria

1.8

imagen-20220408112244059

(1)
>> t=-m/10:0.1:m/10;
>> x=(m/20)*cos(t);
>> y=(m/20)*sin(t);
>> z=t;
>> plot3(x,y,z)

(2)
>> t=-m/10:0.1:m/10;
>> x=cos(t)+t.*sin(t);
>> y=sin(t)-t.*cos(t);
>> z=-t;
>> plot3(x,y,z)

1.9

IMG_20220408_110036

>> a=[1000/m,500/m,400/m,100/m];
col=['r','b','k','g'];
x=linspace(-0.1,1,1000);
for i=1:4
y=0.*(x<=0)+(a(i)*exp(-a(i)*x)).*(x>0);
plot(x,y,'color',col(i),'linewidth',1)
hold on;
end
>> legend('1000','500','400','100')

1.10

IMG_20220408_113906

>> syms x y;
>> f=sin(x^2+(m/1000)*y^2)-cos(x*y);
>> ezplot('f',[-6,6,-8,8])

1.11

IMG_20220408_113925

>> fmesh(@(x,y) m.*x.^2+y.^4);

1.12

imagen-20220408151851822

Código de dibujo, que grid on;es cuadricular la imagen dibujada

fplot(@(x) exp(x)-((3*m)/(m+100))*x.^2);
grid on;

Comando raíz aproximado (fsolve o fzero)

f=@(x) exp(x)-((3*m)/(m+100))*x.^2;
x=[-1 0 2 4];
arrayfun(@(x) fzero(f,x),x)

El rango de x se obtiene mirando la imagen, y el rango cero está en los tres rangos de -1~0, 0~2y2~4

imagen-20220408152113871


Ejercicio 2

2.1

IMG_20220408_113826

>>f=inline('(x+m/x)/2');
x0=-3;
for i=1:10;
x0=f(x0);
fprintf('%g,%12.8f\n',i,x0)
end;

Cambie el valor de x0 para obtener otro resultado, el número es el mismo, el signo es diferente

El resultado impreso al final es el mismo, Xnes decir, converge a ese valor

2.2

IMG_20220408_113830

Pregunta 1)

>> f=inline('(x-1)/(x+m)');
>> x0=1;
>> for i=1:10;
x0=f(x0);
fprintf('%g,%12.8f\n',i,x0);
end;

Pregunta 2)

Debido a que el rango de x debe usarse al juzgar la secuencia iterativa con el diagrama de telaraña, el par de funciones de la pregunta (1) debe usarse f2(x)para el cálculo, y el rango de x que finalmente se escribe debe incluir el f2(x)valor de convergencia calculado.

Si el valor de convergencia calculado es 316.2343564, el último rango escrito puede ser[250,350]

>>  f=inline('(x+m*m)/(x+m)');
x=[];
y=[];
x(1)=0.5;
y(1)=0;
x(2)=x(1);
y(2)=f(x(1));
for i=1:100
x(1+2*i)=y(2*i);
x(2+2*i)=x(1+2*i);
y(1+2*i)=x(1+2*i);
y(2+2*i)=f(x(2+2*i));
end;
plot(x,y,'r')
hold on
syms x;
ezplot(x,[250,500]);
ezplot(f(x),[250,500]);
axis([250,500,250,500]);
hold off

Como resultado, aparece la siguiente imagen, que indica que la función es convergente

imagen-20220408160134776

2.3

IMG_20220408_113837

archivo M

function y=func2(x)
if x>=0&&x<=1/2
    y=2*x;
elseif x>=1/2&&x<=1
    y=2*(1-x);
end

código de línea de comando

x(1)=rand();
for i=1:20
x(1)=func2(x(1))
fprintf('%g,%g\n',i,x(1));
end

El resultado es un desastre, por lo que es caótico.

2.4

IMG_20220408_161530

f=inline('a*x*(1-x)');
x0=0.5;
for i=1:100
plot(i,f(x0),'.')
x0=f(x0);
hold on
end

La a en la función en línea debe reemplazarse con un valor específico ; de lo contrario, se informará un error.

un 2.8 3.4 3.6 3.84
Convergencia de secuencia convergencia T=2 caos T=3

cuco cuco

Descubrí que algunas personas mayores ya han compartido el informe experimental completo, ¡así que no lo escribiré!

portal

imagen-20220409131504284

¡vamos vamos!

Supongo que te gusta

Origin blog.csdn.net/muxuen/article/details/124042753
Recomendado
Clasificación