построение логических цепочек с. ТОИ 3-4. Лабораторная 2 A4,2,13,2,00,1,2
Скачать 89.6 Kb.
|
Лабораторная 2 A=[4,2,1;3,-2,0;0,-1,2] B=[2,0,2;5,-7,-2;1,0,-1] D=3.*(A^2+B^2)-2*A*B invD=inv(D) detD=det(D) disp(D,"Матрица D:") disp(invD,"Матрица, обртаная к D:") disp(detD,"Определитель матрицы D:") A=[1,-3,1,1;1,3,5,7;3,5,7,1;-5,-7,-1,-3] b=[11;12;0;-4] x=linsolve(A,-b) x_inv=inv(A)*b disp(x,"Решение системы:") disp(x_inv,"Проверка решения системы:") Лабораторная 3 Задание 1 function y = f(x) y = ((x+5)^2)^(1/3) - (x-1)^(1/3) endfunction x = linspace(-10, 10, 1000) y = zeros(1, 1000) for i = 1:1000 y(i) = f(x(i)) end plot(x, y) xlabel('x') ylabel('f(x)') title('Graph of f(x) = ((x+5)^2)^(1/3) - (x-1)^(1/3)') Задание 2 // Define the range of the polar angle ω omega = linspace(0, 6*%pi, 1000); // 1000 points from 0 to 6π // Compute the radius p(ω) using the given function p = 5 * (sin(omega / 3))^2; // Convert polar coordinates (p, ω) to Cartesian coordinates (x, y) x = p .* cos(omega); y = p .* sin(omega); // Plot the Cartesian coordinates (x, y) plot(x, y); xlabel('X-axis'); ylabel('Y-axis'); title('Polar plot'); // Define the range of the polar angle ω omega = linspace(0, 6*%pi, 1000); // 1000 points from 0 to 6π // Compute the radius p(ω) using the given function p = 5 * (sin(omega / 3))^2; // Convert polar coordinates (p, ω) to Cartesian coordinates (x, y) x = p .* cos(omega); y = p .* sin(omega); // Plot the Cartesian coordinates (x, y) plot(x, y); xlabel('X-axis'); ylabel('Y-axis'); title('Polar plot'); Задание 3 // Define the range of x and y with a step of 0.2 x = -10:0.2:10; y = -10:0.2:10; // Create a meshgrid for x and y [X, Y] = meshgrid(x, y); // Compute z using the given function Z = sin(X) .* cos(Y / 2); // Plot the 3D graph using mesh and surf figure; subplot(121); mesh(X, Y, Z); xlabel('X-axis'); ylabel('Y-axis'); zlabel('Z-axis'); title('Mesh plot of z = sin(x) * cos(y/2)'); subplot(122); surf(X, Y, Z); xlabel('X-axis'); ylabel('Y-axis'); zlabel('Z-axis'); title('Surface plot of z = sin(x) * cos(y/2)'); function z=my_function(x, y) z = sin(x) .* cos(y / 2); endfunction // Define the range of x and y with a step of 0.2 x = -10:0.2:10; y = -10:0.2:10; // Create a meshgrid for x and y [X, Y] = meshgrid(x, y); // Compute z using the given function and feval Z = feval(X, Y, my_function); Задание 4 function f = func(x, y) f = x^3 + y^4 - 10*x - 8*y endfunction min_value = 1e10 // Start with a large value for the minimum min_x = 0 min_y = 0 step = 0.3 x_range = -3:step:3 y_range = -3:step:3 for x = x_range for y = y_range temp_value = func(x, y) if temp_value < min_value then min_value = temp_value min_x = x min_y = y end end end disp("Minimum value of the function: " + string(min_value)) disp("Coordinates: x = " + string(min_x) + ", y = " + string(min_y)) Определите функцию func(x, y), которая возвращает значение функции f(x, y) = x^3 + y^4 - 10x - 8y для заданных x и y. Инициализируйте переменную min_value большим значением (1e10), которое будет обновлено минимальным найденным значением. Инициализируйте переменные min_x и min_y, которые будут хранить координаты минимального значения. Установите размер шага на 0,3, как указано. Задайте x_range и y_range как диапазон значений x и y от -3 до 3 с шагом 0,3. Используйте вложенные циклы для перебора всех возможных комбинаций x и y в указанном диапазоне. Для каждой комбинации x и y вычислите значение функции с помощью func(x, y) и сохраните его в переменной temp_value. Проверьте, меньше ли значение temp_value, чем текущее значение min_value. Если это так, обновите min_value, `min_x' и min_yvariables новым минимальным значением и соответствующими координатами. После завершения циклов переменные min_value, min_x и min_y` будут содержать минимальное значение функции и соответствующие координаты в указанном диапазоне. Используйте функцию disp() для отображения минимального значения функции и координат. После запуска этого кода в Scilab вы увидите выходные данные, отображающие минимальное значение функции и координаты (x, y), где минимум находится в указанном диапазоне с заданным размером шага 0,3. Лабораторная работа 4 Задание 1 // Define the functions function y = f(x) y = x^2 + exp(-2*x) endfunction function y = g(x) y = x^2 + x*exp(-x) endfunction // Set the interval and create the x values a = -5; b = 5; step = 0.01; x = a:step:b; // Calculate the function values using a loop y_f = zeros(1, length(x)); y_g = zeros(1, length(x)); for i = 1:length(x) y_f(i) = f(x(i)); y_g(i) = g(x(i)); end // Create a figure with two subplots figure(); subplot(2,1,1); plot(x, y_f); title("f(x) = x^2 + exp(-2x)"); xlabel("x"); ylabel("f(x)"); subplot(2,1,2); plot(x, y_g); title("g(x) = x^2 + x*exp(-x)"); xlabel("x"); ylabel("g(x)"); Задание2а // Surface Plot clc; clear; x = linspace(-2, 2, 100); y = linspace(0, 10, 100); [X, Y] = meshgrid(x, y); Z = X.^2 .* cos(Y); scf(); surf(X, Y, Z); xlabel('X-axis'); ylabel('Y-axis'); zlabel('Z-axis'); title('Surface plot of f(x,y) = x^2 * cos(y)'); задание2б // Level Lines Plot clc; clear; x = linspace(-2, 2, 100); y = linspace(0, 10, 100); [X, Y] = meshgrid(x, y); Z = X.^2 .* cos(Y); scf(); contour(X, Y, Z, 20); xlabel('X-axis'); ylabel('Y-axis'); title('Level lines of f(x,y) = x^2 * cos(y)'); |