matlab计算高数问题



![img](https://img-mid.csdnimg.cn/release/static/image/

img


mid/ask/950520764656168.jpg "#left")

简单案例站内教程很多,供你参考两个,课程实践作业建议自行学习调试:

1.logistic混沌序列图像加密:

clc,clear,close all;
pic1 = imread("任选一张图片.jpg");
pic1 = rgb2gray(pic1);  #转灰度
imshow(pic1)
[M,N] = size(pic1(:,:,1));

x0 = 0.5;
u = 0:0.008:4;
xn = ft_logistic(x0,length(u)-1,u);  %生成混沌序列
figure()
plot(u(2:end),xn,'b.',"linewidth",1.2)
grid on

L_xn = zeros(1,M*N);
L_xn(1) = xn(1,end);  %将混沌状态的最后一个值作为初值
for i = 1:M*N-1  %生成新的混沌序列用于加密
    L_xn(i+1) = 4*L_xn(i)*(1-L_xn(i));  
end
L_xn = uint8(255*L_xn);  %混沌序列反归一化
xnn = reshape(L_xn,[M,N]); %xnn为混沌秘钥
mixed_pic = bitxor(pic1,xnn);  %异或操作加密
figure()
imshow(mixed_pic)
remix_pic = bitxor(mixed_pic,xnn);  %异或操作解密
figure()
imshow(remix_pic)

function [yn] = ft_logistic(x0,num_len,u)
    xn = x0;
    for j = 1:num_len
        u_i = u(j);
        for i = 1:j
            xn(i+1) = u_i*xn(i).*(1-xn(i));
        end
        yn(1,j) = xn(j);
    end
end

img


img

2.卷积运算图像锐化:

clc,clear,close all;
pic1 = imread("任选图片.jpg");
pic1 = im2double(pic1);
%选择卷积核模板
k_core = [  0 -1  0 ;
    -1  5 -1 ;
     0 -1  0 ]; 
[pic2,pic3] = sharpen(pic1,k_core);  %卷积运算,锐化处理
subplot(311)
imshow(pic1);title('原图')
subplot(312)
imshow(pic2);title('锐化图像')
subplot(313)
imshow(pic3);title('已取反的边缘')

function [fsha,fedg]=sharpen(f,Operator)
[m,n,h]=size(f);
fsha=f;
for k=1:h
    for i=2:m-1
        for j=2:n-1
            fsha(i,j,k)=sum(sum(f(i-1:i+1,j-1:j+1,k).*Operator)); %根据模板进行锐化处理
        end
    end
end
if sum(Operator(:))>0
    fedg=f-fsha+1; %取反加重的边缘
else
    fedg=1-fsha; %取反未加重的边缘
    fsha=f+fsha; %此时,锐化图像=原图像+边缘
end
end

img