Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Ввод нового элемента матрицы.Содержание книги
Поиск на нашем сайте
%Executes on button press in pushbutton2. INPUT NEW MATRIX ELEMENT function pushbutton2_Callback(hObject, eventdata, handles) NumberRows=str2double(get(handles.edit1,'String')); NumberColumns=str2double(get(handles.edit2,'String')); i=str2double(get(handles.edit4,'String')); % номер строки элемента матрицы j=str2double(get(handles.edit5,'String')); % номер столбца элемента матрицы Matrix=str2num(get(handles.edit6,'String')); % считать матрицу из главного окна if i<=NumberRows if j<=NumberColumns Matrix(i,j)=str2double(get(handles.edit3,'String')); % считать новый элемент матрицы из окошка для него S=mat2str(Matrix); set(handles.edit6,'String',S); % вывести матрицу с учетом нового введенного элемента в главное окно интерфейса if j<NumberColumns b=j+1; a=i; else b=1; a=i+1; end S=sprintf('%g',a); set(handles.edit4,'String',S); % вывести следующий номер строки S=sprintf('%g',b); set(handles.edit5,'String',S); % вывести следующий номер столбца j=j+1; S=sprintf('%s',' '); set(handles.edit3,'String',S); % вывести пробел в окно для нового ввода элемента матрицы (то есть стереть предыдущий элемент в окне) end i=i+1; end end Открытие из файла. % --- Executes on button press in pushbutton4. function pushbutton4_Callback(hObject, eventdata, handles) [f,p]=uigetfile('C:\MATLAB701\work\Book1\Primer_Matr2D.txt','Окно выбора'); OtkudaChitat=strcat(p,f); f=fopen(OtkudaChitat,'rt'); %chitat is faila matricu StehiometrMatrix(n,m) n=fscanf(f,'%d',1); m=fscanf(f,'%d',1); for i=1:n for j=1:m Matrix(i,j)=fscanf(f,'%g',1); end end fclose(f); S=mat2str(Matrix); set(handles.edit6,'String',S); S=n; set(handles.edit1,'String',S); S=m; set(handles.edit2,'String',S); end
ГЛАВА 2. ЗАДАЧИ ВЫЧИСЛИТЕЛЬНОЙ МАТЕМАТИКИ Программирование по блок-схемам Для начинающих изучение курса вычислительной математики, традиционным является выполнение упражнений по блок схемам. Это позволяет развить ряд элементарных знаний, умений и навыков программирования и в том числе отладки несложных программ на МАТЛАБе. Основные элементы блок-схем Начало вычислительного процесса. Конец вычислений.
Блок обмена информацией; ввод данных и вывод результатов.
Вычислительный блок; выполнение операции или группы операций вычислительного процесса.
Алгоритмический блок; Логический блок; выбор направления выполнения алгоритма в зависимости от условия.
Циклический блок; организует многократное выполнение вложенных блоков. Алгоритм - предписание, однозначно задающее процесс преобразования исходной информации в виде последовательности элементарных дискретных шагов, приводящих за конечное число их применений к результату. Любой алгоритм можно представить как совокупность некоторых базовых, т.е. основных структур таких как: следование, ветвление и цикл. Программа - алгоритм решения задачи записанный на понятном машине языке в виде точно определенной последовательности операций - программы для ЭВМ. Составление программ (программирование) обычно производится с помощью промежуточного (алгоритмического) языка. В алгоритмах и программах для обозначения данных используются переменные, которым даются уникальные имена (идентификаторы). Алгоритмы будем представлять в виде блок-схем, а программы записывать на языке программирования MATLAB. Программа в MATLAB оформляется в виде М-файла и осуществляет необходимые операции над массивами. Массив представляет собой набор переменных с одним именем, одним типом и разными индексами. Каждая переменная называется элементом массива. Количество хранящихся в массиве элементов называется размером массива.
На блок-схеме 1 в верхней части показаны исходные значения переменных и правильныеответы, а в нижней части показаны еще раз исходные значения переменных и функция. По блок-схеме 1 составлена программа. Она состоит из следующих частей: GLAV главная управляющая функция, вызывает остальные по мере необходимости; DATA содержит исходные данные, объявленные как глобальные переменные. Эти же переменные объявлены как глобальные в GLAV. После вызова в GLAV функции DATA эти переменные получают значения (инициируются); fun _ BS _1 функция осуществляющая вычисления в соответствии с блок-схемой 1; f функция указанная в блок-схеме как f (x)= x 2 -5; REPORT функция обеспечивающая вывод данных (результатов и дополнительной информации). function DATA %исходные данные global a b eps n_plot_dots; %глобальные переменные a=2; b=3; eps=0.0001;%точность расчета n_plot_dots=101;%количество точек графика end
function [ fx ] = f(x)%функция корни f(x)=0 ищем fx=x.^2-5;%поставлена точка для поэлемент. выполн.-я действий end
function [ x, fx ] = fun_BS_1(a, b, eps) fa=f(a); for i=1:100 %цикл со счетчиком ограничивает нас 100 повторов x=(a+b)/2; if fa*f(x)<0 b=x; else a=x; end % if if abs(b-a)>eps %проверка условия прерывания цикла i %вывод числа выполненных итераций break %прерывание цикла end% if end % for i x=(a+b)/2; fx=f(x); end % function
function GLAV_BS_1 %главная исполняемая программа global a b eps x fx n_plot_dots; DATA;%задаются исходные данные из файла DATA [ x, fx ] = fun_BS_1(a, b, eps);%вызов функции REPORT;%вызов вывода результатов end
function REPORT %вывод результатов global a b eps x fx n_plot_dots; xmas=zeros(n_plot_dots);%задаем массив из нулей нужного fmas=zeros(n_plot_dots);% размера disp('Arguments'); disp(['a = ' num2str(a,'%10.5f') ]);%функция num2str disp(['b = ' num2str(b,'%10.5f') ]);% преобразует число в disp(['eps = ' num2str(eps,'%10.5f') ]);% строку символов, disp('Results'); % указываем '%10.5f' формат вывода (число с disp(['x = ' num2str(x,'%10.5f') ]);% заданным количеством disp(['fx = ' num2str(fx,'%10.5f') ]);%знаков после запятой h=(b-a)/(n_plot_dots-1); for i=1:n_plot_dots if i==1 xmas(i)=a; else xmas(i)=xmas(i-1)+h; end %if fmas(i)=f(xmas(i)); end disp(' i x fx '); disp('_____________________________') i=0; for i=1:length(xmas)%вывод таблицы результатов, строки xx=xmas(i);%формируются командой sprintf, указаны ffx=fmas(i);%форматы вывода перемнных и табуляция между disp(sprintf('%10.3f\t%10.3f\t %10.3f',i,xx,ffx));%ними end %for plot(xmas,fmas,'r.');%вывод графика функции grid on; xlabel('x'); ylabel('y'); title('Block shem #1'); end
Блок - схема 2. Второй вариант метода деления пополам Текст программы к блок-схеме 2. function DATA global a b eps n_plot_dots; a=2; b=3; eps=0.0001; n_plot_dots=101; end
function [ fx ] = f(x) fx=x.^2-5; end
function [ x, fx ] = fun_BS_2(a, b, eps) fa=f(a); for i=1:100 %цикл со счетчиком ограничивает число итераций if abs(b-a)>eps % проверка условия продолжения x=(a+b)/2; if fa*f(x)<0 b=x; else a=x; end %if else % вариант требующий прерывания цикла i % вывод числа выполненных итераций break;% прерывание цикла end %if end %for i x=(a+b)/2; fx=f(x); end % function
function GLAV_BS_2 global a b eps x fx n_plot_dots; DATA; [ x, fx ] = fun_BS_2(a, b, eps); REPORT; end function REPORT global a b eps x fx n_plot_dots; xmas=zeros(n_plot_dots); fmas=zeros(n_plot_dots); disp('Arguments'); disp(['a = ' num2str(a,'%10.5f') ]); disp(['b = ' num2str(b,'%10.5f') ]); disp(['eps = ' num2str(eps,'%10.5f') ]); disp('Results'); disp(['x = ' num2str(x,'%10.5f') ]); disp(['fx = ' num2str(fx,'%10.5f') ]); h=(b-a)/(n_plot_dots-1); for i=1:n_plot_dots if i==1 xmas(i)=a; else xmas(i)=xmas(i-1)+h; end %if fmas(i)=f(xmas(i)); end disp(' i x fx '); disp('_____________________________') i=0; for i=1:length(xmas)%подготовка таблицы аргумента и функции xx=xmas(i); ffx=fmas(i); disp(sprintf('%10.3f\t%10.3f\t %10.3f',i,xx,ffx)); end %for plot(xmas,fmas,'r.'); grid on;%покрытие сеткой xlabel('x');%подписи к осям ylabel('y'); title('Block shem #2');%подпись к графику end
Блок-схема 3. Метод касательных (Ньютона) function DATA global a b eps n_plot_dots; a=2; b=3; eps=0.0001; n_plot_dots=101; end
function [ fx ] = f(x)%функция f(x)=0 корни ее ищем fx=x.^2-5; end
function [ fpx ] = fp(x)%производная от функции fpx=2*x; end
function [ x, fx ] = fun_BS_3(a, b, eps) h=b-a; x=a; for i=1:100 if abs(h)>eps h=f(x)/fp(x); x=x-h; if and(a<x, x<b)% если a<x<b продолжить else x=b; end %if else % вариант требующий прерывания цикла i break;%прерывание цикла end %if end %for i fx=f(x); end % function
function GLAV_BS_3 global a b eps x fx n_plot_dots; DATA; [ x, fx ] = fun_BS_3(a, b, eps); REPORT; end
function REPORT global a b eps x fx n_plot_dots; xmas=zeros(n_plot_dots); fmas=zeros(n_plot_dots); disp('Arguments'); disp(['a = ' num2str(a,'%10.5f') ]); disp(['b = ' num2str(b,'%10.5f') ]); disp(['eps = ' num2str(eps,'%10.5f') ]); disp('Results'); disp(['x = ' num2str(x,'%10.5f') ]); disp(['fx = ' num2str(fx,'%10.5f') ]); h=(b-a)/(n_plot_dots-1); for i=1:n_plot_dots if i==1 xmas(i)=a; else xmas(i)=xmas(i-1)+h; end %if fmas(i)=f(xmas(i)); end disp(' i x fx '); disp(' __________________________________') i=0; for i=1:length(xmas) xx=xmas(i); ffx=fmas(i); disp(sprintf('%10.3f\t%10.3f\t %10.3f',i,xx,ffx)); end %for plot(xmas,fmas,'r.'); grid on; xlabel('x'); ylabel('y'); title('Block shem #3'); end Блок - схема 4 Программу к блок-схеме 4 расположим перед блок-схемой. function DATA global x dx eps; x=3; dx=0.1; eps=0.0001; end
function [ fx ] = f(x) fx=x.^2-5; end
function [ res ] = fun_BS_4(x, dx, eps) i=1; d1=(f(x+dx)-f(x))/dx; for j=1:100 dx=dx/2; if i==1 d2=(f(x+dx)-f(x))/dx; i=2; else d1=(f(x+dx)-f(x))/dx; i=1; end %if if abs(d1-d2)>eps else j break; end %if end %for j if i==1 res=d1; else res=d2; end %if end % function
function GLAV_BS_4 global x dx eps res; DATA; [ res ] = fun_BS_4(x, dx, eps); REPORT; end
function REPORT global x dx eps res; disp('Block scheme #4'); disp('Arguments'); disp(['x = ' num2str(x,'%10.5f') ]);% disp(['dx = ' num2str(dx,'%10.5f') ]); disp(['eps = ' num2str(eps,'%10.5f') ]); disp('Result'); disp(['res = ' num2str(res,'%10.5f') ]); end
Блок - схема 5 function DATA global a b eps n_plot_dots; a=1; b=3; eps=0.0001; n_plot_dots=101; end
function [ fx ] = f(x) fx=x.^2-5; end function [ x, fx ] = fun_BS_5(a, b, eps) x=a; f1=f(a); h=b-a; for i=1:100 if abs(h)>eps h=h/3; for j=1:100 x=x+h; f2=f(x); if f1*f2>0 else j break; end %if end %for j x=x-h; else i break; end %if end %for x=x-h/2; fx=f(x); end % function
function GLAV_BS_5 global a b eps x fx n_plot_dots; DATA; [ x, fx ] = fun_BS_5(a, b, eps); REPORT; end
function REPORT global a b eps x fx n_plot_dots; xmas=zeros(n_plot_dots); fmas=zeros(n_plot_dots); disp('Arguments'); disp(['a = ' num2str(a,'%10.5f') ]); disp(['b = ' num2str(b,'%10.5f') ]); disp(['eps = ' num2str(eps,'%10.5f') ]); disp('Results'); disp(['x = ' num2str(x,'%10.5f') ]); disp(['fx = ' num2str(fx,'%10.5f') ]); h=(b-a)/(n_plot_dots-1); for i=1:n_plot_dots if i==1 xmas(i)=a; else xmas(i)=xmas(i-1)+h; end %if fmas(i)=f(xmas(i)); end disp(' i x fx '); disp(' ________________________________') i=0; for i=1:length(xmas) xx=xmas(i); ffx=fmas(i); disp(sprintf('%10.3f\t%10.3f\t %10.3f',i,xx,ffx)); end %for plot(xmas,fmas,'r.'); grid on; xlabel('x'); ylabel('y'); title('Block shem #5'); end Блок - схема 6 function DATA global a b eps n_plot_dots; a=1; b=3; eps=0.0001; n_plot_dots=101; end
function [ fx ] = f(x) fx=x.^2-5; end
function [ x, fx ] = fun_BS_6(a, b, eps) h=(b-a)/2; x=a; fa=f(x); for i=1:100 if abs(h)>eps x=x+h; fx=f(x); if fa*fx<0 x=x-h; else fa=fx; end %if h=h/2; else i break; end %if end %for i fx=f(x); end % function
function GLAV_BS_6 global a b eps x fx n_plot_dots; DATA; [ x, fx ] = fun_BS_6(a, b, eps); REPORT; end
function REPORT global a b eps x fx n_plot_dots; xmas=zeros(n_plot_dots); fmas=zeros(n_plot_dots); disp('Arguments'); disp(['a = ' num2str(a,'%10.5f') ]); disp(['b = ' num2str(b,'%10.5f') ]); disp(['eps = ' num2str(eps,'%10.5f') ]); disp('Results'); disp(['x = ' num2str(x,'%10.5f') ]); disp(['fx = ' num2str(fx,'%10.5f') ]); h=(b-a)/(n_plot_dots-1); for i=1:n_plot_dots if i==1 xmas(i)=a; else xmas(i)=xmas(i-1)+h; end %if fmas(i)=f(xmas(i)); end disp(' i x fx '); disp(' ________________________________') i=0; for i=1:length(xmas) xx=xmas(i); ffx=fmas(i); disp(sprintf('%10.3f\t%10.3f\t %10.3f',i,xx,ffx)); end %for plot(xmas,fmas,'r.'); grid on; xlabel('x'); ylabel('y'); title('Block shem #6'); end Блок - схема 7 function DATA global a b eps n_plot_dots; a=-1; b=2; eps=0.0001; n_plot_dots=101; end
function [ x, fx ] = fun_BS_7(a, b, eps) x=a; f1=f(x); h=(b-a)/3; for i=1:100 if abs(h)>eps x=x+h; if x>b x=b; end %if f2=f(x); if f2>f1 h=-h/3; end %if f1=f2; else i break; end %if end % for i x=x+2*h; fx=f(x); end % function function [ fx ] = f(x) fx=x.^2-5; end
function GLAV_BS_7 global a b eps x fx n_plot_dots; DATA; [ x, fx ] = fun_BS_7(a, b, eps); REPORT; end
function REPORT global a b eps x fx n_plot_dots; xmas=zeros(n_plot_dots); fmas=zeros(n_plot_dots); disp('Arguments'); disp(['a = ' num2str(a,'%10.5f') ]); disp(['b = ' num2str(b,'%10.5f') ]); disp(['eps = ' num2str(eps,'%10.5f') ]); disp('Results'); disp(['x = ' num2str(x,'%10.5f') ]); disp(['fx = ' num2str(fx,'%10.5f') ]); h=(b-a)/(n_plot_dots-1); for i=1:n_plot_dots if i==1 xmas(i)=a; else xmas(i)=xmas(i-1)+h; end %if fmas(i)=f(xmas(i)); end disp(' i x fx '); disp(' ________________________________') i=0; for i=1:length(xmas) xx=xmas(i); ffx=fmas(i); disp(sprintf('%10.3f\t%10.3f\t %10.3f',i,xx,ffx)); end %for plot(xmas,fmas,'r.'); grid on; xlabel('x'); ylabel('y'); title('Block shem #7'); end Блок - схема 8 function DATA global a b eps n_plot_dots; a=1; b=3; eps=0.0001; n_plot_dots=101; end function [ fx ] = f(x) fx=x.^2-5; end
function [ x, fx ] = fun_BS_8(a, b, eps) n=log((b-a)/eps)/log(2); fa=f(a); i=0; for j=1:100 if i<n x=(a+b)/2; fx=f(x); if fa*fx<0 b=x; else a=x; end %if i=i+1; else j break; end %if end %for fx=f(x); end % function
function GLAV_BS_8 global a b eps x fx n_plot_dots; DATA; [ x, fx ] = fun_BS_8(a, b, eps); REPORT; end
function REPORT global a b eps x fx n_plot_dots; xmas=zeros(n_plot_dots); fmas=zeros(n_plot_dots); disp('Arguments'); disp(['a = ' num2str(a,'%10.5f') ]); disp(['b = ' num2str(b,'%10.5f') ]); disp(['eps = ' num2str(eps,'%10.5f') ]); disp('Results'); disp(['x = ' num2str(x,'%10.5f') ]); disp(['fx = ' num2str(fx,'%10.5f') ]); h=(b-a)/(n_plot_dots-1); for i=1:n_plot_dots if i==1 xmas(i)=a; else xmas(i)=xmas(i-1)+h; end %if fmas(i)=f(xmas(i)); end disp(' i x fx '); disp(' ________________________________') i=0; for i=1:length(xmas) xx=xmas(i); ffx=fmas(i); disp(sprintf('%10.3f\t%10.3f\t %10.3f',i,xx,ffx)); end %for plot(xmas,fmas,'r.'); grid on; xlabel('x'); ylabel('y'); title('Block shem #8'); end Блок - схема 9 function DATA global x0 y0 xk n eps; x0=1; y0=1; xk=2; eps=0.01; n=10; end
function [ fxy ] = f(x,y) fxy=x*y; end
function [ xmas, fmas, Jres ] = fun_BS_9(x0,y0,xk,n, eps) yk=0; y=2*eps; for i=1:100 if abs(yk-y)>eps h=(xk-x0)/n; yk=y; x=x0; y=y0; n=n*2; for j=1:100 if x<xk y=y+f(x,y)*h; x=x+h; xmas(j)=x; fmas(j)=y; Jres=j; else j break; end %if end %for j n=n*2; else i break; end %if end % for i disp ('OK BS 9'); end % function function GLAV_BS_9 global x0 y0 xk n xmas fmas Jres eps; DATA; [ xmas, fmas, Jres ] = fun_BS_9(x0,y0,xk,n,eps); REPORT; end
function REPORT global x0 y0 xk n eps xmas fmas Jres; disp('Arguments'); disp(['x0 = ' num2str(x0,'%10.5f') ]); disp(['xk = ' num2str(xk,'%10.5f') ]); disp(['y0 = ' num2str(y0,'%10.5f') ]); disp(['n = ' num2str(n,'%10.5f') ]); disp(['eps = ' num2str(eps,'%10.5f') ]); disp('Results'); disp(['Jres = ' num2str(Jres,'%10.5f') ]); disp(' i x fx '); disp(' ________________________________') i=0; for i=1:Jres xx=xmas(i); ffx=fmas(i); disp(sprintf('%10.5f\t%10.5f\t %10.5f',i,xx,ffx)); end %for plot(xmas,fmas,'r.'); grid on; xlabel('x'); ylabel('y'); title('Block shem #9'); end Блок - схема 10 function DATA global a b eps n_plot_dots; a=-1; b=2; eps=0.0001; n_plot_dots=101; end
function [ fx ] = f(x) fx=x.^2-5; end
function [ x, fx ] = fun_BS_10(a, b, eps) x1=a; x4=b; Z=1/3; for i=1:100 x2=x1+Z*(x4-x1); x3=x4-Z*(x4-x1); F2=f(x2); F3=f(x3); if F2<F3 x4=x3; else x1=x2; end %if if abs(x4-x1)>2*eps else i break; end %if end %for i x=(x1+x4)/2; fx=f(x); end % function
function GLAV_BS_10 global a b eps x fx n_plot_dots; DATA; [ x, fx ] = fun_BS_10(a, b, eps); REPORT; end
function REPORT global a b eps x fx n_plot_dots; xmas=zeros(n_plot_dots); fmas=zeros(n_plot_dots); disp('Arguments'); disp(['a = ' num2str(a,'%10.5f') ]); disp(['b = ' num2str(b,'%10.5f') ]); disp(['eps = ' num2str(eps,'%10.5f') ]); disp('Results'); disp(['x = ' num2str(x,'%10.5f') ]); disp(['fx = ' num2str(fx,'%10.5f') ]); h=(b-a)/(n_plot_dots-1); for i=1:n_plot_dots if i==1 xmas(i)=a; else xmas(i)=xmas(i-1)+h; end %if fmas(i)=f(xmas(i)); end disp(' i x fx '); disp(' ________________________________') i=0; for i=1:length(xmas) xx=xmas(i); ffx=fmas(i); disp(sprintf('%10.3f\t%10.3f\t %10.3f',i,xx,ffx)); end %for plot(xmas,fmas,'r.'); grid on; xlabel('x'); ylabel('y'); title('Block shem #10'); end Блок - схема 11 function DATA global x0 y0 xk n; x0=0; y0=1; xk=1; n=10; end
function [ fxy ] = f(x,y) fxy=x*y; end
function [ xmas, fmas, Jres ] = fun_BS_11(x0,y0,xk,n) h=(xk-x0)/n; x=x0; y=y0; for i=1:100 if x<xk f0=f(x,y); x1=x+h/2; y1=y+f0*h/2; y=y+f(x1,y1)*h; x=x+h; xmas(i)=x; fmas(i)=y; Jres=i; else i break; end %if end %for i disp('OK BS 11'); end % function
function GLAV_BS_11 global x0 y0 xk n xmas fmas Jres; DATA; [ xmas, fmas, Jres ] = fun_BS_11(x0,y0,xk,n); REPORT; end
function REPORT global x0 y0 xk n xmas fmas Jres; disp('Arguments'); disp(['x0 = ' num2str(x0,'%10.5f') ]); disp(['xk = ' num2str(xk,'%10.5f') ]); disp(['y0 = ' num2str(y0,'%10.5f') ]); disp(['n = ' num2str(n,'%10.5f') ]); disp('Results'); disp(' i x fx '); disp(' ________________________________') i=0; for i=1:Jres xx=xmas(i); ffx=fmas(i); disp(sprintf('%10.5f\t%10.5f\t %10.5f',i,xx,ffx)); end %for plot(xmas,fmas,'r.'); grid on; xlabel('x'); ylabel('y'); title('Block shem #11'); end Блок - схема 12 function DATA global a b eps n; a=1; b=2; eps=0.0001; n=10; end
function [ fx ] = f(x) fx=x.^2-5; end
function [ s ] = fun_BS_12(a, b, n, eps) s1=0; s=2*eps; for i=1:100 if abs(s-s1)>eps s1=s; h=(b-a)/n; x=a+h/2; s=0; for j=1:100 if x<b s=s+f(x); x=x+h; else j break; end %if end %for j s=s*h; n=n*2; else i break; end %if end %for i end % function
function GLAV_BS_12 global a b eps s n; DATA; [ s ] = fun_BS_12(a, b, n, eps) REPORT; end function REPORT global a b eps s n; disp('BS 12'); disp('Arguments'); disp(['a = ' num2str(a,'%10.5f') ]); disp(['b = ' num2str(b,'%10.5f') ]); disp(['eps = ' num2str(eps,'%10.5f') ]); disp(['n = ' num2str(n,'%10.5f') ]); disp('Results'); disp(['s = ' num2str(s,'%10.5f') ]); end Блок - схема 13 function DATA global a b n; a=1; b=2; n=10; end
function [ fx ] = f(x) fx=x.^2-5; end
function [ s, s1 ] = fun_BS_13(a, b, n) h=(b-a)/n; s=0; i=1; for i=1:100 if i<=n x=a+(i-1)*h; s=s+f(x); i=i+1; else i break; end %if end %for i s1=0; for x=a:h:b-h s1=s1+f(x); end %for i s=s*h; s1=s1*h; end % function
function GLAV_BS_13 global a b s s1 n; DATA; [ s, s1 ] = fun_BS_13(a, b, n); REPORT; end
function REPORT global a b s s1 n; disp('BS 13'); disp('Arguments'); disp(['a = ' num2str(a,'%10.5f') ]); disp(['b = ' num2str(b,'%10.5f') ]); disp(['n = ' num2str(n,'%10.5f') ]); disp('Results'); disp(['s = ' num2str(s,'%10.5f') ]); disp(['s1 = ' num2str(s1,'%10.5f') ]); end
Блок - схема 14 function DATA global a b n; a=1; b=2; n=10; end
function [ fx ] = f(x) fx=x.^2-5; end
function [ s, s1 ] = fun_BS_14(a, b, n) h=(b-a)/n; s=0; x=a+h/2; for i=1:100 s=s+f(x); x=x+h; if x<b else i break; end %if end %for i s1=0; for x=a+h/2:h:b s1=s1+f(x); end %for i s=s*h; s1=s1*h; end % function
function GLAV_BS_14 global a b s s1 n; DATA; [ s, s1 ] = fun_BS_14(a, b, n); REPORT; end
function REPORT global a b s s1 n; disp('BS 14'); disp('Arguments'); disp(['a = ' num2str(a,'%10.5f') ]); disp(['b = ' num2str(b,'%10.5f') ]); disp(['n = ' num2str(n,'%10.5f') ]); disp('Results'); disp(['s = ' num2str(s,'%10.5f') ]); disp(['s1 = ' num2str(s1,'%10.5f') ]); end Блок - схема 15 function DATA global a b n; a=1; b=2; n=10; end
function [ fx ] = f(x) fx=x.^2-5; end
function [ s, s1 ] = fun_BS_15(a, b, n) h=(b-a)/n; s=0; x=a+h/2; for i=1:100 if x<b s=s+f(x); x=x+h; else i break; end %if end %for i s1=0; for x=a+h/2:h:b s1=s1+f(x); end%for i s=s*h; s1=s1*h; end % function
function GLAV_BS_15 global a b s s1 n; DATA; [ s, s1 ] = fun_BS_15(a, b, n); REPORT; end
function REPORT global a b s s1 n; disp('BS 15'); disp('Arguments'); disp(['a = ' num2str(a,'%10.5f') ]); disp(['b = ' num2str(b,'%10.5f') ]); disp(['n = ' num2str(n,'%10.5f') ]); disp('Results'); disp(['s = ' num2str(s,'%10.5f') ]); disp(['s1 = ' num2str(s1,'%10.5f') ]); end Блок - схема 16 function DATA global a b n; a=1; b=2; n=10; end
function [ fx ] = f(x) fx=x.^2-5; end
function [ s, s1 ] = fun_BS_16(a, b, n) h=(b-a)/n; s=0; i=0; for j=1:100 x=a+i*h; s=s+(f(x)+f(x+h))/2; i=i+1; if i<=n-1 else j break; end %if end % for j s1=0; for i=0:n-1 x=a+i*h; s1=s1+(f(x)+f(x+h))/2; end % for i s=s*h; s1=s1*h; end % function
function GLAV_BS_16 global a b s s1 n; DATA; [ s, s1 ] = fun_BS_16(a, b, n); REPORT; end
function REPORT global a b s s1 n; disp('BS 16'); disp('Arguments'); disp(['a = ' num2str(a,'%10.5f') ]); disp(['b = ' num2str(b,'%10.5f') ]); disp(['n = ' num2str(n,'%10.5f') ]); disp('Results'); disp(['s = ' num2str(s,'%10.5f') ]); disp(['s1 = ' num2str(s1,'%10.5f') ]); end
Блок - схема 17 function DATA global a b n; a=1; b=2; n=10; end
function [ fx ] = f(x) fx=x.^2-5; end
function [ s, s1 ] = fun_BS_17(a, b, n) h=(b-a)/n; x=a; s=0; i=2; for j=1:100 s=s+f(x)+4*f(x+h)+f(x+2*h); x=x+2*h; i=i+2; if i<=n else j break; end %if end %for j x=a; s1=0; for i=0:n-1 s1=s1+f(x)+4*f(x+h)+f(x+2*h); x=x+2*h; end %for i s=h*s/3; s1=s1*h/3; end % function
function GLAV_BS_17 global a b s s1 n; DATA; [ s, s1 ] = fun_BS_17(a, b, n); REPORT; end
function REPORT global a b s s1 n; disp('BS 17'); disp('Arguments'); disp(['a = ' num2str(a,'%10.5f') ]); disp(['b = ' num2str(b,'%10.5f') ]); disp(['n = ' num2str(n,'%10.5f') ]); disp('Results'); disp(['s = ' num2str(s,'%10.5f') ]); disp(['s1 = ' num2str(s1,'%10.5f') ]); end Погрешности Основная задача теории погрешностей состоит в оценке погрешности результата вычислений при известных погрешностях исходных данных.
|
||||||||||||||||||||||||
Последнее изменение этой страницы: 2021-03-09; просмотров: 105; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.149.238.67 (0.011 с.) |