'입력 인수가 부족합니다' 이 오류를 해결하고 싶어요.

43 visualizaciones (últimos 30 días)
gyul
gyul el 10 de Abr. de 2024
Comentada: gyul el 10 de Abr. de 2024
syms ('x')
xo=2000;
tolerance=0.03;
Re=1.0;
fid=fopen('solution1.txt', 'w');
while Re>tolerance
assignment2v=assignment2_2f(xo);
assignment22v=assignment2_2ff(xo);
xn=xo-assignment2v/assignment22v;
Re=abs((xn-xo)/xo);
fprintf(fid, 'approx. solution is : x=5.2%f\n', xn);
xo=xn; fo=fn; ffo=ffn;
end
fprintf(fid, 'The coverged solution is : x=5.2%f\n', xo);
type solution1.txt
----------------------------
function y=assignment2_2f(x)
y=x/400+10.245*sin(4.4934*x/4000)-2;
end
---------
function g=assignment2_2ff(x)
g=diff(assignment2_2f,x);
end
-----------------------------
assignment2_2
입력 인수가 부족합니다.
오류 발생: assignment2_2f (2번 라인)
y=x/400+10.245*sin(4.4934*x/4000)-2;
오류 발생: assignment2_2 (6번 라인)
fo=int(assignment2_2f,xo); ffo=int(assignment2_2ff,xo);
  3 comentarios
gyul
gyul el 10 de Abr. de 2024
I wanted to define the substitution of 'xo' for function that 'assinment2_2f'. Now that I look at it, I don't think it's necessary. However, deleting it does not change the error.
Is the 'Re>tolerance' part correct that the one limitation you mentioned?
Dyuman Joshi
Dyuman Joshi el 10 de Abr. de 2024
If you want to define substitution use subs instead of int.

Iniciar sesión para comentar.

Respuesta aceptada

Dyuman Joshi
Dyuman Joshi el 10 de Abr. de 2024
I have made some changes to your code, please check the code below and refer to the comments for information -
syms('x')
%% Define the functions as symbolic functions
assignment2_2f(x) = x/400+10.245*sin(4.4934*x/4000)-2;
assignment2_2ff(x) = diff(assignment2_2f, x);
xo=2000;
%% Calculate the values with xo as inputs
%Note that you can use this syntax with symbolic functions as well
fo = assignment2_2f(xo);
ffo = assignment2_2ff(xo);
tolerance=0.03;
Re=1.0;
fid=fopen('solution1.txt', 'w');
while Re>tolerance
assignment2v=assignment2_2f(xo);
assignment22v=assignment2_2ff(xo);
xn=xo-assignment2v/assignment22v;
Re=abs((xn-xo)/xo);
%% I assume that fn and ffn are calculated based on xn
fn = assignment2_2f(xn);
ffn = assignment2_2ff(xn);
fprintf(fid, 'approx. solution is : x=5.2%f\n', xn);
xo=xn; fo=fn; ffo=ffn;
end
fprintf(fid, 'The coverged solution is : x=5.2%f\n', xo);
%% Also, you should close the file after data writing has been completed.
fclose(fid);
type solution1.txt
approx. solution is : x=5.24338.898407 approx. solution is : x=5.24629.292712 approx. solution is : x=5.24562.954523 The coverged solution is : x=5.24562.954523
  1 comentario
gyul
gyul el 10 de Abr. de 2024
ohh,,,thank you for saving me,,

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre 빅 데이터 처리 en Help Center y File Exchange.

Productos


Versión

R2024a

Community Treasure Hunt

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

Start Hunting!