'입력 인수가 부족합니다' 이 오류를 해결하고 싶어요.
조회 수: 42 (최근 30일)
이전 댓글 표시
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
채택된 답변
Dyuman Joshi
2024년 4월 10일
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
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 빅 데이터 처리에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!